yumコマンド関係の備忘録。
ソフトウェアのインストール
yum install PACKAGENAMES
インストール済パッケージの一覧
yum list installed
レポジトリ管理外も含むインストール済パッケージの一覧
rpm -qa
アップデート可能なパッケージの一覧
yum list updates
ソフトウェアのアップデート
引数を指定しなければyum list updates
で示されるパッケージすべてをアップデートしようとする。むしろ引数を指定することのほうが稀だろう。
yum update [PACKAGENAMES]
キャッシュ/ワークファイルのクリア
yum clean all
ソフトウェア削除
そのパッケージに依存している他のパッケージがある場合それも共に列挙される。1
yum remove PACKAGENAMES
RPMファイルのインストール
リポジトリを検索せずローカルダウンロード済のパッケージをインストールする場合に使用する。直接URLを指定してもよい。必要ならリポジトリから依存関係解決に必要なパッケージの追加導入やGPGKEYのインポートまでも面倒を見てくれる。かたや依存関係が解決できず、システムに適合しないRPMファイルについては何もしない。
yum localinstall PACKAGE.RPM
yumリポジトリ管理外のRPMファイルのインストール
yum localinstall
と異なり依存関係の解決は行われないし、GPGKEYが必要な場合でも別にインポートしなければならない。依存性の欠如はどんなファイルが不足しているかだけを示し、リポジトリを参照する訳ではないのでパッケージ名までは列挙しない。
rpm --import GPGKEY-FILE_OR_URL
rpm -ivh PACKAGE.RPM-FILE_OR_URL
ある特定ファイルを含むパッケージ名の検索
FILENAMEはグロブで指定することができる。既にインストール済の場合はinstalled、そうでなければ見つかったリポジトリ名も示す。
yum provides FILENAME
yum provides */httpd --disablerepo=base
パッケージに含まれるファイルとディレクトリの一覧
yum-utils
パッケージに含まれるrepoquery
コマンドはパッケージに含まれるファイルやディレクトリの一覧を、パッケージをダウンロードせずに取得できる。
repoquery --list PACKAGENAME
クリーンなchroot環境を作る
最初のyum実行ではrpm環境がまだchroot内にないため--releasever
を明示することでエラーを避ける。Coreグループインストール完了後以降ではその必要はない。最後にclean all
でyumのワークファイルを消して容量を節約する。
rm -fr /tmp/chroot
yum --installroot=/tmp/chroot --releasever=6.6 groupinstall Core -y
yum --installroot=/tmp/chroot update -y
:
yum --installroot=/tmp/chroot clean all
chroot /tmp/chroot
古いカーネルを削除する(CentOS6)
CentOS5まではバージョン番号も省略せずに指定しないと現在実行中のカーネルまでもが削除できてしまった2が、CentOS6では正しくプロテクトされるようになったので、逆にkernel
とだけ指定することで現在実行中のカーネル以外を一括削除3できるようになった。
yum remove kernel
カーネルを複数世代保持しておきたい場合はyum
ではなくpackage-cleanup
コマンドを使用するとよい。
package-cleanup --oldkernels --count=2