RPMパッケージをSPECファイルを作ってビルドするソースを用意するここではSlony-I ver 1.2.9のパッケージを作ることにする。取得したファイルはslony1-1.2.9.tar.bz2とする。 パッケージ作成ツリーの設定一般ユーザでパッケージをビルドするには以下のように$HOME/.rpmmacrosに%_topdirなどを設定する。デフォルトでは/usr/src/redhatなのでROOT権限が必要。 %_topdir /home/taro/RPM %_srcrpmdir /home/taro/RPM/SRPMS %_specdir /home/taro/RPM/SPECS %_sourcedir /home/taro/RPM/SOURCES %_builddir /home/taro/RPM/BUILD 実際にディレクトリを作る。 mkdir -p ~/RPM/{BUILD,SOURCES,SPECS,SRPMS,RPMS/{i386,i586,i686,noarch}} %_topdirなどのマクロを確認するには以下のコマンドを実行する。 rpm --showrc |grep _topdir もしくは、以下のコマンドを実行する。 rpm --eval %_topdir SPECファイルの作成SPECファイルは以下の通り。
Summary: Slony-I Name: slony1 Version: 1.2.9 Release: 1 Source0: %{name}-%{version}.tar.bz2 License: GPL Group: Applications/Databases BuildRoot: %{_builddir}/%{name}-root %description Slony-I is a "master to multiple slaves" replication system supporting cascading and failover. %define prefix /usr/local %prep %setup -q %build ./configure --prefix=%{prefix} make %install rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %{prefix}/bin/* %{_libdir}/pgsql/slony1_funcs.so %{_libdir}/pgsql/xxid.so %{_datadir}/pgsql/*.sql %filesセクションインストールするファイルを列挙する。いったん仮ディレクトリなどに手動でインストールをしてみて、インストールされるファイルを確認しておくとよい。 %defattrを使って、パーミッションやオーナーを指定できる。例えば以下のように。 %defattr(755,-,-) /usr/bin/hoge /usr/lib/hoge %defattr(644,-,-) /usr/share/locale/ja /usr/share/locale/lv あるいは%attrで個別に指定してもよい。 %attr(755,root,root) /usr/lib/hoge マクロ変数の定義%defineで自分でマクロを定義出来る。 %define prefix /usr/local なお、ここで使われているマクロ変数のデフォル値は以下の通り。
build rootシェル変数RPM_BUILD_ROOT(BuildRoot)を定義して、ソフトウェアの一時的なインストール先を指定する。 GNUなどが配布するソフトウェアの多くは、make installを実行する際にDESTDIRを定義すると、すべてのインストール・パスの先頭にDESTDIRの値が追加される。もし./configure --prefix=$RPM_BUILD_ROOTでコンパイルして、インストール後に$RPM_BUILD_ROOTのフルパスを利用するソフトウェアがあるとマズイので。 グループ名$ cat /usr/share/doc/rpm-4.4.2/GROUPS Amusements/Games Amusements/Graphics Applications/Archiving Applications/Communications Applications/Databases Applications/Editors Applications/Emulators Applications/Engineering Applications/File Applications/Internet Applications/Multimedia Applications/Productivity Applications/Publishing Applications/System Applications/Text Development/Debuggers Development/Languages Development/Libraries Development/System Development/Tools Documentation System Environment/Base System Environment/Daemons System Environment/Kernel System Environment/Libraries System Environment/Shells User Interface/Desktops User Interface/X User Interface/X Hardware Support SPECファイルからRPMパッケージを作るrpmbuild -ba slony-1.29-1.spec RPMパッケージをインストールするROOT権限が必要。 rpm -ivh slony-1.29-1.rpm 参考 |
|