Linuxコマンドの基本:パッケージ管理(CentOS):yumコマンド

 ここでは、CentOSをはじめとするRed Hat系Linuxにおけるパッケージ管理の基礎として、yumコマンドの位置づけと使い方を紹介します。yumrpmコマンドを基盤としながら、依存関係解決やリポジトリ問い合わせなどの機能を付与し、実務の場で広く用いられています。


RPMとrpmコマンドの限界

 CentOSなどRed Hat系ディストリビューションでは、ソフトウェアはrpm(Red Hat Package Manager)形式のパッケージファイルで管理されています。rpmコマンドは、このパッケージをインストール・アンインストールする基本的機能を提供しますが、依存関係処理やリポジトリアクセスなどの高度な管理は手動で行う必要があり、現場での運用には不便です。

yumコマンドの登場

yumコマンドはrpmコマンドをラップし、次のような点で運用管理を強化します。

  • リポジトリへの問い合わせによるパッケージ取得
  • 依存関係の自動解決
  • 確認プロンプトや簡潔な操作によるユーザビリティ向上

これにより、システム管理者は複雑なパッケージ管理を容易かつ効率的に行えるようになりました。


yumコマンドの基本構文と動作

 yumコマンドは、多くの機能(インストール、更新、アンインストール、検索など)を持つため、以下のような書式でコマンドを実行します。

【書式】
yum [オプション] [コマンド] [パッケージ名 …]

  • オプション:挙動を制御するための追加設定(例:-yで質問に自動的にYesと答えるなど)
  • コマンドinstallupdateremoveなど、yumが実行する具体的な操作
  • パッケージ名:対象とするソフトウェア名

代表的なコマンド一覧

コマンド役割・詳細使用例
install指定したパッケージをインストールする。依存関係も自動解決。$ sudo yum install httpd
updateインストール済みパッケージを最新バージョンに更新する。$ sudo yum update
remove指定したパッケージをアンインストールする。$ sudo yum remove httpd
search指定したキーワードを含むパッケージを検索する。$ yum search httpd
info指定したパッケージの詳細情報を表示する。$ yum info httpd
list利用可能なパッケージやインストール済パッケージ一覧を表示する。$ yum list or $ yum list installed

リポジトリとの連携

yumは実行時に設定済みのリポジトリへ問い合わせを行い、パッケージ情報や依存関係を自動的に取得します。そのため、コマンド実行時にはリポジトリへの接続メッセージが表示されることがあります。

リポジトリへの問い合わせ例(yum install httpd

[root@CentOS1 ~]# yum install httpd
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
依存性の解決をしています
...(省略)...

ポイント

 リポジトリはパッケージが集められたオンライン上の倉庫であり、yumはそこから必要なパッケージをダウンロードし、依存関係を解決してインストールや更新を行います。


yumによる依存関係の自動解決

 パッケージはしばしば「あるパッケージをインストールする前に、別のパッケージが必要」という依存関係を持ちます。yumコマンドは、この依存関係を自動的に解決し、必要なパッケージもまとめてインストール・削除します。

[root@CentOS1 ~]# yum install httpd
依存性の解決をしています。
→ トランザクションの確認を実行しています。
--> パッケージ httpd.x86_64 0:2.4.6-18.el7.centos をインストール
--> 依存性の処理をしています: httpd-tools = 2.4.6-18.el7.centos のパッケージ
...(省略)...
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package      アーキテクチャー   バージョン             リポジトリー    容量
================================================================================
インストール中:
 httpd        x86_64          2.4.6-18.el7.centos    updates       2.7 M
依存性関連でのインストールをします:
 apr          x86_64          1.4.8-3.el7            base          103 k
 apr-util     x86_64          1.5.2-6.el7            base          92 k
 httpd-tools  x86_64          2.4.6-18.el7.centos    updates       77 k

トランザクションの要約
================================================================================
インストール  4 パッケージ

依存関係解決の例

 yum install httpdを実行すると、httpdが依存するaprapr-utilhttpd-toolsなど関連パッケージも同時にインストールされます。単独のrpmコマンドではこれらを手動で用意する必要がありましたが、yumなら自動で完結します。

パッケージ削除の基本コマンド

yumコマンドでパッケージを削除するには、removeまたはeraseコマンドを使用します。

【書式】
yum erase / remove <パッケージ名>

removeeraseは同等の機能を持つ別名であり、どちらを使用しても問題ありません。

代表的な削除コマンド例

コマンド役割・詳細使用例
yum remove <パッケージ名>指定パッケージおよび依存するパッケージを削除$ yum remove httpd
yum erase <パッケージ名>removeと同様、指定パッケージをアンインストール$ yum erase httpd-tools

依存関係の自動解決による一括削除

 多くのパッケージは、別のパッケージに依存しています。あるパッケージを削除する際、依存しているパッケージも同時に削除しなければ整合性が保てません。

 yumは、この依存関係を自動的に解析・解決します。たとえば、httpd-toolshttpdに依存している場合、httpd-toolsを削除しようとすると、yumhttpdも同時に削除する提案を行います。

依存関係解決の例

# yum erase httpd-tools
依存性の解決をしています
...(省略)...
削除中:
 httpd-tools.x86_64 ...
依存性関連での削除をします:
 httpd.x86_64 ...
...(省略)...

 このように、yumが自動で依存関係を処理してくれるため、管理者は手動で順番にパッケージを削除する手間を省くことができます。


自動応答による削除作業の簡略化

 パッケージ削除の際、yumは「Is this ok [y/d/N]:」といった確認メッセージを表示します。このとき、-yオプションを付けることで、すべての問い合わせに自動的にy(Yes)で回答し、作業をスクリプト化したり手間を省くことが可能です。

自動的にyで応答する例

# yum -y erase httpd-tools

これにより、確認なしでパッケージ削除を実行できます。

yumを使う際の注意点

  • root権限が必要
    インストールや削除などシステムに変更を加える操作はrootユーザまたはsudo権限が必要です。
  • 確認プロンプトと-yオプション
    インストールや削除時には、「Is this ok [y/d/N]:」といった確認が入ります。-yオプションを使えば、この確認を省略して自動的にyで答えることができ、スクリプトの自動化などに便利です。

まとめ

  • Red Hat系Linuxディストリビューション(例:CentOS)では、yumコマンドを用いてパッケージのインストール・更新・削除を簡潔に行える。
  • yumrpmコマンドの機能を拡張し、依存関係の自動解決やリポジトリ連携機能を提供。
  • yum installyum removeなどの基本コマンドを使いこなせば、日常的なサーバ運用がスムーズになる。

yumコマンドを理解し、活用することで、CentOS環境におけるソフトウェア管理が格段に容易になります。これが、パッケージ管理におけるyumの重要な役割です。