prioritiesプラグインは、yumが利用するレポジトリにプライオリティ(優先順位)を設定することでレポジトリを保護することができます。高いプライオリティが設定されたレポジトリからインストールされたパッケージは、低いプライオリティが設定されたレポジトリを用いて更新されることはありません。また、新規パッケージをインストールする際に複数のレポジトリにて該当するパッケージがある場合、高いプライオリティの設定されたレポジトリからのインストールが優先されます。このプラグインは、特にCentOSのレポジトリに加えて外部の他レポジトリを利用している場合に、外部レポジトリの利用によりシステムファイルが書き換えられサーバの運用に影響を与えることを防ぐことができます。
yumのprioritiesプラグインのインストール方法
CentOS-4 or CentOS-6
# yum -y install yum-plugin-priorities
CentOS-5
# yum -y install yum-priorities
インストールが完了したら、/etc/yum.repos.d/配下にあるCentOS-Base.repo修正します。
CentOS-Base.repoの修正
1. /etc/yum.repos.d/CentOS-Base.repoのバックアップを作成します。
# cp -p /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.`date +%Y%m%d` # ls /etc/yum.repos.d/CentOS-Base.repo*
2. 以下赤字部分を追加し保存します。
# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 priority=1 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 priority=1 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 priority=1 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 priority=1 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 priority=2
以上で設定が完了しました。
yumで利用可能なレポジトリは”yum reposlist all”コマンドで確認できますが、これでは設定されているプライオリティが分かりません。利用可能なレポジトリとそのプライオリティを確認するには、以下のコマンドを実行してください。
# sed -n -e "/^\[/h; /priority *=/{ G; s/\n/ /; s/ity=/ity = /; p }" /etc/yum.repos.d/*.repo | sort -k3n priority = 1 [base] priority = 1 [centosplus] priority = 1 [extras] priority = 1 [updates] priority = 2 [contrib]
プライオリティを設定していないレポジトリは、すべてデフォルトで「99」のプライオリティとなります。
参考:
[wiki.centos.org] yum-plugin-priorities
http://wiki.centos.org/PackageManagement/Yum/Priorities
以上
コメント