# 表題 ruby-narray の deb パッケージ作成の手引 # # 履歴 2004/03/14 竹本和彰 # 2004/03/15 小高正嗣 ■ この文書について この文書は ruby-narray debian パッケージ作成の手引である. ■ ソースダウンロード先 http://www.ir.isas.ac.jp/~masa/ruby/dist/narray-0.5.7.tar.gz ■ インストール先ディレクトリ /usr/lib/ruby/1.6/ わからない場合は $ ruby -r rbconfig -e 'p Config::CONFIG["rubylibdir"]' で確認する. ■ 環境変数の設定 パッケージ情報に引用される環境変数 EMAIL と DEBFULLNAE を設定する. $ export EMAIL=takemoto@ep.sci.hokudai.ac.jp $ export DEBFULLNAE="Kazuaki Takemoto" ■ 事前インストールパッケージ 事前に以下のパッケージが実行環境にインストールされているか確認する. dh-make dpkg-dev fakeroot devscripts ruby ruby-dev fftw2 (必須ではない) fftw-dev (必須ではない) ■ deb パッケージ化: 初めての場合 1) ソースをダウンロードして展開後, ソースのディレクトリ名を <パッケージ名> - <バージョン名> に変更する. 名前に使える文字列は "a-z0-9","+","-" である. 大文字は 使えないことに注意. 今回の場合ソースツリー名が narray-0.5.7p2 となっているので, ruby-narray-0.5.7.2 とする. 2) パッケージ情報の作成 次にパッケージ情報の雛型を作成する. $ dh_make -l -c rubys これにより, ソースアーカイブトップディレクトリに debian ディレクトリ が作成される. 編集するファイルは以下の通り. パッケージ名が ruby-narray1 となって いる場所があるので, すべて ruby-narray に変更する. ・control パッケージ名などのパッケージ情報を記載する. ruby-narray, ruby-narray-dev ともに math セクションを指定. Section: math 依存関係は以下のように記述する. ruby-narray: Depends: ${shlibs:Depends}, libruby(>= 1.6.0) Suggests: fftw2 ruby-narray-dev: Depends: ruby-narray (= ${Source-Version}) 依存パッケージのバージョン名パッケージ作成環境にあわせて適宜変更 する. ・copyright ライセンス規定を記述する. 詳細は実ファイルを参照. ・changelog パッケージの更新履歴を記述する. これも詳細は実ファイルを参照. ・docs パッケージに含めるドキュメントファイルを記述する. ここでは ソース直下の以下のファイルとディレクトリ名を記述する ChangeLog doc SPEC.en SPEC.ja README.en README.ja MANIFEST speed test nimage これらは ruby-narray-dev パッケージに含まれる(debian のパッケージ ポリシーの仕様). ・*.dirs, *.files パッケージのインストール先ディレクトリをファイルをリストする. ruby-narray, ruby-narray-dev 両方を作成する. - ruby-narray.dirs : usr/lib - ruby-narray.files: usr/lib/lib*.so.* usr/lib/ruby/1.6/i386-linux/*.so usr/lib/ruby/1.6/*.rb - ruby-narray-dev.dirs : usr/lib usr/include - ruby-narray-dev.files: usr/lib/ruby/1.6/i386-linux/*.h ・rules パッケージ化を行うための Makefile. ソースの README.ja を参考に加 筆する. - install: build ... # Add here commands to install the package into debian/ruby-netcdf. $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp (注意: デフォルトでは上記のようになっているはずである make site-install とすると /usr/local 以下にインストールされてしまう) 3) Makefile の修正 パッケージ化を行う前に Makefile を修正する. テンプレートは $ ruby extconf.rb として作成される. 以下の部分を修正する. na_op.o: na_op.c narray.h $(hdrdir)/ruby.h --> na_op.o: na_op.c narray.h na_math.o: na_math.c narray.h $(hdrdir)/ruby.h --> na_math.o: na_math.c narray.h 4) パッケージ化 ソース直下のディレクトリにて $ dpkg-buildpackage -rfakeroot を実行する. その結果, 一つ上のディレクトリに ruby-narray-0.5.7-X.diff.gz ruby-narray-0.5.7-X.dsc ruby-narray-0.5.7-X_i386.changes ruby-narray-0.5.7-X_i386.deb ruby-narray-0.5.7.orig.tar.gz が作成される. ■ deb パッケージ化: 再パッケージ化する場合 既に作成したパッケージに不具合があり, 再パッケージ化する場合, ruby-narray-0.5.7-X.diff.gz ruby-narray-0.5.7-X.dsc ruby-narray-0.5.7.orig.tar.gz をダウンロードして $ dpkg-source -x ruby-narray-0.5.7-X.dsc を実行する. または apt を使って # apt-get source ruby-narray とする. これにより, debian ディレクトリを含むソースツリーが復元 できる. ソース直下に移動後, $ dch -i を行う. これによりエディタが changelog ファイルを時動的に読み込んで 起動する. 記載されるパッケージ番号も時動的に 1 つ繰り上がる. あとは新規パッケージと同様の手順でパッケージ化する. ■ deb パッケージ化: ソースが更新された場合. ソースが更新された場合(ここでは ruby-narray-0.5.8 がリリースされたとする), 古いソースディレクトリにて $ uupdate -u ruby-narray-0.5.8.tar.gz を実行する. これにより, 時動的にソースが更新される. 1 つ上のディレ クトリに新しいソースツリーが展開されているのでそちらへ移動し, あと は新規パッケージと同様の手順でパッケージ化する.