mrs.suzu841.com/tebiki CentOS リポジトリ ( repository ) について

メモ: リポジトリ ( repository ) とは何か

■ リポジトリについて

yum や subversion などのバージョン管理システムを使っているとしばしば repository という単語に出会うことがあります。
これは辞書を引いて出てくるとおり、容器、貯蔵庫、倉庫、集積所などの意味を持っており、何らかのデータや情報、プログラムなどを体系立てて保管するための場所を指しています。
具体的には、バージョン管理されているパッケージやソフトウェアの保管庫(一種のファイルサーバ)であると考えるとわかりやすいかもしれません。
実運用でのリポジトリは http によるアクセスを許すサーバ上に公開することが多いため、一般的に URL でその所在が示されます。

ところで、リポジトリによるパッケージ管理では「体系立てて保管されている」という一節が重要なポイントで、ただごちゃごちゃにパッケージやデータが置いてあっても、 ユーザにとっての利便性は上がりません。少なくとも、パッケージの置いてあるディレクトリ構造が論理的な体系を持って設計されており、一定のルールでバージョンが管理されている 必要があるのです。数千に上るファイルのバージョンをユーザ自身が把握していなければならないとすれば気の遠くなるような話ですが、これをユーザに代わって行うのが yum や subversion システムです。

yum リポジトリサーバでは xml にパッケージの更新を記述します。 このファイルは単なるファイルリストですが、クライアントは記述されたリポジトリ上の最新ファイルリストを取り込み、 直近に更新されたファイルとの差分をアップデートしていきます。そのときサーバからダウンロードした新しい xml にだけ存在するファイルがあればインストールするわけですが、 いずれの場合も rpm コマンドおよび rpm データベースで管理を行います。つまり、yum はローカルに存在する rpm データベースを利用したリモートファイル管理システムなのです。

一方、subversion ではデータベースはサーバ側にあり、クライアントは作業コピーをサーバからダウンロード(チェックアウト)して作業を開始します。 クライアントは更新した作業コピー(の差分)をサーバに転送し、サーバ側のデータベースを更新(コミット)することによってリポジトリを更新していきます。 つまり、subversion はリモートに存在する subversion データベースを利用したリモートファイル管理システムであり、構造的に yum と逆の構成になっていることがわかることと思います。






■ CentOS 標準リポジトリ以外のリポジトリについて

公開されているリポジトリの中でも有名なのは dag.repo と呼ばれているリポジトリと、 その他に Kde などの個々のリポジトリがあります。
それらの各 .repo は ftp サイトからダウンロードできるようになっていますので、それらのリポジトリを利用するのが、一番確実で手っ取り早いのではないかと思います。 いくら探してもどこにもみつからない場合には自分で作るしかありませんが・・・・・

(以下は我が家の環境に合わせて作成してみたものですので、他でも使えるのかどうかはわかりません。とりあえず、参考までに。)
dag.repo と名前のついたリポジトリファイルの中は何が書かれているのかといえば、取りに行く先のURLと有効、無効のスイッチです。

[dag]
name=Dag RPM Repository for RHEL5/CentOS5
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el5/en/$basearch/dag
enabled=1
gpgcheck=1
# yum --enablerepo=dag update

Kde.repo は以下のような内容になっていました。
# kde.repo, v2.0

[kde]
name=kde
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/redhat/mirrors-stable
gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=1

[kde-all]
name=kde-all
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/all/stable/mirrors
gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=1

# NOTE: enable/disable *both* testing/testing-all together; requires/depends on kde/kde-all repo(s)
[kde-testing]
name=kde-testing
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/redhat/mirrors-testing
gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=0

[kde-testing-all]
name=kde-testing-all
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/all/testing/mirrors
gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=0

# NOTE: enable/disable *both* unstable,unstable-all together; requires/depends-on testing repo(s)
[kde-unstable]
name=kde-unstable
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/redhat/mirrors-unstable
gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=0

[kde-unstable-all]
name=kde-redhat-unstable-all
mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/all/unstable/mirrors
gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kde-redhat
enabled=0

これら リポジトリファイルを置く場所は、CentOS5.5 では /etc/yum.repos.d/ になります。






■ 使用方法

例えば、dag.repo のリスト一覧を見たい場合は以下のように端末に入力してEnterキーを押します。

# yum list --enablerepo=dag

rpm パッケージを取得したい場合は以下のように端末に入力してEnterキーを押します。
# yum --enablerepo=dag install ここに欲しいパッケージ名

例えば、kde.repo を使用する時には以下のようなサンプルを示してみます。
以下はkdeeduとkdeedu-develをインストールのとき。

# yum -y install kdeedu kdeedu-devel





■ RPM-GPG-KEY / リポジトリキー

2010年8月14日現在リポジトリキーは必要なくなったと聞いたのですが、もしも求められるようであれば、やはりリポジトリ同様、各 ftp サイトからインポートすることになります。

以下は riken.go.jp からの取得をする場合です。端末で以下のように入力して試してみてください
サンプル: dag.repo の RPM-GPG-KEY を取得する場合

# rpm --import ftp://ftp.riken.jp/Linux/dag/RPM-GPG-KEY.dag.txt

もしくは

# rpm --import ftp://ftp.riken.jp/Linux/dag/RPM-GPG-KEY.dag.txt 2

又は http://www.crimson-snow.net/hmsvr/centos/memo/yum.html を参考にして以下を入力してみて

# rpm --import http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

その後にもう一度 " VLC Media Player のインストール " を再度挑戦してみてください。



RPM-GPG-KEY / リポジトリキーは、それぞれの .repo ごとに違うキーが割り当てられていますので、それは調べてから取得するということになります。





以上、駆け足でリポジトリについて説明しましたが、バージョン管理の重要性はもっと認識されてよいのではないでしょうか。 過去、パッケージ管理では apt, up2date, ports, yum, zabom などが使われてきましたが、セキュリティや利便性の面からさらに使い易いツールへの改良が期待されます。 また、バージョン管理ツールも CVS に始まって subversion, git などよりよい操作性と信頼性を目指して開発が進められています。 どのツールにも一長一短があるため、使い勝手と目的に合わせてユーザー自ら各ツールをお試しいただきたいと思います。






Back | Home Top