RPM パッケージの管理

May 14, 2018

RPM パッケージ

RPM パッケージのファイル名は以下のようになっている。

[書式] bash-4.2.45-5.el70.4.x8664.rpm

それぞれ以下を表している。

bash パッケージの名称
4.2.45 バージョン番号
-5.el7_0.4 リリース番号
x86_64 CPU アーキテクチャ
rpm 拡張子

rpm コマンドの利用

rpm コマンドを使って RPM パッケージをインストールしたり、削除、アップデートしたりできる。
rpm コマンドにはインストールモード、照会モードなどさまざまなモードがあり、モード毎にオプションが用意されている。

インストール/アップグレードモード

オプション 説明
-i パッケージファイル名 (—install) パッケージをインストールする
-U パッケージファイル名 (—upgrade) パッケージをアップグレードする (なければインストールする)
-F パッケージファイル名 (—freshen) パッケージがインストールされていればアップグレードする
-v 詳細な情報を表示する
-h (—hash) 進行状況を # で表示する
—nodeps 依存関係を無視してインストールする
—force 既存のファイルを新しいものに置き換える
—test 実際にはインストールせずにテストを実施する
$ sudo rpm -ivh httpd-2.2.34-1.16.amzn1.src.rpm   
Updating / installing...  
   1:httpd-2.2.34-1.16.amzn1          ################################# [100%]  

アンインストールモード

「-e パッケージ名」でパッケージをアンインストールすることが可能。—nodeps で依存関係を無視する。

$ sudo rpm -e httpd  

照会モード

「-q パッケージ名」で照会モードが使用できる。
オプションは以下の通り。

オプション 説明
-a (—all) インストール済みの全てのパッケージを表示する
-f ファイル 指定したファイルを含むパッケージ名を表示する
-p パッケージファイル名 対象としてパッケージファイルを指定する
-c (—configfiles) 設定ファイルのみを表示する
-d (—docfiles) ドキュメントのみを表示する
-i (—info) 指定したパッケージの情報を表示する
-l (—list) 指定したパッケージに含まれるファイルを表示する
-R (—requires) 指定したパッケージが依存しているファイル等を表示する
—changelog 変更履歴を表示する
$ sudo rpm -qa | grep emacs  
emacs-common-24.3-20.22.amzn1.x86_64  
emacs-24.3-20.22.amzn1.x86_64  
  
$ sudo rpm -qi emacs  
Name        : emacs  
Epoch       : 1  
Version     : 24.3  
Release     : 20.22.amzn1  
Architecture: x86_64  
Install Date: Wed 02 May 2018 10:33:49 PM UTC  
Group       : Applications/Editors  
Size        : 13178752  
License     : GPLv3+  
  
...  
  
$ sudo rpm -qd time  
/usr/share/doc/time-1.7/COPYING  
/usr/share/doc/time-1.7/NEWS  
/usr/share/doc/time-1.7/README  
/usr/share/info/time.info.gz  
  
$ sudo rpm -qR httpd  
/bin/bash  
/bin/sh  
/bin/sh  
/bin/sh  
/bin/sh  
/bin/sh  
/etc/mime.types  
/usr/sbin/useradd  
apr-util-ldap  
chkconfig  
config(httpd) = 2.2.34-1.16.amzn1  
expat >= 2.1.0  
httpd-tools = 2.2.34-1.16.amzn1  
initscripts >= 8.36  
  
...  
  
$ sudo rpm -qf /usr/bin/emacs  
emacs-24.3-20.22.amzn1.x86_64  
  
$ sudo rpm -qlp httpd-2.2.34-1.16.amzn1.src.rpm   
README.confd  
htcacheclean.init  
htcacheclean.sysconf  
httpd-2.0.45-export.patch  
httpd-2.0.52-logresline.patch  
httpd-2.1.10-apctl.patch  
httpd-2.1.10-apxs.patch  
httpd-2.1.10-disablemods.patch  
httpd-2.1.10-layout.patch  
httpd-2.2.0-authnoprov.patch  
httpd-2.2.11-corelimit.patch  
httpd-2.2.11-selinux.patch  
httpd-2.2.11-xfsz.patch  
  
...  
  

YUM

CentOS や Fedora では APT ツールに相当するものとして YUM (Yellow dog Updater, Modified) がある。
YUM の設定は、/etc/yum.conf 及び /etc/yum/repos.d ディレクトリ以下のファイルで行う。

$ cat /etc/yum.conf   
[main]  
cachedir=/var/cache/yum/$basearch/$releasever  
keepcache=0  
debuglevel=2  
logfile=/var/log/yum.log  
distroverpkg=system-release  
exactarch=1  
obsoletes=1  
gpgcheck=1  
plugins=1  
installonly_limit=3  
deltarpm=0  
timeout=5  
retries=3  

/etc/yum/repos.d 以下にはリポジトリ情報の設定ファイルが配置される。

$ ls /etc/yum.repos.d/  
amzn-main.repo  amzn-nosrc.repo  amzn-preview.repo  amzn-updates.repo  epel.repo  epel-testing.repo  
  
$ cat /etc/yum.repos.d/amzn-main.repo   
[amzn-main]  
name=amzn-main-Base  
mirrorlist=http://repo.$awsregion.$awsdomain/$releasever/main/mirror.list  
mirrorlist_expire=300  
metadata_expire=300  
priority=10  
failovermethod=priority  
fastestmirror_enabled=0  
gpgcheck=1  
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-ga  
enabled=1  
retries=3  
timeout=5  
report_instanceid=yes  

yum のサブコマンドは以下の通り。

サブコマンド 説明
check-update アップデート対象のパッケージリストを表示する
update パッケージ名 指定したパッケージをアップデートする
install パッケージ名 指定したパッケージをインストールする
remove パッケージ名 指定したパッケージをアンインストールする
info パッケージ名 指定したパッケージの情報を表示する
list 全パッケージ情報をリスト表示する
repolist リポジトリ一覧を表示する
search キーワード パッケージ情報をキーワード検索する
search all キーワード パッケージをキーワードで検索する (パッケージ名及び説明文等全て)
grouplist パッケージグループをリスト表示する
groupinstall グループ 指定したグループのパッケージをインストールする
$ yum info httpd  
Loaded plugins: priorities, update-motd, upgrade-helper  
Installed Packages  
Name        : httpd  
Arch        : x86_64  
Version     : 2.2.34  
Release     : 1.16.amzn1  
Size        : 3.1 M  
Repo        : installed  
From repo   : amzn-main  
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.  
  
$ yum list | grep emacs  
emacs.x86_64                          1:24.3-20.22.amzn1            @amzn-main    
emacs-common.x86_64                   1:24.3-20.22.amzn1            installed     
emacs-a2ps.x86_64                     4.14-10.1.8.amzn1             amzn-main     
emacs-a2ps-el.x86_64                  4.14-10.1.8.amzn1             amzn-main     
emacs-auctex.noarch                   11.85-10.2.amzn1              amzn-main  
  
$ yum search ruby  
Loaded plugins: priorities, update-motd, upgrade-helper  
  
graphviz-ruby.x86_64 : Ruby 1.8 extension for graphviz  
libselinux-ruby.x86_64 : SELinux ruby bindings for libselinux  
munin-ruby-plugins.noarch : ruby-plugins for munin  
rrdtool-ruby18.x86_64 : Ruby RRDtool bindings  
rrdtool-ruby20.x86_64 : Ruby RRDtool bindings  
  
...  
  
$ yum grouplist  
Loaded plugins: priorities, update-motd, upgrade-helper  
Available Groups:  
   Console internet tools  
   DNS Name Server  
   Development Libraries  
   Development tools  
   Editors  
   FTP Server  
   Java Development  
   Legacy UNIX compatibility  
   Mail Server  
   MySQL Database  
   MySQL Database client  
   NFS file server  
   Network Servers  
   Networking Tools  
   PHP Support  
   Performance Tools  
   Perl Support  
   Scientific support  
   System Tools  
   TeX support  
   Technical Writing  
   Web Server  
   Web Servlet Engine  
Done  

 © 2023, Dealing with Ambiguity