yumで標準リポジトリを優先化する

yumリポジトリとしては、CentOSの標準リポジトリの他に多数のリポジトリが存在します。パッケージアップデートの提供が非常に早かったり、提供するパッケージ数が多かったりと、その特徴は様々ですが、一般に複数のリポジトリを使用することが多いのではないでしょうか。

そこで検討しておきたいことが、CentOSの標準リポジトリと他のレポジトリの複数で提供されるパッケージに関しては、標準リポジトリのパッケージが優先されるように(上書きされないように)しておくことです

そのために、yum-prioritiesパッケージをインストールします。

1.yum-prioritiesパッケージのインストール
[root ~]# yum install yum-priorities
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: ftp.iij.ad.jp
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * rpmforge: apt.sw.be
 * updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package yum-priorities.noarch 0:1.1.16-14.el5.centos.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package             Arch        Version                        Repository Size
================================================================================
Installing:
 yum-priorities      noarch      1.1.16-14.el5.centos.1         base       14 k

Transaction Summary
================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 14 k
Is this ok [y/N]: y
Downloading Packages:
yum-priorities-1.1.16-14.el5.centos.1.noarch.rpm         |  14 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing     : yum-priorities [###################################### ] 1/1

Installed:
  yum-priorities.noarch 0:1.1.16-14.el5.centos.1                                

Complete!
2.CentOS-Base.repoの編集

インストールが成功したら、次のように/etc/yum.repos.d/CentOS-Base.repoを開き、「priority=1」という1行を追加します。

[root ~]# vim /etc/yum.repos.d/CentOS-Base.repo
# 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
# 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
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
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-5
priority=1 ←追加する

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
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-5
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-5
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-5
priority=1 ←追加する

ちなみに、当サイトのサーバ環境では重要視していません。なぜならば、パッケージのアップデートはremiリポジトリが早いケースが多く、それを適用することを良しとしているからです。

Comments are closed.