[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 次のページ ]


Debian 新メンテナガイド
第 7 章 - パッケージのエラーの検証


ここでは, 公式アーカイブにパッケージをアップロードする前に、作成したパッケージのエラーをあなた自身で確認するために知っておかなければならない方法について、幾つか述べます。

あなたのマシン以外でのテストもまた良いアイデアです。以下に述べるすべてのテストにおける、どんな警告とエラーについてでもしっかりと確認しておかなければなりません。


7.1 インストールに対するパッケージの検証

あなたのパッケージが問題なくインストールできるかどうかをテストしなければなりません。debi(1) コマンドはあなたが作成した全てのバイナリパッケージのインストールテストに役立ちます。

     $ sudo debi gentoo_0.9.12-1_i386.changes

別のシステムでインストール時に問題が起きるのを防ぐために、Debian アーカイブよりダウンロードした Contents-i386 ファイルを用いて、他の既存のパッケージと重複するファイルがないことを確認しておかなければなりません。apt-file コマンドはこの作業において恐らく役に立つでしょう。重複するファイルが存在するならば、実際に問題になることを回避するために alternatives (update-alternatives(1) 参照)を用いて他の影響のあるパッケージと調整するか、debian/controlConflicts エントリを追加して下さい。


7.2 パッケージのメンテナスクリプトの検証

全てのメンテナスクリプト、すなわち preinstprermpostinst そして postrm ファイルは、それが debhelperプログラムで自動生成されたのでない場合は、非常に重要です。あなたが新米メンテナならばこれらは使わないで下さい({post|pre}{inst|rm} ファイル, 第 5.18 節 を参照して下さい)。

パッケージがこれらの重要なメンテナスクリプトを使用するならば、インストールだけではなく、削除、完全削除 (purge)、そしてアップグレードについてもテストしておかなければなりません。多くのメンテナスクリプトのバグは削除もしくは完全削除の場合に発生します。これらのテストのためには、以下の様に dpkg コマンドを実行します。

     $ sudo dpkg -r gentoo
     $ sudo dpkg -P gentoo
     $ sudo dpkg -i gentoo_version-revision_i386.deb

以下のような順番で実行すべきでしょう。

これが最初に作成したパッケージならば、将来発生するかもしれない問題を防ぐために、異なるバージョンのダミーパッケージを作成すべきです。

あなたのパッケージが過去の Debian にてリリースされていた場合には、人々は大抵最新の Debian のリリース版に含まれているバージョンからパッケージのアップグレードをするであろう、ということに配慮しましょう。上記の手順で、そのバージョンからきちんとアップグレードできることを、忘れずに確認しておいてください。

ダウングレードは公式にはサポートされていませんが、これをサポートしておいてくれると素敵ですね。


7.3 lintian パッケージ

lintian(1).changes に対して実行しましょう。lintian コマンドはパッケージ作成時のよくある間違いをチェックするために多くのテストスクリプトを実行します。[51]

     $ lintian -i -I --show-overrides gentoo_0.9.12-1_i386.changes

もちろん、.changes のファイル名はあなたが作成したパッケージに置き換えて下さい。lintian コマンドの出力は以下のようにマークされています。

警告が出た場合には、パッケージを調整するか、その警告が不当であることを確認するして下さい。もし警告が不当である場合には {package.|source/}lintian-overrides ファイル, 第 5.13 節 で述べた lintian-overrides を作成して下さい。

dpkg-buildpackage によるパッケージの生成と lintian の実行は、debuild(1) コマンド、もしくは pdebuild(1) コマンドを用いて一度に実行することができます。


7.4 debc コマンド

debc(1) コマンドを用いるとバイナリパッケージに含まれるファイルの一覧が得られます。

     $ debc package.changes

7.5 debdiff コマンド

debdiff(1) コマンドを用いると、二つのソースパッケージに含まれているファイルを比較することができます。

     $ debdiff old-package.dsc new-package.dsc

debdiff(1) コマンドは二つのバイナリパッケージに含まれるファイルの一覧を比較することもできます。

     $ debdiff old-package.changes new-package.changes

これらのコマンドは、ソースパッケージ中でどんな変更をしたのか、バイナリパッケージの中で意図せず削除したり配置を間違えたりしていないか、そしてバイナリパッケージの更新時に不用意な変更をしていないかどうか, といった事柄を確認するのに便利です。


7.6 interdiff コマンド

interdiff(1) コマンドを用いると、二つの .diff.gz ファイルを比較することができます。旧来の 1.0 ソース形式でパッケージを更新している場合には、パッケージのアップデート時にソースに意図しない変更がないことを確認するのに便利です。

     $ interdiff -z old-package.diff.gz new-package.diff.gz

7.7 mc コマンド

mc(1) の様に、*.debパッケージファイルだけではなく、*.udev, *.debian.tar.gz, *.diff.gz, *.orig.tar.gz の中身を閲覧することができるファイルマネージャを用いると、多くのファイルの検査が直感的に行なえます。

不要なファイルや長さゼロのファイルがバイナリパッケージとソースパッケージに含まれていないことを確認して下さい。 大抵は、これらの不要なファイルは正しく削除されずに残ってしまっています。rules を調整しこれを補正して下さい。


[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 次のページ ]


Debian 新メンテナガイド

version 1.2.25, 2010-12-21 14:06:56 UTC

Josip Rodin joy-mg@debian.org

翻訳:倉澤 望 nabetaro@debian.or.jp
翻訳:八津尾 雄介 yyatsuo@gmail.com
翻訳:佐々木 洋平 uwabami@gfd-dennou.org
翻訳:倉敷 悟 lurdan@gmail.com
翻訳:青木 修 osamu@debian.org