空の RPM パッケージで依存関係の問題を解決する (2)
昨日は「新設された -devel
パッケージへの依存に困ったときは -devel
を捏造すればいい」と力説したわけで、今日は、このために必要な空の RPM パッケージの作り方をメモしておこう。
作り方といっても大したことではなく、こんな感じの SPEC ファイルを書けばいい:
Name: perl-devel Summary: This is a dummy package just for resolving dependency problems. Version: 5.8.8 Release: dummy.0 Group: Development/Languages License: public domain Packager: masugata_k <masugata_k@example.com> Source0: %{name}-%{version}.tar.gz Source1: README BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description No files but README are installed by this package because all necessary files are installed by "perl" package. %prep %setup %build %install %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,root) %doc $RPM_SOURCE_DIR/README
昨日は「popt-devel
がなくて困るんだよ」的な話をしたが、今日は偶々 perl-devel
がなくて困った((subversion
を rpmbuild --rebuild
していた。))ので perl-devel
を題材に取ることにした。
続いて、SPEC ファイル中で Source0
, Source1
としている perl-devel-5.8.8.tar.gz*1 と README を用意する。perl-devel-5.8.8.tar.gz は、perl-devel-5.8.8 という空のディレクトリが入っているだけの TAR ボールだ。README の方には何でも好きなことを書けばよい。インストールされた暁には /usr/share/doc/perl-devel-5.8.8/README になるので、このニセモノパッケージを作るに至った経緯などを書いておくといいと思う。ちなみに、TAR ボールと README を分けたのは、README を簡単に編集できるようにするためだ。
たったこれだけ。あとは、rpmbuild -ba --clean SPEC/perl-devel.spec
するだけで、perl-devel-5.8.8-dummy.0.i386.rpm がめでたく出来上がる。
CentOS 本来のパッケージに Provides
を追加するのとどちらが簡単か?
昨日は Provides
を書いて再ビルドする方がいい気がしていたが、やはり、空の -devel
の方がいいと思う。perl
の再ビルドなんてやりたくない。BuildRequires
なのを入れまくるのも避けたいところだ。