RHEL5でyum-prioritiesを使う
RHEL5でyum-prioritiesを使おうとした場合にはすんなりいきません。今回はたぶんうまく動かすことができたので報告します。ただし、きっちりとテストしたわけではないので実際に利用する際は自己責任でお願いします。
yum-prioritiesのインストール
まず、RHEL5の標準yumレポジトリにはyum-prioritiesは入っていません。どこかから持ってくる必要があります。
幸いにもCentOS5.3の標準レポジトリには入っている*1のでこいつを使うことにします。
[root@db01 ~]# rpm -ihv http://mirror.centos.org/centos-5/5.3/os/i386/CentOS/yum-priorities-1.1.16-13.el5.centos.noarch.rpm
priority設定
次に/etc/yum.repos.d/にある*.repoファイルに書かれたレポジトリ設定にそれぞれpriorityを書こうとするわけですが、ここで問題があります。実はRHELの標準レポジトリはyum-rhnpluginというプラグインを使ってRHNをラップした仮想yumレポジトリのようなものなのでここに設定ファイルがありません。
調べてみると/etc/yum/pluginconf.d/rhnplugin.confにそれらしき記述がありましたのでここにpriorityを追加してみます。
[main] enabled = 1 gpgcheck = 1 [rhel-i386-server-5] enabled = 1 priority = 1
動いているか確かめる
とりあえず、今回は被っているパッケージがあるyumレポジトリとしてPostgreSQL RPMsからpgdg-redhat-8.4-1.noarchをインストールしてpriority = 20を設定しました。
この状態でyum info postgresqlを実行してみます。*2
[admin@db01 ~]$ sudo yum info postgresql Password: Loaded plugins: priorities, rhnplugin, security 65 packages excluded due to repository priority protections Available Packages Name : postgresql Arch : i386 Version : 8.1.18 Release : 2.el5_4.1 Size : 2.8 M Repo : rhel-i386-server-5 Summary : PostgreSQL client programs and libraries. License : BSD Description: PostgreSQL is an advanced Object-Relational database management system : (DBMS) that supports almost all SQL constructs (including : transactions, subselects and user-defined types and functions). The : postgresql package includes the client programs and libraries that : you'll need to access a PostgreSQL DBMS server. These PostgreSQL : client programs are programs that directly manipulate the internal : structure of PostgreSQL databases on a PostgreSQL server. These client : programs can be located on the same machine with the PostgreSQL : server, or may be on a remote machine which accesses a PostgreSQL : server over a network connection. This package contains the docs : in HTML for the whole package, as well as command-line utilities for : managing PostgreSQL databases on a PostgreSQL server. : : If you want to manipulate a PostgreSQL database on a remote PostgreSQL : server, you need this package. You also need to install this package : if you're installing the postgresql-server package.
つぎにpgdgのpriorityを1にしてみると下記のように表示されpriority設定が有効に働いていることが分かります。
[admin@db01 ~]$ sudo yum info postgresql Loaded plugins: priorities, rhnplugin, security pgdg84 | 1.9 kB 00:00 44 packages excluded due to repository priority protections Available Packages Name : postgresql Arch : i386 Version : 8.4.1 Release : 1PGDG.rhel5 Size : 1.3 M Repo : pgdg84 Summary : PostgreSQL client programs and libraries URL : http://www.postgresql.org/ License : BSD Description: PostgreSQL is an advanced Object-Relational database management system : (DBMS) that supports almost all SQL constructs (including : transactions, subselects and user-defined types and functions). The : postgresql package includes the client programs and libraries that : you'll need to access a PostgreSQL DBMS server. These PostgreSQL : client programs are programs that directly manipulate the internal : structure of PostgreSQL databases on a PostgreSQL server. These client : programs can be located on the same machine with the PostgreSQL : server, or may be on a remote machine which accesses a PostgreSQL : server over a network connection. This package contains the command-line : utilities for managing PostgreSQL databases on a PostgreSQL server. : : If you want to manipulate a PostgreSQL database on a local or remote PostgreSQL : server, you need this package. You also need to install this package : if you're installing the postgresql-server package.
今回は限定的なレポジトリなので実はpriority設定などしなくても問題ないかもしれませんが、DAGレポジトリなど汎用レポジトリを利用したいときは有用になると思います。