# 表題 rb-gsl の deb パッケージ作成の手引 # # 履歴 2005/03/23 小高正嗣 ■ この文書について この文書は rb-gsl debian パッケージ作成の手引である. ■ ソースダウンロード先 http://rubyforge.org/frs/?group_id=285 ■ 環境変数の設定 パッケージ情報に引用される環境変数 EMAIL と DEBFULLNAE を設定する. $ export EMAIL=odakker(at)gfd-dennou.org $ export DEBFULLNAE="Masatsugu Odaka" ■ 事前インストールパッケージ 事前に以下のパッケージが実行環境にインストールされているか確認する. dh-make dpkg-dev fakeroot devscripts ruby ruby-narray ruby-narray-dev libgsl0-dev (作成時に必要) libruby (作成時に必要) ■ deb パッケージ化: 初めての場合 1) ソースをダウンロードして展開後, ソースのディレクトリ名を <パッケージ名> - <バージョン名> に変更する. 名前に使える文字列は "a-z0-9","+","-" である. 大文字は 使えないことに注意. 今回の場合ソースツリー名が rb-gsl-1.6.2 などとなっているので, そのまま利用する. 2) パッケージ情報の作成 次にパッケージ情報の雛型を作成する. ドキュメントファイルが多いので ここではマルチパッケージとする. $ cd rb-gsl-1.6.2 $ dh_make -m これにより, ソースアーカイブトップディレクトリに debian ディレクトリ が作成される. 編集するファイルは以下の通り ・control パッケージ名などのパッケージ情報を記載する. セクションを指定. Section: math 依存関係は以下のように記述する. Build-Depends: debhelper (>> 3.0.0), libgsl0-dev (>=1.1.1) Depends: ${shlibs:Depends}, ruby (>=1.6.7-3woody4), gsl-bin (>=1.1.1), ruby-narray (>=0.5.7), ruby-narray-dev (>=0.5.7) 依存パッケージのバージョン名パッケージ作成環境にあわせて適宜変更 する. ・copyright ライセンス規定を記述する. 詳細は実ファイルを参照. ・changelog パッケージの更新履歴を記述する. これも詳細は実ファイルを参照. ・docs ドキュメントファイルを記述する. README AUTHORS COPYING ChangeLog THANKS VERSION samples html を記述する. ・rules パッケージ化を行うための Makefile. $(Make) の部分はコメントアウトする. 以下の部分を編集. 最初の方で docpackage=rb-gsl-doc としておくこと. - configure-stamp: dh_testdir # Add here commands to configure the package. > ruby setup.rb config --siteruby=debian/rb-gsl/usr/lib/ruby --prefix=deb\ian/rb-gsl/usr > ruby setup.rb setup ... - clean: dh_testdir dh_testroot rm -f build-stamp configure-stamp # Add here commands to clean up after the build process. > #-$(MAKE) clean > ruby setup.rb clean ... - install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/rb-gsl. > #$(MAKE) install DESTDIR=$(CURDIR)/debian/rb-gsl > ruby setup.rb install > #dh_movefiles ... - binary-indep: build install dh_testdir -i dh_testroot -i #dh_installdebconf -i > dh_installdocs -p$(docpackage) dh_installexamples -i dh_installmenu -i #dh_installlogrotate -i #dh_installemacsen -i #dh_installpam -i #dh_installmime -i #dh_installinit -i dh_installcron -i #dh_installman -i dh_installinfo -i #dh_undocumented -i > dh_installchangelogs ChangeLog -i -p$(docpackage) ... 4) パッケージ化 ソース直下のディレクトリにて $ dpkg-buildpackage -rfakeroot を実行する. その結果, 一つ上のディレクトリに rb-gsl_1.6.2-1.dsc rb-gsl_1.6.2-1_i386.changes rb-gsl-doc_1.6.2-1_all.deb rb-gsl_1.6.2-1_i386.deb rb-gsl_1.6.2-1.diff.gz rb-gsl_1.6.2.orig.tar.gz が作成される. ■ deb パッケージ化: 再パッケージ化する場合 既に作成したパッケージに不具合があり, 再パッケージ化する場合, rb-gsl_1.6.2-1.dsc rb-gsl_1.6.2-1.diff.gz rb-gsl_1.6.2.orig.tar.gz をダウンロードして $ dpkg-source -x rb-gsl_1.6.2-1.dsc を実行する. または apt を使って # apt-get source rb-gsl とする. これにより, debian ディレクトリを含むソースツリーが復元 できる. ソース直下に移動後, $ dch -i を行う. これによりエディタが changelog ファイルを時動的に読み込んで 起動する. 記載されるパッケージ番号も時動的に 1 つ繰り上がる. あとは新規パッケージと同様の手順でパッケージ化する. ■ deb パッケージ化: ソースが更新された場合. ソースが更新された場合(ここでは rb-gsl-1.7.1 がリリースされたとする), 古いソースディレクトリにて $ uupdate -u rb-gsl-1.7.1.tar.gz を実行する. これにより, 時動的にソースが更新される. 1 つ上のディレ クトリに新しいソースツリーが展開されているのでそちらへ移動し, あと は新規パッケージと同様の手順でパッケージ化する.