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.
		
ちなみに、ここで指定される対処をしても治りません。

トップに戻る