Linux サーバ構築 ( Fedora Core5 ) - プログラム・パッケージ管理

rpmbuild ( rpmパッケージの作成 ) - 2.パッケージの作成

rpmbuild を用いて、tarball より rpm パッケージを作成する場合の例です。

  1. ( パッケージ作成例 ) 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
  2. SOURCES ディレクトリに ソースファイル ( tarball ) をダウンロードする。
    $ cd ~/rpmwrk/davfs2-1.0.2/SOURCES
    $ wget http://jaist.dl.sourceforge.net/sourceforge/dav/davfs2-1.0.2.tar.gz
  3. 仮編集をするため、BUILD ディレクトリにソースファイルを解凍する。
    $ cd ../BUILD
    $ tar xzvf ../SOURCES/davfs2-1.0.2.tar.gz
    $ ls -al davfs2-1.0.2 ソースファイルを確認する。
  4. makefile を作成し、修正のためオリジナル・ディレクトリを保存する。
    $ cd davfs2-1.0.2
    $ ./configure  Makefile を作成する。
    $ cp -R . ../davfs2-1.0.2-ORG
  5. 必要に応じて、Makefile 等を修正する。 ( 今回は不要 )
    /home/foo/rpmwrk/davfs2-1.0.2/BUILD/davfs2-1.0.2/Makefile ( 例 )
    必要に応じて編集し、保存する。
  6. パッチファイルを作成する。 ( 今回は不要 )
    $ cd ..
    $ diff -Naur davfs2-1.0.2-ORG davfs2-1.0.2 > ../SOURCES/davfs2-1.0.2.patch
  7. 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
  8. 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
  9. 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 )

Site Info

so_counter

Reference

コミットメント

SYSTEMO 宣言

お客様の喜びは、私たちの喜びです。

私たちは
道具としてのITが
お客様のお役に立つことを
心から願っています。

私たちは
SOHOビジネスを
支援します。

運営サイト

商品検索エンジンでオンラインショッピング・インターネット通販を楽しもう
商品検索エンジン【Jトレンズ】
商品検索 by Webサービス
【あいてむず】
  Webサービス ショップリンク サイト

社長Blog
アフィリエイトことはじめLabo
社員Blog
やりくり主婦の
  ほしい☆たべたい☆つかいたい