yumとは?コマンドの使い方やリポジトリなどの仕組みが丸わかり!

yumとは

「CeontOS」や「RHEL」などのRedHat系Linuxは、非常に多くのプロジェクトで利用されています。

そんなRedHat系Linuxを利用するうえで、絶対にはずせないのが「yum(ヤム)」の存在です。

「yum」を理解し、自由に扱えるようになることで、好きなソフトウェアを簡単にLinuxに導入することができるようになります。

今回は、この「yum」というパッケージ管理システムについて勉強していきましょう。

この記事を最後まで読むことで、yumに関するだいたいのことは理解できるようになりますよ!

Linuxについて「よくわからない!」という方は、さきに「【初心者向け】Linuxとは?ディストリビューションや仕組みを解説!」をお読みください。

yumとは

yum(ヤム)とは、RedHat系のディストリビューション(CeontOSなど)で利用される「パッケージ管理システム」です。

Windowsであれば、必要なソフトはブラウザからダウンロードして、インストーラーを起動し、画面の内容に従ってインストールするような手順が一般的ですよね。

これをCentOSでは「yum」というコマンドを実行して、パッケージのインストールやアップデート、アンインストールをおこなうのです。

ちなみに、UbuntuなどのDebian系ディストリビューションの場合は、「apt」という別のパッケージ管理システムを使います。

  • RedHat系(CentOSなど)…「yum」
  • Debian系(Ubuntuなど)…「apt」

パッケージとは

パッケージとは、機能(ソフトウェア)を構成しているプログラムの集まり(プログラム本体やライブラリなど)のことです。

Linuxのディストリビューションによって、扱えるパッケージの種類も変わってきます。

RedHat系Linuxでは「RPM」形式のパッケージを利用しますが、Debian系Linuxの場合は「deb」形式のパッケージを扱います。

  • RedHat系(CentOSなど)…「RPM形式パッケージ」
  • Debian系(Ubuntuなど)…「deb形式パッケージ」

yumリポジトリとは

yumリポジトリとは

yumリポジトリとは、yumで扱うパッケージが置いてある場所のことです。

リポジトリって「倉庫」って意味もあるので、「パッケージを管理している倉庫があるんだな」ってイメージでいいと思います。

このリポジトリは世界のあちこちにあって、デフォルトで指定されているリポジトリ以外にも、別のリポジトリを追加することができます。

リポジトリを追加する理由は、デフォルトのリポジトリにはないパッケージをインストールしたい場合が出てくるからです。

キツネ

必要になったタイミングでリポジトリを追加していくよ!

yumとrpmの違いと仕組み

実はCentOSには、yum以外にも「rpm」というコマンドがあります。

さきほど紹介したRPM形式パッケージの「RPM」ではなく、「rpm」というコマンドが別にあるのです。

さきに結論を言ってしまうと、「rpm」コマンドは使わずに「yum」コマンドをメインで利用しましょう!

  • 「rpmコマンド」…RPM形式パッケージのインストールなどをおこなう
  • 「yumコマンド」…内部でrpmコマンドを実行し、さらに依存関係のパッケージにも対応

たとえば、「A」というパッケージをインストールするためには、「B」というパッケージが必要だったとしましょう。

「A」をrpmコマンドでインストールしようとした場合、以下のような手順が必要になります。

  1. 「A」をrpmでインストール
  2. 「B」がないため失敗
  3. 「B」をrpmでインストール
  4. 「A」をrpmでインストール

もし、yumコマンドで「A」をインストールするなら

  1. 「A」をyumでインストール
  2. 「B」が必要なため「B」も一緒にインストール(自動)

yumコマンドを利用すれば、本来インストールしたい「A」を指定すると、あとは勝手に依存パッケージ「B」をインストールしてくれるのです。

キツネ

特別な理由がない限りは、yumを使えばよさそうだね!

yumコマンドとオプションの使い方

yumコマンドを使えば、必要なパッケージを簡単にインストール、アンインストールできます。

ここからは、業務でよく使うyumコマンドやオプションを紹介していきます!

パッケージをインストール

パッケージをインストールするときは、「yum install」コマンドを実行します。

コマンド
$ yum install パッケージ名

たとえばGitをインストールしたい場合は、以下を実行します。

コマンド
$ yum install git

上記のコマンドをそのまま実行すると、おそらくエラーになると思います。

これは、あなたに「yum install」コマンドを実行する権限がないためです。

そんなときは「sudo」を先頭につけて、root権限で実行してみましょう。

コマンド
$ sudo yum install git

キツネ

yumに限らず、「sudo」はどんなコマンドにもつけられるよ!

また、オプションである「-y」をつけることで、インストールするかどうかの確認をスキップすることもできます。

コマンド
$ sudo yum install -y git

キツネ

「-y」オプションは、途中で処理を止めたくない場合に使うよ!

パッケージを検索

yumで扱えるパッケージを検索したいときは、「yum search」コマンドを実行します。

コマンド
$ yum search パッケージ名

ちなみに、このコマンドが「sudo」をつけずに実行できるのは、さきほどのインストールと違い、画面に表示するだけの安全なコマンドだからです。

インストール済みパッケージを表示

インストール済みパッケージを表示したい場合は、「yum list installed」を実行します。

コマンド
# すべてのインストール済みパッケージを表示
$ yum list installed
# 指定したインストール済みパッケージを表示
$ yum list installed パッケージ名

アップデート可能なパッケージを表示

アップデート可能なパッケージを表示したい場合は、「yum list updates」を実行します。

コマンド
# すべてのアップデート可能なパッケージを表示
$ yum list updates
# こっちでもOK
$ yum check-update
# 指定したアップデート可能なパッケージを表示
$ yum list updates パッケージ名
# こっちでもOK
$ yum check-update パッケージ名

パッケージをアップデート

パッケージをアップデートするときは、「yum update」コマンドを実行します。

コマンド
# すべてのインストール済みパッケージをアップデート
$ sudo yum update
# 指定したインストール済みパッケージをアップデート
$ sudo yum update パッケージ名

キツネ

権限エラーが出たときは「sudo」で対応だよ!

パッケージをアンインストール

パッケージをアンインストールするときは「yum remove」コマンドを実行します。

コマンド
$ sudo yum remove -y パッケージ名

キツネ

「-y」は確認をスキップするためのオプションだったね!

リポジトリを追加

yumリポジトリを追加するときも、「yum install」コマンドを実行します。

コマンド
$ yum install リポジトリ名

リポジトリ一覧を表示

利用できるリポジトリを確認したいときは、「yum repolist」コマンドを実行します。

コマンド
$ yum repolist all

このコマンドを実行すると、画面にリポジトリの一覧が表示されます。

実行結果の「enabled」と表示されているリポジトリが有効、「disabled」が無効なリポジトリです。

有効、無効のリポジトリだけを表示したい場合は以下のコマンドを実行してください。

コマンド
# 有効なリポジトリを表示
$ yum repolist
# 無効なリポジトリを表示
$ yum repolist disabled

リポジトリを指定してパッケージをインストール

リポジトリが無効の状態でも、「--enablerepo=」オプションをつけることで、指定のリポジトリからパッケージをインストールできます。

コマンド
$ sudo yum --enablerepo=リポジトリ名 install パッケージ名

キツネ

リポジトリを有効に設定するよりも、このやり方のほうが一般的かも!

まとめ

yumの仕組みやコマンドの使い方について、なんとなくは理解できたと思います。

別に暗記しなくても大丈夫。使っているうちに嫌でも覚えてしまうからです。

そのくらい、Webエンジニアにとってyumは頻繁に使われるコマンドなんです。

とはいっても、実際にLinuxを触ってみなければ、なかなか身につかないスキルでもあります。

業務で困らないように「初心者のためのLinux環境構築!VagrantとVirtualBoxの使い方を解説!」を読んで、勉強用にLinux環境を構築して、yumで遊んでみるのもいいですね!

テキストのコピーはできません。