Linux サーバ構築 ( Fedora Core5 ) - プログラム・パッケージ管理
rpmbuild ( rpmパッケージの作成 ) - 2.パッケージの作成
rpmbuild を用いて、tarball より rpm パッケージを作成する場合の例です。
- ( パッケージ作成例 ) davfs2 の ソース tarball より rpm パッケージを作成する場合。
一般ユーザで作業用のディレクトリに移動し、ディレクトリ・ツリーを作成する。# exit $ mkdir -p ~/rpmwrk/davfs2-1.0.2 $ cd ~/rpmwrk/davfs2-1.0.2 $ rpm-initdir rpm パッケージ作成用の ディレクトリ・ツリーを自動作成 $ ls BUILD RPMS SOURCES SPECS SRPMS $ cat ~/.rpmmacros ユーザごとのマクロ設定ファイルの内容を確認 %_topdir /home/foo/rpmwrk/davfs2-1.0.2
- SOURCES ディレクトリに ソースファイル ( tarball ) をダウンロードする。
$ cd ~/rpmwrk/davfs2-1.0.2/SOURCES $ wget http://jaist.dl.sourceforge.net/sourceforge/dav/davfs2-1.0.2.tar.gz
- 仮編集をするため、BUILD ディレクトリにソースファイルを解凍する。
$ cd ../BUILD $ tar xzvf ../SOURCES/davfs2-1.0.2.tar.gz $ ls -al davfs2-1.0.2 ソースファイルを確認する。
- makefile を作成し、修正のためオリジナル・ディレクトリを保存する。
$ cd davfs2-1.0.2 $ ./configure Makefile を作成する。 $ cp -R . ../davfs2-1.0.2-ORG
- 必要に応じて、Makefile 等を修正する。 ( 今回は不要 )
/home/foo/rpmwrk/davfs2-1.0.2/BUILD/davfs2-1.0.2/Makefile ( 例 )
必要に応じて編集し、保存する。
- パッチファイルを作成する。 ( 今回は不要 )
$ cd .. $ diff -Naur davfs2-1.0.2-ORG davfs2-1.0.2 > ../SOURCES/davfs2-1.0.2.patch
- spec ファイルを作成する。
/home/foo/rpmwrk/davfs2-1.0.2/SPECS/davfs2-1.0.2.spec
#--------------------------------------------- # davfs2-1.0.2.spec #--------------------------------------------- # 1.data definition #--------------------------------------------- %define name davfs2 %define version 1.0.2 %define release 1s # %%define prefix /usr/local # リロケータブル設定 # 今回は不要なので、コメントアウト Summary: davfs2 is mount tool for WebDAV client. Summary(ja): davfs2 は WebDAV クライアントのマウントツールです. Name: %{name} Version: %{version} Release: %{release} Source0: http://jaist.dl.sourceforge.net/sourceforge/dav/davfs2-1.0.2.tar.gz # Patch0: davfs2-1.0.2.patch # 今回は不要なので、コメントアウト License: GPL Group: Local URL: http://mydomain.com # Requires: # BuildRequires: Buildroot: %{_tmppath}/%{name}-root Packager: foo <foo@mydomain.com> Vendor: foo <foo@mydomain.com> Distribution: Fedora Core5 Local %description davfs2 is useful mount tool for WebDAV client. ordinary users are able to mount. %description -l ja davfs2 は WebDAV クライアントの便利なマウントツールです. 一般ユーザでもマウントできます。 #--------------------------------------------- # 2.script #--------------------------------------------- %prep %setup # %%patch -p1 # 今回は不要なので、コメントアウト %build %configure %__make %install rm -rf $RPM_BUILD_ROOT make DESTDIR=${RPM_BUILD_ROOT} install # %%makeinstall %clean rm -rf $RPM_BUILD_ROOT #--------------------------------------------- # 3.file list #--------------------------------------------- %files %defattr(-,root,root) %dir %{_sysconfdir}/davfs2 %config %{_sysconfdir}/davfs2/davfs2.conf %config %{_sysconfdir}/davfs2/secrets /sbin/mount.davfs %{_sbindir}/mount.davfs %dir %{_datadir}/davfs2 %{_datadir}/davfs2/BUGS %{_datadir}/davfs2/COPYING %{_datadir}/davfs2/ChangeLog %{_datadir}/davfs2/FAQ %{_datadir}/davfs2/GPL %{_datadir}/davfs2/NEWS %{_datadir}/davfs2/README %{_datadir}/davfs2/THANKS %{_datadir}/davfs2/TODO %{_datadir}/davfs2/davfs2.conf.template %{_datadir}/davfs2/secrets.template %{_mandir}/man8/mount.davfs.8.gz #--------------------------------------------- # 4.cange log #--------------------------------------------- %changelog * Sun Jun 11 2006 foo <foo@mydomain.com> - release 1s for version 1.0.2 # end of file
- rpmbuild の -bi オプションにより、仮インストールまでのテストを行なう。
$ cd ~/rpmwrk/davfs2-1.0.2 $ rpmbuild -bi SPECS/davfs2-1.0.2.spec $ rpm-listfile /var/tmp/davfs2-root 仮インストールされたファイルを確認する。 /etc/davfs2/davfs2.conf /etc/davfs2/secrets /sbin/mount.davfs /usr/lib/debug/usr/sbin/mount.davfs.debug debuginfo 用のファイル /usr/sbin/mount.davfs /usr/share/davfs2/BUGS /usr/share/davfs2/COPYING /usr/share/davfs2/ChangeLog /usr/share/davfs2/FAQ /usr/share/davfs2/GPL /usr/share/davfs2/NEWS /usr/share/davfs2/README /usr/share/davfs2/THANKS /usr/share/davfs2/TODO /usr/share/davfs2/davfs2.conf.template /usr/share/davfs2/secrets.template /usr/share/man/man8/mount.davfs.8.gz /usr/src/debug/davfs2-1.0.2/src/cache.c 以下 debuginfo 用のファイル /usr/src/debug/davfs2-1.0.2/src/cache.h /usr/src/debug/davfs2-1.0.2/src/dav_coda.c /usr/src/debug/davfs2-1.0.2/src/dav_coda.h /usr/src/debug/davfs2-1.0.2/src/mount_davfs.c /usr/src/debug/davfs2-1.0.2/src/mount_davfs.h /usr/src/debug/davfs2-1.0.2/src/webdav.c /usr/src/debug/davfs2-1.0.2/src/webdav.h
- rpmbuild の -bqaオプションにより、すべての rpm パッケージの作成を行なう。
$ cd ~/rpmwrk/davfs2-1.0.2 $ rpmbuild -ba SPECS/davfs2-1.0.2.spec $ ls -al RPMS/i386 -rw-rw-r-- 1 foo foo 54916 6月 13 13:22 davfs2-1.0.2-1.i386.rpm -rw-rw-r-- 1 foo foo 98600 6月 13 13:22 davfs2-debuginfo-1.0.2-1.i386.rpm $ ls -al SRPMS -rw-rw-r-- 1 foo foo 155436 6月 13 13:22 davfs2-1.0.2-1.src.rpm
( 最終更新日時 : 2008/08/31 21:24:47 )