Linuxでパッケージの操作(RPM)




RedHat, SuSE, Fedora Coreなどでは、rpmコマンドを使って、パッケージの管理ができる。
様々なツールなどがRPMパッケージとして配布されており、
telnetサーバをインストールしたいときや、sendmailをインストールしたい時などに使用する。
UNIXで当たり前であったソースファイルのコンパイルなどの作業は不要であり、
とても便利。

○まずは、自マシンに何がインストールされているかを確認する
# rpm -qa
自マシンにインストールされているRPMパッケージが全て表示されるので
適宜grepコマンドなどで出力を絞って使う。
# rpm -qa | grep sendmail
sendmail-cf-8.11.6-27.72
sendmail-8.11.6-27.72

○RPMパッケージを↓のサイトなどからダウンロードしてきてインストールする
http://rpm.pbone.net/
# rpm -ivh openssh-3.1p1-14.i386.rpm
インストールの際にシステム上の依存関係が自動的にチェックされ、
必要なファイルを勝手に上書きするようなことはない。
インストールしようとしているパッケージに必要なパッケージなどの情報も出力してくれる。

○インストールされているRPMパッケージをアンインストールする
# rpm -ev openssh-3.1p1-14
※引数は、「rpm -qa」で出力されたパッケージ名を指定。RPMのファイル名ではない。

○インストールされているRPMパッケージをアップデートする
# rpm -Uvh openssh-3.1p1-14.i386.rpm
アップデートの際にも依存関係が自動的にチェックされる。

○パッケージをアップデートしようとすると、依存性のループに出くわすことがある
# rpm -Uvh rpm-4.1.1-1.7x.i386.rpm 
error: failed dependencies:
	popt = 1.7.1 is needed by rpm-4.1.1-1.7x
	rpm = 4.0.4 is needed by rpm-python-4.0.4-7x
	rpm = 4.0.4 is needed by rpm-devel-4.0.4-7x
	rpm = 4.0.4 is needed by rpm-build-4.0.4-7x
	librpm-4.0.4.so   is needed by rpm-python-4.0.4-7x
	librpm-4.0.4.so   is needed by rpm-build-4.0.4-7x
	librpmbuild-4.0.4.so   is needed by rpm-build-4.0.4-7x
	librpmdb-4.0.4.so   is needed by rpm-python-4.0.4-7x
	librpmdb-4.0.4.so   is needed by rpm-build-4.0.4-7x
	librpmio-4.0.4.so   is needed by rpm-python-4.0.4-7x
	librpmio-4.0.4.so   is needed by rpm-build-4.0.4-7x
このような場合、依存関係に関わっているRPMパッケージを全ていっぺんにアップデートすることで解決できる。
# rpm -Uvh rpm-4.1.1-1.7x.i386.rpm rpm-build-4.1.1-1.7x.i386.rpm rpm-deevel-4.1.1-1.7x.i386.rpm rpm-python-4.1.1-1.7x.i386.rpm popt-1.7.1-1.7x.i386.rpm