Infra Engineer

RPMとYUMパッケージ管理~YUMを使用したRPMパッケージの管理~
2020.12.06
Lv1

RPMとYUMパッケージ管理~YUMを使用したRPMパッケージの管理~

今回の内容

今回は、YUMを使用したRPMパッケージの管理について解説します。

試験ポイント

★LPIC試験ポイント①★

/etc/yum.repos.d/ディレクトリが重要です! 
★LPIC試験ポイント①★

★LPIC試験ポイント②★

groupinstallコマンドが重要です! 
★LPIC試験ポイント②★

YUM

YUM(Yellowdog Updater Modified)は、「yum」を使用してRPM※パッケージのインストール、アップデートや検索などを行う管理ツールです。「ソースコードからインストール」する場合との違いは、ネットワーク上のパッケージを探してインストールしてくれる点や依存関係にあるパッケージも探してインストールしてくれる点です。

(用語解説1)パッケージについて
パッケージとは、ソースコード(人間が読める)からコンパイル(コンピュータ言語に翻訳)してインストールする手間を省き、バイナリ化(コンピュータ言語に翻訳されたもの)され
たファイルなどの関連ファイルをひとつにまとめて配布しているものになります。
パッケージを使用するとインストール、アンインストールやアップグレードなどが簡単に行
えます。

アプリケーションをインストールする際に、よく使われるのは「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コマンドを使って、パッケージ情報の表示、インストール、インストールしたパッケージの確認、アンインストールの例です。

例1)インストールが可能なパッケージの情報を表示する場合
#yum info [パッケージ名]

今回は、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.

——————–

例2)パッケージをインストールする場合
#yum install パッケージ名

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 ~]#

——————–

例3)インストールしたパッケージの一覧を表示する場合
#yum list installed
[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 ~]#

——————–

例4)パッケージをアンインストールする場合
#yum remove パッケージ名
[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のコマンドについてもしっかり覚えておきましょう!
それでは今回はこのあたりで。

Linux資格 「LPIC Lv1」徹底解説 連載目次リンク

Linux資格 「LPIC Lv1」徹底解説 連載目次

連載執筆講師が講座開講中!ITスクール SAK

ITスクールSAK | LPIC Lv1合格保証コース 講座紹介ページ