YUMによるパッケージ管理
CentOSや、Fedoraには、RPMパッケージの依存関係を自動的に解消してインストールするYUM(Yellow dog Updater Modified)があります。
※Debian GNU/LinuxおよびVine Linuxで採用されているパッケージ管理システム(APTツール)に相当します。
YUMの設定ファイルは、下記から構成されています。
/etc/yum.conf
/etc/yum.repos.d
●yum.confのファイル例
[root@Lion ~]# cat /etc/yum.conf ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ [main]cachedir=/var/cache/yum/$basearch/$releaseverkeepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release# This is the default, if you make this bigger yum won't see if the metadata # is newer on the remote and so you'll "gain" the bandwidth of not having to # download the new metadata and "pay" for it by yum not having correct # information. # It is esp. important, to have correct metadata, for distributions like # Fedora which don't keep old packages around. If you don't like this checking # interupting your command line usage, it's much better to have something # manually check the metadata once an hour (yum-updatesd will do this). # metadata_expire=90m# PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d |
/etc/yum.repos.dディレクトリ以下には、リポジトリ情報の設定ファイルが保存されています。
パッケージの入手先を増やしたい場合は、リポジトリ情報の設定ファイルを追加します。
[root@Lion ~]# ls -l /etc/yum.repos.d 合計 32 -rw-r--r--. 1 root root 1664 11月 23 2018 CentOS-Base.repo -rw-r--r--. 1 root root 1309 11月 23 2018 CentOS-CR.repo -rw-r--r--. 1 root root 649 11月 23 2018 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 630 11月 23 2018 CentOS-Media.repo -rw-r--r--. 1 root root 1331 11月 23 2018 CentOS-Sources.repo -rw-r--r--. 1 root root 5701 11月 23 2018 CentOS-Vault.repo -rw-r--r--. 1 root root 314 11月 23 2018 CentOS-fasttrack.repo |
●yumコマンドの書式
yum [オプション] コマンド [パッケージ名など]
●yumコマンドの基本操作
yum install パッケージ名 (パッケージおよびそのパッケージに必要なパッケージを同時にインストールする) yum update パッケージ名 (指定したパッケージがインストールされている場合、アップデートする。パッケージを指定しなかった場合はシステム全体がアップデート対象となる) yum erase パッケージ名 (パッケージをアンインストールする。指定したパッケージに依存するパッケージも削除するかどうかの確認メッセージが表示される) |
●yumの主なコマンド
パッケージ操作関係
コマンド | 実行内容 |
install | パッケージをインストールする |
reinstall | パッケージを再インストールする |
downgrade | パッケージをダウングレードする |
erase | パッケージを削除する |
update | システムのパッケージを更新する |
update-minimal | 「重要な更新」だけを更新する |
upgrade | 不要になったパッケージを考慮しながらパッケージを更新する |
distribution-synchronization | 最新の利用可能なバージョンへインストール済みパッケージを同期する |
localinstall | パッケージファイル(RPMファイル)を指定してインストールする |
localupdate | パッケージファイル(RPMファイル)を指定してアップデートする |
情報関係のコマンド
コマンド | 実行内容 |
info | パッケージもしくはパッケージグループの詳細を表示する |
list | パッケージグループの一覧を表示する |
deplist | パッケージの依存性の一覧を表示する |
groups | パッケージグループの情報を表示する |
search | 指定した文字列でパッケージの詳細を検索する |
provides | ファイルなどを指定して、該当するファイルを提供するパッケージを検索する |
repolist | ソフトウェアリポジトリの構成を表示する |
version | ホストが利用できるリポジトリのバージョンを表示する |
メンテナンス関係のコマンド・その他
コマンド | 実行内容 |
check | rpmデータベースの問題を確認する |
check-update | 更新に利用できるパッケージを確認する |
clean | キャッシュデータを削除する |
shell | 対話型のシェル(yumシェル)を実行する |
updateinfo | リポジトリの更新情報を表示する |
●yumコマンドの主なオプション
短いオプション | 長いオプション | 意味 |
-y | --assumeyes | 全ての問い合わせに「yes」で応答したものとして実行する |
--assumeno | 全ての問い合わせに「no」で応答したものとして実行する | |
-t | --tolerant | エラーを黙認する |
-R 分 | --randomwait=分 | 最大の待ち時間を指定する |
-c 構成ファイル | --config=構成ファイル | 構成ファイルを指定する |
--installroot=場所 | インストール先を指定する | |
--downloaddir=場所 | ダウンロード先を指定する | |
--downloadonly | ダウンロードだけを行う | |
-C | --cacheonly | パッケージの情報をダウンロードせずキャッシュだけを使用する |
-x パッケージ | --exclude=パッケージ | 除外するパッケージを指定する(ワイルドカードも使用可能) |
--color=指定 | 出力メッセージを色付きにするかどうかを「always」「auto」「never」のいずれかで指定する | |
-q | --quiet | 実行時にメッセージを出力しない |
-v | --verbose | 詳しいメッセージを出力する |
●アップデート確認
「yum check-update」を実行すると、インストールされているパッケージの中で、アップデートが存在するパッケージリストが表示されます。
[root@Lion ~]# yum check-update ←「yum check-update」を実行する # yum check-update 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jpImageMagick.x86_64 6.7.8.9-15.el7_2 base ImageMagick-perl.x86_64 6.7.8.9-15.el7_2 base NetworkManager.x86_64 1:1.4.0-20.el7_3 updates NetworkManager-libnm.x86_64 1:1.4.0-20.el7_3 updates NetworkManager-team.x86_64 1:1.4.0-20.el7_3 updates NetworkManager-tui.x86_64 1:1.4.0-20.el7_3 updates SDL.x86_64 1.2.15-14.el7 base(中略)yum.noarch 3.4.3-150.el7.centos base yum-langpacks.noarch 0.4.2-7.el7 base yum-plugin-fastestmirror.noarch 1.1.31-40.el7 base yum-utils.noarch 1.1.31-40.el7 base zip.x86_64 3.0-11.el7 base zlib.x86_64 1.2.7-17.el7 base zlib-devel.x86_64 1.2.7-17.el7 base |
●パッケージがインストール済みか確認する
パッケージがシステムにインストール済みかを確認するには「list installed 」コマンドを使用します。
下記例では、httpdがインストール済みか確認しています。
[root@Lion ~]# yum list installed httpd 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp インストール済みパッケージ httpd.x86_64 2.4.6-31.el7.centos @anaconda |
●パッケージを検索する
yumコマンドでキーワードを使用してパッケージを検索するには、searchサブコマンドを実行します。
例ではexpectパッケージ一覧を取得しています。
[root@Lion ~]# yum search expect 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp ======================================= N/S matched: expect ======================================== pexpect.noarch : Pure Python Expect-like module expect.x86_64 : A program-script interaction and testing utility expect-devel.i686 : A program-script interaction and testing utility expect-devel.x86_64 : A program-script interaction and testing utility expectk.x86_64 : A program-script interaction and testing utility |
●特定のパッケージをアップデートする
特定のパッケージをアップデートするには、updateサブコマンドを指定します。
例では、opensslパッケージをアップデートしています。
[root@Lion ~]# yum update openssl 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ openssl.x86_64 1:1.0.1e-51.el7_2.4 を 更新 ---> パッケージ openssl.x86_64 1:1.0.1e-60.el7_3.1 を アップデート --> 依存性の処理をしています: openssl-libs(x86-64) = 1:1.0.1e-60.el7_3.1 のパッケージ: 1:openssl-1.0.1e-60.el7_3.1.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ openssl-libs.x86_64 1:1.0.1e-51.el7_2.4 を 更新(中略)--> 依存性解決を終了しました。 依存性を解決しました =================================================== トランザクションの要約 総ダウンロード容量: 2.8 M |
●システムアップデートを実行する
「yum update」を実行すると、インストールされている全パッケージが最新版にアップデートされます。
[root@Lion ~]# yum update Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: rsync.atworks.co.jp * base: rsync.atworks.co.jp * extras: rsync.atworks.co.jp * updates: rsync.atworks.co.jp Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package ImageMagick.i386 0:6.2.8.0-4.el5_5.3 set to be updated ---> Package NetworkManager.i386 1:0.7.0-10.el5_5.2 set to be updated ---> Package NetworkManager-glib.i386 1:0.7.0-10.el5_5.2 set to be updated ---> Package NetworkManager-gnome.i386 1:0.7.0-10.el5_5.2 set to be updated(中略)--> Running transaction check ---> Package tzdata-java.i386 0:2010l-1.el5 set to be updated extras/filelists_db | 195 kB 00:00 --> Finished Dependency Resolution Dependencies Resolved =========================================================== (中略) Transaction Summary Total download size: 347 M |
●パッケージのアンインストール
パッケージをアンインストールするには、↓のように実行します。
例ではopensslパッケージを削除しています
[root@Lion ~]# yum remove openssl |
●グループを表示及びインストール
RPMパッケージは、いくつかのグループに分けることができます。
YUMでは、グループ単位でパッケージをインストールすることができます。
どのようなグループがあるかは「yum grouplist」で確認できます
[root@Lion ~]# yum grouplist 読み込んだプラグイン:fastestmirror, langpacks There is no installed groups file. Maybe run: yum groups mark convert (see man yum) Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp Available environment groups: 最小限のインストール Compute Node インフラストラクチャサーバー ファイルとプリントサーバー ベーシック Web サーバー 仮想化ホスト サーバー (GUI 使用) GNOME Desktop KDE Plasma Workspaces 開発およびクリエイティブワークステーション 利用可能なグループ グラフィカル管理ツール コンソールインターネットツール システム管理 システム管理ツール スマートカードサポート セキュリティツール レガシーな UNIX 互換性 互換性ライブラリ 科学的サポート 開発ツール 完了 |
「ベーシック Web サーバー」関連のパッケージをまとめてインストールする場合
[root@Lion ~]# yum groupinstall "ベーシック Web サーバー" |