RPM(Red Hat Package Manager)は、GPLライセンスに基づき配布され、多くのLinuxディストリビューションで利用されているパッケージ管理システムです。
主な機能
- ソフトウェアパッケージのインストール、アンインストール、アップグレード、更新、および管理が可能
- 特定のRPMパッケージに含まれるファイル一覧を確認できる
- システム上の任意のファイルがどのRPMパッケージに属しているかを特定可能
- インストール済みパッケージの存在やバージョン情報を照会可能
- 開発者は独自のソフトウェアをRPM形式でパッケージ化し、公開可能
- GPG署名およびMD5チェックサムによるパッケージの検証・署名対応
- 依存関係のチェックを行い、システムの整合性を維持
基本操作とコマンドオプション
RPMの基本構文:rpm [オプション] [パッケージファイル]
| オプション | 説明 |
|---|---|
-i | パッケージをインストール |
-v | 詳細な出力を表示 |
-h | インストール中にハッシュ記号(#)で進捗を表示 |
--replacepkgs | 既にインストール済みでも再インストール |
--test | 実際にはインストールせずテストのみ実行 |
--nodeps | 依存関係を無視 |
--force | ファイルやパッケージの競合を無視 |
--percent | 進捗をパーセンテージで表示 |
--excludedocs | ドキュメントファイルをインストールしない |
--ignorearch | アーキテクチャの互換性を無視 |
--ignoresize | ディスク容量をチェックしない |
--justdb | RPMデータベースのみ更新し、ファイルシステムは変更しない |
--nofiledigest | ファイルのダイジェスト(チェックサム)を検証しない |
--noscripts | インストール時のスクリプトを実行しない |
--replacefiles | ファイルの競合を無視して上書き |
-e | パッケージを削除 |
-U | パッケージをアップグレード(未インストール時もインストール) |
-F | パッケージを更新(既にインストール済みの場合のみ) |
--oldpackage | 新しいバージョンより古いバージョンへダウングレード |
-q | パッケージ情報を照会 |
--initdb | RPMデータベースを初期化 |
--rebuilddb | インストール済みパッケージ情報からデータベースを再構築 |
インストール例:依存関係を無視して強制インストール
[root@localhost Packages]# rpm -ivh --nodeps bind-9.9.4-72.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:bind-32:9.9.4-72.el7 ################################# [100%]
/var/tmp/rpm-tmp.qmIlvV: line 10: semanage: command not found
/var/tmp/rpm-tmp.qmIlvV: line 29: semanage: command not found
/var/tmp/rpm-tmp.qmIlvV: line 34: /usr/sbin/semanage: No such file or directory
warning: %posttrans(bind-32:9.9.4-72.el7.x86_64) scriptlet failed, exit status 127
アンインストール
基本構文:rpm -e [パッケージ名]
[root@localhost Packages]# rpm -e --nodeps bind
アップグレードと更新
- アップグレード(
-U):既存のバージョンに関係なく常にインストールまたは置き換え - 更新(
-F):既にインストール済みのパッケージのみを新しいバージョンに置き換え。未インストールの場合は何もしない
照会操作
- 特定パッケージのインストール確認:
rpm -q httpd - 全インストールパッケージ一覧:
rpm -qa - パッケージの詳細情報:
rpm -qi httpd - パッケージに含まれるファイル一覧:
rpm -ql httpd - 依存関係の確認:
rpm -qR httpd - ファイルが属するパッケージの特定:
rpm -qf /etc/crontab
例:
[root@localhost ~]# rpm -qf /etc/crontab
crontabs-1.11-6.20121102git.el7.noarch
※ファイルを指定する際は、絶対パスを用いる必要があります。