yum Tips
yumを利用する場合のTips集です。・特定パッケージのアップデート禁止設定
・プロキシ経由でyumを利用する
・ソースパッケージ(SRPM)の取得
・非公式リポジトリを追加
・updateをcronなどで自動実行する
・updateで取得した保存ファイルを削除する
・updateに失敗する時の対処
特定パッケージのアップデート禁止設定
yum updateコマンド発行時に、アップデートさせないパッケージを設定します。設定は、/etc/yum.confの最下行にexclude=で設定します。
yum.confの例
exclude=kernel* postfix*<---kernelとpostfixの全バージョンに対して、更新不可としています。
トップに戻る
プロキシ経由でyumを利用する
一時的にプロキシ経由でyumを利用するには、以下のコマンドでプロキシサーバを指定します。export http_proxy=http://IPアドレス:ポート
永続的にプロキシ経由でアクセスする場合は、/etc/yum.confに以下を追加します。
proxy=http://IPアドレス:ポート
トップに戻る
ソースパッケージ(SRPM)の取得
ソースリポジトリの設定
デフォルトでは、ソースパケージのリポジトリは設定されていませんので、まずは、この設定から行います。設定するファイルは、/etc/yum.repos.d/CentOS-Base.repoです。
このファイルに、以下の行を追加します。
CentOS-Base.repo
[base-source]
name=CentOS-$releasever - Base Source
baseurl=http://mirror.centos.org/centos/$releasever/os/SRPMS/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[update-source]
name=CentOS-$releasever - Update Source
baseurl=http://mirror.centos.org/centos/$releasever/updates/SRPMS/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[addons-source]
name=CentOS-$releasever - Addons Source
baseurl=http://mirror.centos.org/centos/$releasever/addons/SRPMS/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[extras-source]
name=CentOS-$releasever - Extras Source
baseurl=http://mirror.centos.org/centos/$releasever/extras/SRPMS/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[centosplus-source]
name=CentOS-$releasever - Plus Source
baseurl=http://mirror.centos.org/centos/$releasever/centosplus/SRPMS/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[contrib-source]
name=CentOS-$releasever - Contrib Source
baseurl=http://mirror.centos.org/centos/$releasever/contrib/SRPMS/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
CentPlusとContribは、バイナリリポジトリがデフォルトで無効の為、ソース側も無効にしてあります。enabled=0追加したら、以下のコマンドでエラーが出ないか確認します。
yum update
SRPMダウンロード用コマンドのインストール
インストール形態によっては、SRPMをダウンロードするコマンド、yumdownloaderがインストールされていないかも知れませんので、これをインストールします。yum install yum-utils
SRPMのダウンロードは、以下の通りです。コマンド発行後、カレントディレクトリにSRPMがダウンロードされます。
yumdownloader --source [パッケージ名]
なお、無効になっているリポジトリ(enabled=0)から、SRPMが欲しい場合は以下のようにします。
yumdownloader --enablerepo=centosplus-source --source [パッケージ名]
トップに戻る
非公式リポジトリを追加
RHELやその互換OSのCentOSやScientific Linux(SL)では、RHEL用の非公式リポジトリが利用出来ます。良く利用する物では、rpmforge(DAG)やEPELなどです。
EPELの利用方法
EPELは、RHELやその互換OSのCentOSやScientific Linux(SL)向けにFedoraプロジェクトで有志によって作成されたパッケージです。RHELやその互換OSのCentOSやSLを利用しているなら、これを使うのは良い選択だと思います。
EPELを利用するには、以下の手順で設定ファイル用のRPMをインストールします。*RHEL,CentOS,SLの5系(i386)の場合
rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpmあとは、updateしてリポジトリを読み込みます。
yum update
トップに戻る
updateをcronなどで自動実行する
yum updateなどを実行すると、Yes,Noで確認を求められますが、cronなどで定期手に実行する場合は、-yオプションを利用し、全て自動でYesの返答をするようにしてください。yum update -y
トップに戻る
updateで取得した保存ファイルを削除する
yum updateなどでダウンロードしたパッケージファイルは、ローカルシステムに保存されディスク容量を圧迫します。出来れば定期的にこれを削除してください。
yum clean packages
トップに戻る
updateに失敗する時の対処
updateに失敗する理由はいくつかありますが、以下のようなメッセージが出た場合は、metadataの情報が不正であることが考えられます。以下のコマンドを発行しメタデータを一旦削除してください。
yum clean metadata
[Errno -1] Metadata file does not match checksum Trying other mirror.
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
ちなみに、ここで指定される対処をしても治りません。トップに戻る
