メイン

2009年09月02日

RedHatでRPMファイルやソースSRPMを取得する

RedHat 5からはup2dateコマンドに代わってyumコマンドでソフトウェアのアップデートやインストールを実行できます。

# yum install httpd
# yum update httpd

さらに、yumdownloaderというコマンドを使えば、ソフトウェアのRPMを.rpmファイルで取得することができます。
yumdownloaderはyum-utilsパッケージに含まれるため、これをインストールします。

# yum install yum-utils

httpdのrpmファイルを取得するには以下のような感じ。
バージョン指定もできます。

# yumdownloader httpd
# yumdownloader httpd-<version>

これで、2009年9月2日時点では、httpd-2.2.3-22.el5_3.2.x86_64.rpm がカレントディレクトリにダウンロードされます。

さらに、yumdownloaderコマンドでソースファイル(SRPM)も取得できます。

レッドハット ニュースレター第20号(2008年5月):
http://www.jp.redhat.com/magazine/jp/200805/rhel.html

デフォルトの設定では取得できず、リポジトリを追加する必要があります。
(これがわからなくてハマった!)

yum Download All Source Packages (SRPM) From RedHat / CentOS WebSite:
http://www.cyberciti.biz/faq/yum-download-source-packages-from-rhn/

# vi /etc/yum.repos.d/srpm.repo

[rhel-src]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

(↑baseurlのところが切れちゃってますが、
'baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/'です。)

これでソースファイルも取得できるようになりました。
yumdownloaderコマンドで--sourceオプションをつけます。

# yumdownloader --source httpd
# yumdownloader --source httpd-<version>

これで、2009年9月2日時点では、httpd-2.2.3-22.el5_3.2.src.rpm がダウンロードされます。

あとは

# rpm -ivh httpd-2.2.3-22.el5_3.2.src.rpm

とすれば、デフォルトでは/usr/src/redhat/SOURCES 以下にソースファイル群が展開されます。
configオプションを変更してRPMをリビルドしたいといった用途に有効です。

これまでは、RedHatのRPMファイルやSRPMファイルは、RedHat NetworkのアカウントでログインしてWebサイトからダウンロードする必要があったのですが(ほかにも方法があった?)これなら簡単。

ホスティングのサーバで、OSはRedHatだけれど、RedHat Networkのアカウントはもらえない状況で環境構築作業をしなければならない、という場合に覚えておくと便利です。
(RedHat Networkのアカウントがあっても便利)

※ほとんど参考サイトの記述そのままですが、日本語のサイトでは見つけられなかったのでここに記載しました。