CentOS に yum-plugin-priorities プラグインをインストールする

公開日: : プログラム , ,

yum を使ってあるパッケージをインストールしようと調べていたところ、yum-plugin-priorities プラグインの存在を知りました。
「これは絶対にインストールしておいたほうがいい」強く推すものではなさそうですが、インストールしてみたので、導入手順をメモしておきます。

icatch_3304032405

photo credit: splityarn via photopin cc

目次

yum-plugin-priorities とは

yum-plugin-priorities プラグインをインストールすると、パッケージをインストールするリポジトリに優先順位を付けることができます。

例えば、あるパッケージが複数のリポジトリに登録されている場合、優先順位の高いリポジトリからダウンロードされるようになります。

参照するリポジトリをカスタマイズできるので、

  • 多くのユーザが使っている(信頼性の高い)リポジトリからパッケージをダウンロードしたい
  • 出来るだけインストールするリポジトリを揃えたい

といった要望をある程度満たすことができます。

yum-plugin-priorities プラグインのインストール

インストールは yum から行いますが、CentOS のバージョンによってプラグイン名の指定が異なるようです。

CentOS のバージョン確認する方法はいくつかありますが、/etc/redhat-release ファイルに定義されています。

cat /etc/redhat-release 
CentOS release 6.5 (Final)

OS のバージョンが分かったところで、インストールに戻ります。
CentOS のバージョンが4系、もしくは、6系の場合は、次のコマンドを実行します。

yum -y install yum-plugin-priorities

バージョンが5系の場合は、次を実行します。

yum -y install yum-priorities

yum-plugin-priorities プラグインのインストールはこれで終了です。

リポジトリの優先順位付け

次にリポジトリの優先順位を設定します。

yum-plugin-priorities プラグインのインストール後、/etc/yum.repos.d/CentOS-Base.repo に定義してある各リポジトリ情報に “priority” 属性を追加することで優先順位が設定できます。

検証用に CentOS 6.5 を “Minimal” で VMware にクリーンインストールしました。

以下は、クリーンインストールしたあとに yum-plugin-priorities プラグインだけをインストールした状態の /etc/yum.repos.d/CentOS-Base.repo です。
リポジトリ情報が5つ定義されています。

# 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

#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

#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

#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

#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

yum-plugin-priorities に優先順位付けの参考例が載っています。
ボクのように Linux だったり yum だったりに詳しくない方は参考にされるといいんじゃないかと思います。

英語は苦手なので間違いがあるかと思いますが、おそらく次のような内容だと思われます(ちなみに、設定値が小さいほど優先順位が高くなります)。

  • base, addons, updates, extras → 優先度は 1 に
  • centosplus → 優先度は 1 に(ただし、enabled=0 にして無効化しておく)
  • contrib → 優先度は 2 に
  • サードパーティのリポジトリ → 優先度は 10 以上の任意の値に

“priority” 属性を追加する場所は明記されていませんが、リンク先の例に倣って gpgkey の次の行としておきました。

で、以下が編集後の /etc/yum.repos.d/CentOS-Base.repo です。
上記の優先順位設定でよければ、このままコピペしていただいて OK です。

# 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

これで優先順位付けの設定は終了です。

利用可能なリポジトリを優先順位と一緒に表示する

この設定を確認するワンライナーが、冒頭で貼ったリンク先のページに載っていたので引用しておきます。

$ sed -n -e "/^\[/h; /priority *=/{ G; s/\n/ /; s/ity=/ity = /; p }" /etc/yum.repos.d/*.repo | sort -k3n

/etc/yum.repos.d/CentOS-Base.repo が上記の内容だった場合の実行結果は次の通りです。

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]

優先順位は表示せずに、単純に利用可能なリポジトリが知りたい場合は yum repolist all と実行します。

yum repolist all
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
repo id                                repo name                                      status
C6.0-base                              CentOS-6.0 - Base                              disabled
C6.0-centosplus                        CentOS-6.0 - CentOSPlus                        disabled
C6.0-contrib                           CentOS-6.0 - Contrib                           disabled
C6.0-extras                            CentOS-6.0 - Extras                            disabled
C6.0-updates                           CentOS-6.0 - Updates                           disabled
C6.1-base                              CentOS-6.1 - Base                              disabled
C6.1-centosplus                        CentOS-6.1 - CentOSPlus                        disabled
C6.1-contrib                           CentOS-6.1 - Contrib                           disabled
C6.1-extras                            CentOS-6.1 - Extras                            disabled
C6.1-updates                           CentOS-6.1 - Updates                           disabled
C6.2-base                              CentOS-6.2 - Base                              disabled
C6.2-centosplus                        CentOS-6.2 - CentOSPlus                        disabled
C6.2-contrib                           CentOS-6.2 - Contrib                           disabled
C6.2-extras                            CentOS-6.2 - Extras                            disabled
C6.2-updates                           CentOS-6.2 - Updates                           disabled
C6.3-base                              CentOS-6.3 - Base                              disabled
C6.3-centosplus                        CentOS-6.3 - CentOSPlus                        disabled
C6.3-contrib                           CentOS-6.3 - Contrib                           disabled
C6.3-extras                            CentOS-6.3 - Extras                            disabled
C6.3-updates                           CentOS-6.3 - Updates                           disabled
base                                   CentOS-6 - Base                                enabled: 4,802
c6-media                               CentOS-6 - Media                               disabled
centosplus                             CentOS-6 - Plus                                disabled
contrib                                CentOS-6 - Contrib                             disabled
debug                                  CentOS-6 - Debuginfo                           disabled
extras                                 CentOS-6 - Extras                              enabled:    12
updates                                CentOS-6 - Updates                             enabled:   891
repolist: 5,705

まとめ

以上、yum-plugin-priorities プラグインのインストールと優先順位設定でした。
必須というわけではなさそうですが、興味があればお試しください。

  • yum-plugin-priorities プラグインで、参照するリポジトリの優先順位付けができる
  • プラグインのインストールは yum で行う
  • /etc/yum.repos.d/CentOS-Base.repo に設定する

6. その他 Linux に関する記事

その他の Linux に関する記事は次の通りです。
気になる記事があったらぜひチェックしてみてください!

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

no image

CVS でタグ間で変更があったファイルを抽出するスクリプト

今どきバージョン管理ツールに CVS を使っているところは珍しいと思うし、あまり需要はないだろうけど

記事を読む

icatch-8587724648_24926df337_z-resized

yum のリポジトリ ATrpms を参照できるように設定する

あるツールの動作検証をしようと調べたところ、そのツールは ATrpms リポジトリが提供しているとの

記事を読む

icatch-2015-003-1

Vagrantで起動したCentOS上のMySQLにホストOSからログインする設定

マシンを新しくしたこともあり、検証と称してソフトウェアをやみくもにインストールすることに抵抗が出てき

記事を読む

icatch_8626992930-resized

シェルスクリプトでcdしたいパスにスペースが入っている場合の対処法

cd したいパスにスペースが入っていると、パスの先頭からスペースまでを「移動したいパス」と解釈されて

記事を読む

20140811-00

64ビット版のCentOSをVMwareにインストールできない場合の対処法

Linux で検証したい作業が多かったので VMware に検証環境を作りました。OS は Cent

記事を読む

icatch_8617990318-resized

yum が参照するミラーサイトの baseurl を変更して日本国内のものに設定する

yum が参照するリポジトリのミラーサイトは変更することができます。 このミラーサイトを日本国内のも

記事を読む

icatch-_9692711856-resized

シェルスクリプトでメールを送信する

このブログを運用している Linux サーバの監視スクリプトを作成した記事を書きました。 ロード

記事を読む

icatch-2015-004-1

Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に Octopress をインス

記事を読む

icatch-9214710040_822a4c3456_z-resized

ロードアベレージを監視するシェルスクリプトを作成してみた

このブログを運用している Linux サーバの負荷が高い状態になってました。 何か被害にあったとかで

記事を読む

icatch-sublimetext_9222613858_mini-thumbnail

Sublime Text3 のインストール直後に行った設定メモ

突発的に自宅のマシンにインストールしてあった Sublime Text2 を 3 にアップデートしま

記事を読む

Googleアドセンス用(PC)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


4 + = 十三

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑