yumリポジトリ作成
自分のパッケージリポジトリをセットアップする方法について説明します。 時に、あなたがrpmパッケージをひとまとめにして1つの箇所に置き、 それらがyumが実行出来るあなたのシステム上から利用可能にしたいといったケースがあるかもしれません。 これを行うのは非常に簡単です。
概要
yumによって使用されるパッケージリポジトリは1つ以上のRPMと、 yumによって簡単にRPMへの情報(依存関係、ファイルリスト、他)にアクセス可能とする幾つかの"メタ情報"を含むシンプルなディレクトリになります。 これにより、このディレクトリにftp/httpまたはfile URI(NFS等)でアクセスすることが可能です。
手順
- パッケージを集めて、1つのパッケージに一緒にします。 必要に応じて、複数のサブディレクトリを作成することが可能ですが、 それらは全てその場所でのトップレベルディレクティブである必要があります。 ここまで出来たら、次から自分達のリポジトリを作成していきます。
-
yumはその作業を行うために、各RPMに格納されている情報の要約を使用します。 この情報は'createrepo'プログラムを使用して作成されます。 もしcreaterepoがインストールされていなければ、下記のようにしてインストールすることが可能です。
yum install createrepoもし、RPMを使用せずにマシン上にリポジトリを生成するのであれば、 http://createrepo.baseurl.org/からcreaterepoをダウンロードし、 ビルド/インストールを手動で行うことが可能です。
createrepoをインストールしたら、それを実行する必要があります。 必要となる引数はリポジトリデータをその中に生成したいディレクトリの指定のみです。 そのため、もしパッケージディレクトリをこの手順1で
/srv/my/repoに作るのであれば、下記のように実行します。createrepo /srv/my/repo様々な内容が表示されますが、これはエラー無しで完了する必要があります。 完了すると、
/srv/my/repo/repodataというディレクトリと、その中に少なくとも4つのファイルが作成されているはずです。 -
このリポジトリをyumに知らせるために、
.repoファイルをyumの設定に加える必要があります。 このリポジトリを使用したいシステム上で、/etc/yum.repos.d/内に新しいファイルを作成する必要があります。 このファイルには任意の名前を付けることが出来ます、ファイルの拡張子は.repoにしなければいけません。 この1つを'myrepo.repo'としてみましょう。このファイル内には、下記のように記述する必要があるだけです。
[myrepo] name = This is my repo baseurl = url://to/get/to/srv/my/repo/ファイル内で行う必要があることは、これが全てです。 'baseurl'の行は、マシンがリポジトリを取得するのに使用するパスになります。 もし、マシン上から直接アクセス出来る、またはそれをファイルシステムにマウントしているのであれば、 baseurl行は次のようにすることが可能です。
baseurl = file:///srv/my/repo/注意:2つではなく、3つのスラッシュ(/)の後にファイルが続いていますが、これは正しい指定です。
もし、httpまたはhttpsサーバーを介してこのファイルにアクセスするのであれば、 下記のように書くことになるでしょう。
baseurl = http://servername/my/repoクライアントサイドのリポジトリ設定の詳細については、yum.confのmanページを参照してください。
- 修正、削除、または新しいRPMパッケージを/srv/my/repoに追加する際には、 リポジトリのメタデータを再作成する必要があります。 これは手順2で行ったのと同じ方法で、createrepoを実行することによって行います。
概要
createrepoの動作について説明してきましたが、一般的には拡張オプションを追加する最適化が行われており、 もし新しいyumクライアントを立てるのであれば、これを推奨します。
概要
もし、createrepoを使用した自分自身のパッケージリポジトリの作成と保守について更に詳しく学びたいのであれば、 createrepoのmanページ、またはこのドキュメントの他のページを参照してください。
© 2010 - 2017 STUDIO KINGDOM