RPMとYUMパッケージ管理~YUMを使用したRPMパッケージの管理~
今回の内容
今回は、YUMを使用したRPMパッケージの管理について解説します。
試験ポイント
/etc/yum.repos.d/ディレクトリが重要です!
★LPIC試験ポイント①★
groupinstallコマンドが重要です!
★LPIC試験ポイント②★
YUM
YUM(Yellowdog Updater Modified)は、「yum」を使用してRPM※パッケージのインストール、アップデートや検索などを行う管理ツールです。「ソースコードからインストール」する場合との違いは、ネットワーク上のパッケージを探してインストールしてくれる点や依存関係にあるパッケージも探してインストールしてくれる点です。
アプリケーションをインストールする際に、よく使われるのは「yum」です。
yumを使うメリットは大きく二つです。
①インストールが容易
②ネットワーク上のパッケージと依存関係にあるパッケージも探して、インストールしてくれる
この2点について説明していきます。
①インストールが容易
例えば、Apacheを呼ばれるwebサーバのアプリケーションをダウンロードする場合、以下の手順です。
【ソースコードからインストールの場合】
1. Apacheのサイトからソースコードのリンクをコピー
2. wgetコマンドでダウンロード
3. tarコマンドで圧縮ファイルを解凍・展開
4. ./configureで実行
5. 依存関係に失敗した場合、依存関係を解決(※ここが一番大変!!)
6. Makeコマンドでコンパイル(機械言語に翻訳すること)
7. make installコマンドで、プログラムをディレクトリに配置
【yumでインストールの場合】
1. yum install httpd
上記から、yumコマンドを使用してインストールした方が容易である事がわかると思います。
/etc/yum.repos.d/
②ネットワーク上のパッケージと依存関係にあるパッケージも探して、インストールしてくれる
Yumコマンドはで、どこからパッケージをインストールしているのでしょうか。
YUMは、「リポジトリ」と呼ばれるRPMパッケージを管理するサイトにアクセスし、アップデートの確認やパッケージのダウンロードなどを処理します。
サイトのURLにアクセスする際は、「/etc/yum.repos.d/」配下のファイルに記述されています。
以下ファイルの一部を確認しておきましょう。
★試験ポイント①★
リポジトリのURLは、YUMの設定ファイルである「/etc/yum.conf」のほか、ディストリ
ビューションによっては、「/etc/yum.repos.d/」ディレクトリ以下のファイルにて、記述があります。
「/etc/yum.repos.d/」を選択する問題や記述で問う問題が出題傾向が高いです。しっかりと覚えておきましょう。
■「/etc/yum.repos.d/CentOS-Base.repo」の内容(一部抜粋)
[root@localhost yum.repos.d]# cat CentOS-Base.repo # CentOS-Base.repo [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
yumコマンド
■YUMによるRPMパッケージ管理
以下の例では、yumコマンドを使って、パッケージ情報の表示、インストール、インストールしたパッケージの確認、アンインストールの例です。
今回は、webサーバのソフトApacheのインストールをする場合のパッケージ情報を確認しています。10行目に今回インストールするversionは、2.4.6である事が確認できます。
[root@localhost ~]# yum info httpd Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp-srv2.kddilabs.jp * extras: ftp-srv2.kddilabs.jp * updates: ftp-srv2.kddilabs.jp Installed Packages Name : httpd Arch : x86_64 Version : 2.4.6 Release : 97.el7.centos Size : 9.4 M Repo : installed From repo : updates Summary : Apache HTTP Server URL : http://httpd.apache.org/ License : ASL 2.0 Description : The Apache HTTP Server is a powerful, efficient, and extensible : web server.
——————–
23行目に依存関係として必要なhttpd-toolsのパッケージも一緒にインストールしている事が確認できます。
[root@localhost ~]# yum install httpd (中略) Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:2.4.6-97.el7.centos will be installed --> Processing Dependency: httpd-tools = 2.4.6-97.el7.centos for package: httpd-2.4.6-97.el7.centos.x86_64 --> Running transaction check ---> Package httpd-tools.x86_64 0:2.4.6-97.el7.centos will be installed --> Finished Dependency Resolution Dependencies Resolved =============================================================================================== Package Arch Version Repository Size =============================================================================================== Installing: httpd x86_64 2.4.6-97.el7.centos updates 2.7 M Installing for dependencies: httpd-tools x86_64 2.4.6-97.el7.centos updates 93 k Transaction Summary =============================================================================================== (中略) Installed: httpd.x86_64 0:2.4.6-97.el7.centos Dependency Installed: httpd-tools.x86_64 0:2.4.6-97.el7.centos Complete! [root@localhost ~]#
——————–
[root@localhost ~]# yum list installed httpd Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp-srv2.kddilabs.jp * extras: ftp-srv2.kddilabs.jp * updates: ftp-srv2.kddilabs.jp Installed Packages httpd.x86_64 2.4.6-97.el7.centos @updates [root@localhost ~]#
——————–
[root@localhost ~]# yum remove httpd Loaded plugins: fastestmirror, langpacks Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:2.4.6-97.el7.centos will be erased --> Finished Dependency Resolution Dependencies Resolved =============================================================================================== Package Arch Version Repository Size =============================================================================================== Removing: httpd x86_64 2.4.6-97.el7.centos @updates 9.4 M Transaction Summary =============================================================================================== Remove 1 Package Installed size: 9.4 M Is this ok [y/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Erasing : httpd-2.4.6-97.el7.centos.x86_64 1/1 Verifying : httpd-2.4.6-97.el7.centos.x86_64 1/1 Removed: httpd.x86_64 0:2.4.6-97.el7.centos Complete!
サブコマンド
yumコマンドの主なサブコマンドは、以下のようになります。
サブコマンド | 説明 |
---|---|
check-update | アップデート可能なパッケージがあるかどうかを確認。 |
update | アップデート可能なパッケージを全てアップデート。 |
clean | キャッシュ用ファイルを整理。 |
install パッケージ名 | 指定したパッケージをアップデート。 |
update パッケージ名 | 指定したパッケージをアップデート。 |
remove パッケージ名 | 指定したパッケージをアンインストール。 |
list | 全パッケージのバージョンとインストールされているかを表示 |
list パッケージ名 | 指定したパッケージのバージョンとインストールの状況を表示。 |
groupinstall グループ | 指定したパッケージグループをインストール。 |
grouplist | パッケージグループのリストを表示。 |
groupinfo グループ | 指定したパッケージグループに含まれるパッケージの情報を表示 |
search キーワード | パッケージ情報をキーワードで検索。 |
★試験ポイント②★
サブコマンドの中でも特にgroupinstallコマンドを選択する問題が出題傾向が高いです。
しっかりと覚えておきましょう。
まとめ
YUMの特徴(ネットワーク上のパッケージを探してインストールしてくれる点や依存関係にあるパッケージも探してインストールしてくれる点)や、
リポジトリにアクセスする際に「/etc/yum.repos.d/」の配下のファイルを参照すること、また、YUMのコマンドについてもしっかり覚えておきましょう!
それでは今回はこのあたりで。