LoginSignup
60
58

More than 5 years have passed since last update.

Github上にyumリポジトリを立てる

Last updated at Posted at 2014-01-31

Github上にyumリポジトリを立てる

はじめに

Redhat/CentOS/Fedoraなどで使われているRPMを管理するコマンドyumはとても便利です。
yumリポジトリは自分で立てることができて、自作のRPMを公開したり、公式リポジトリに含まれないRPMを利用したり出来ます。
今回はGithub上にyumリポジトリを立ててみます。

yumリポジトリの仕組み

yumリポジトリはftpかhttpでアクセスできる環境であれば、特に他に必要な条件はありません。
単純にはApacheを立ててRPM類を公開するだけでyumリポジトリになります。
ただし、単純にRPMを置くだけではなく、どのようなRPMがあるかなどのメタ情報を含むXMLファイルなどを所定の場所に置いておく必要があります。

Github Pagesとは

Github PagesはGithubの提供する静的なHTMLコンテンツの公開サービスです。(無料)
Github上にgitリポジトリを作り、gh-pagesという名前のブランチを作成すると、それだけでコンテンツが公開されます。
このコンテンツは単純にHTTPでアクセス可能ですので、RPMファイルとメタファイルを配置することでyumリポジトリとして利用可能になるのです。

RPMの準備

公開したいRPMをローカルのディレクトリに適当に配置します。
(サブディレクトリ等があってもOKです)
今回は/tmp/rpmsの下に配置した想定とします。

yumリポジトリのメタファイルを作成

yumリポジトリのメタファイルをcreaterepoというツールで自動生成します。
ツールはyumで普通に導入可能です。

$ yum install -y createrepo
$ createrepo /tmp/rpms

上記の実行により/tmp/rpmsの下にrepodataというディレクトリができていて、中にメタファイルが色々入っています。

gitリポジトリ作成

ブラウザでGithubにログインして、新たなgitリポジトリを画面から作成してください。
今回はyumrepoという名前のgitリポジトリを作成した想定とします。

Github Pagesへ公開

先ほど生成されたメタファイルとrpmファイルをgitリポジトリにpushします。

$ git clone https://github.com/user/yumrepo.git
$ cd yumrepo
$ git checkout --orphan gh-pages
$ cp -R /tmp/rpms/* .
$ git commit -a -m "Add RPMs"
$ git push origin gh-pages

ポイントとしては、gh-pagesというブランチを切る位で、あとは本当に普通にpushしているだけです。

公開の確認

上記の特殊なブランチにpushしたファイルは下記から普通にhttpアクセスできるようになります。

http://[ユーザ名].github.io/リポジトリ名/

下記の感じでhttpでrpmが取得可能な状態になっているか確認します。

$ wget http://user.github.io/yumrepo/xxx.rpm

yumリポジトリ利用の設定

ここまでで、すでにgithub上にpushしたrpmがyumリポジトリとして使える状態になっています。
実際にyumコマンドで利用できるように設定をします。

/etc/yum.repos.d/myyum.repo
[repos.myrepo]
name=CentOS-$releasever - myyumrepo
baseurl=http://user.github.io/yumrepo/
enabled=1
gpgcheck=0

自前のyumリポジトリを利用してみる

yumコマンドを実行してみます。

$ yum -y install xxx --disablerepo=\* --enablerepo="repos.myrepo"

これであなたのオリジナルyumリポジトリからrpmのインストールをすることができるようになりました。

終わりに

これで気軽にオレオレyumリポジトリが手に入りますね!

60
58
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
60
58