yum でソースコードをダウンロードしたい
yumリポジトリからソースファイルをダウンロードするには − @IT
標準のyumコマンドには、ソースのRPM(SRPM)ファイルをダウンロードする機能がない。
らしい…。先に教えてください…。
どうりで man yum で探しても見つからないわけだな。source とかキーワードにして探してたよ…。
ダウンロードできるようにするためには yum-utils パッケージが必要なので、まずインストール。
# yum install yum-utils
そして、yumdownloaderコマンドに --sourceオプションを付けて実行すればパッケージ(拡張子.src.rpm)をダウンロードできる。
# yumdownloader --source パッケージ名
試しに、lsコマンドが含まれるパッケージを yumdownloader でダウンロードしてみる。
まず ls がどのパッケージに含まれるか調べる。
# rpm -qf /bin/ls coreutils-6.9-3.fc7
カレントディレクトリにダウンロード。
# yumdownloader --source coreutils-6.9-3.fc7
展開(解凍)用のディレクトリを作っておく
% mkdir fedora_coreutils
カレントディレクトリに展開。大量のファイルが展開されるので注意。(参考:@IT:RPMパッケージからファイルを取り出すには)
% rpm2cpio ../coreutils-6.9-9.fc7.src.rpm| cpio -id
ls.c の入ってるディレクトリを展開して、そこに移動。
% tar -jxf coreutils-6.9.tar.bz2 % cd coreutils-6.9/src
RPMファイルの解凍をもっと簡単にする
RPMファイルの解凍がめんどくさいなと思って調べたら、もっと簡単な方法があった。(参考:RPMパッケージを展開するには − @IT)
必要なパッケージをインストール。
% sudo yum install rpmdevtools
RPM ファイルの展開。パッケージ名と同じ名前のディレクトリ内に展開してくれるので、新しくディレクトリを作らなくて済む。
% rpmdev-extract coreutils-6.9-9.fc7.src.rpm