目次
この章には、メンテナが利用できるツールについて大まかな概要が含まれています。以下は完全なものでも決定版的なものでもありませんが、よく使われているツールについての説明です。
Debian メンテナツールは、開発者を手助けし、重要な作業のために時間を作れるようにしてくれるものです。Larry Wall が言うように、やり方は一つではありません (there's more than one way to do it)。
高度なパッケージメンテナンスツールを使うのを好む人もいればそうではない人もいます。Debian は公式にはこの問題を不可知論であるとしています。どのようなツールでも作業ができるのであれば構いません。つまり、この章は誰もがどのツールを使うべきか、メンテナンス上で何をすべきかと要求する為のものではないということです。あるいは競合するツールを排して特定のツールを勧める訳でもありません。
パッケージの説明文のほとんどは実際のパッケージの説明から取ったものです。より詳細な情報はパッケージ内のドキュメントで確認できます。apt-cache
show パッケージ名
コマンドでも情報を得られます。
以下のツールはどのメンテナであっても、必ず必要とするものです。
dpkg-dev
は、パッケージを展開、ビルド、Debian
ソースパッケージをアップロードするのに必要なツールを含んでいます (dpkg-source を含む)
。これらのユーティリティはパッケージを作成・操作するのに必要な基礎的で、低レイヤの機能を含んでいます。そのため、これらはあらゆる Debian
メンテナにとって必要不可欠なものです。
debconf
は、パッケージを対話形式で設定できる一貫したインターフェイスを提供します。これはユーザインターフェイスに依存せず、エンドユーザがテキストのみのインターフェイス、HTML
インターフェイス、ダイアログ形式のインターフェイスでパッケージを設定できます。新たなインターフェイスはモジュールとして追加できます。
このパッケージに関するドキュメントは debconf-doc
パッケージ中で確認できます。
多くの人が、対話的な設定を必要とする全てのパッケージにこのシステムが使われるべきだと感じています。「debconf
による設定管理」 を参照してください。現在は debconf
は Debian
ポリシーで必要であるとはされていませんが、将来には変更されることでしょう。
コンピュータ用のフリーオンライン辞書 (Free On-line Dictionary of Computing, FOLDOC) によると、「lint」は C コンパイラよりもより網羅的なチェックを行う Unix C 言語処理器とあります。パッケージ lint ツールは、パッケージ内の一般的な問題やポリシー違反を自動的に見つけてくれることで、パッケージメンテナを助けてくれます。
lintian
は Debian
パッケージを解剖してバグやポリシー違反の情報を出力します。一般的なエラーへのチェック同様にDebian
ポリシーの多くの部分を自動チェックする機能を含んでいます。
定期的に最新の lintian
を
unstable
から取得し、パッケージを全てチェックするべきです。-i
オプションは、各エラーや警告が何を意味しているのか、ポリシーを元に、詳細な説明を提供してくれ、一般的に問題をどのように修正するべきかを説明してくれることに留意してください。
何時、どのようにして Lintian を使うのか、詳細については 「パッケージをテストする」 を参照してください。
あなたのパッケージに対して Lintian によって報告されたの問題の要約はすべて https://lintian.debian.org/ から確認することもできます。このレポートは、最新の
lintian による開発版ディストリビューション (unstable
)
全体についての出力を含んでいます。
(devscripts
パッケージ、「devscripts
」 より) debdiff は二つのパッケージのファイルのリストと
control ファイルを比較します。前回のアップロードからバイナリパッケージ数が変わったことや、control
ファイル内で何が変わったのかなどに気付く手助けをしてくれるなど、簡単なリグレッションテストとなります。もちろん、報告される変更の多くは問題ありませんが、様々なアクシデントを防止するのに役立ってくれるでしょう。
バイナリパッケージのペアに対して実行することができます:
debdiff package_1-1_arch.deb package_2-1_arch.deb
changes ファイルのペアに対してさえも実行できます:
debdiff package_1-1_arch.changes package_2-1_arch.changes
より詳細については、debdiff(1)を参照してください。
パッケージ構築ツールは debian/rules
ファイルを書く作業を楽にしてくれます。これらが望ましい、あるいは望ましくない理由の詳細については 「ヘルパースクリプト」 を参照してください。
debhelper
は、Debian
パッケージのバイナリを作成するにあたっての共通な作業を自動化するため、debian/rules
内で使うことができるプログラムの集合体です。debhelper
は、パッケージに様々なファイルをインストールし、ファイルを圧縮し、ファイルの権限を修正し、パッケージを Debian
のメニューシステムに統合するプログラムを含んでいます。
いくつかのアプローチとは違って、debhelper
は複数の小さな、シンプルな一貫した方法で動作するコマンドに分割されています。そのため、他の debian/rules
用ツールよりも細やかなコントロールが可能になっています。
ここに記すには一時的な、大量の小さな debhelper
のアドオンパッケージがあります。apt-cache search ^dh-
と実行することで一覧の多くを参照できます。
dh-make
パッケージは、ソースツリーを Debian
パッケージをビルドするのに必要な雛形ファイルを作成するプログラム dh_make
を含んでいます。その名が示すように、dh_make は debmake
を書き直したもので、そのテンプレートファイルはdebhelper
の dh_*
プログラムを使うようになっています。
dh_make によって生成された rules ファイルは、大抵の場合作業するパッケージに対して十分な基礎にはなりますが、まだこれは下地でしかありません。メンテナに残っている責務は、生成されたファイルをきれいに整理して、完全に動作してポリシーに準拠したパッケージにすることです。
以下のパッケージは、パッケージ作成作業を手助けしてくれます。通常実行する dpkg-buildpackage と同様に、パッケージ作成支援の作業を取り扱ってくれます。
git-buildpackage
は、Debian ソースパッケージを
Git リポジトリに挿入あるいはインポートし、Debian パッケージを Git
リポジトリから生成、そして開発元での変更をリポジトリに統合するのに役立つ機能を提供します。
これらのユーティリティは、Debian メンテナによる Git
の利用を促進するインフラストラクチャを提供します。これは、バージョンコントロールシステムの他の利点と同様に、stable
、unstable
、おそらく
experimental
ディストリビューション用にパッケージに個々の Git ブランチを持つことができます。
debootstrap
パッケージとスクリプトは、システムのどこででも
Debian
ベースシステムをブートストラップできるようにしてくれます。ベースシステムとは、操作するのに必要となる素の最小限パッケージ群を意味し、それに加えてシステムの残りの部分をインストールします。
この様なシステムを持つことは、様々な面で役に立つでしょう。例えば、ビルドの依存関係をテストしたい場合に chroot でそのシステムの中に入ることができます。あるいは素のベースシステムにインストールした際にパッケージがどのように振る舞うかをテストできます。chroot 作成ツールはこのパッケージを使います。以下を参照ください。
pbuilder
は chroot されたシステムを構築し、パッケージを
chroot
内部でビルドします。パッケージのビルド依存関係が正しいかどうかをチェックするのにとても役立ち、生成されたパッケージに不必要な誤ったビルド依存関係が存在していないことを確かめられるでしょう。
関連するパッケージが cowbuilder
です。標準的な Linux
ファイルシステム上で COW ファイルシステムを使うことでビルド処理を高速化します。
sbuild
はもう一つの自動ビルドシステムです。同様に chroot
された環境を使うことが出来ます。単独で使うことも、分散ビルド環境のネットワークの一部として使うこともできます。文字通り、移植者たちによって利用可能な全アーキテクチャのバイナリパッケージをビルドするのに使われているシステムの一部です。詳細については「wanna-build
」 を参照してください。それからシステムの動作については https://buildd.debian.org/ を参照してください。
以下のパッケージはパッケージを公式アーカイブにアップロードする作業を自動化、あるいは単純化してくれるのに役立ちます。
dupload
は、自動的に Debian パッケージを Debian
アーカイブにアップロードし、アップロードを記録し、パッケージのアップロードについてのメールを送信してくれるパッケージであり、スクリプトです。新しいアップロード先や方法を設定することもできます。
dput
パッケージとスクリプトは dupload
と同じことを違ったやり方で行います。GnuPG
署名とチェックサムをアップロード前にチェックする機能や、アップロード後に dinstall を dry-run
モードで実行できるなど、dupload
よりもいくつか機能が多くなっています。
dcut スクリプト (dput
パッケージの一部、「dput
」 参照)は、ftp アップロードディレクトリからファイルを削除するのに役立ちます。
以下のツールは changelog のエントリや署名行の追加、Emacs 内でのバグの参照から最新かつ公式の
config.sub
を使うようにするまで、様々なメンテナンス作業を自動化するのに役立ちます。
devscripts
は、Debian
パッケージをメンテナンスするのに非常に有用なラッパーやツールを含むパッケージです。スクリプトの例としては
debian/changelog
ファイルをコマンドラインから操作する
debchange および dch、そして
dpkg-buildpackage 関連のラッパーである debuild
を含んでいます。bts
ユーティリティも、バグ報告の状態をコマンドライン上で更新するのにとても役立ちます。uscan
はパッケージの新しいバージョン (new upstream version)
をチェックするのに使えます。debrsign
は、リモートでアップロード前にパッケージにサインするのに利用できます。これは GPG があるのとは違うマシンでパッケージをビルドした際に便利です。
利用可能なスクリプトの全リストについては devscripts(1) マニュアルページを参照してください。
autotools-dev
は、autoconf や automake
を使っているパッケージをメンテナンスする人にとってのベストプラクティスを含んでいます。また、全ての Debian
移植版で動作することを知られている正規の config.sub
および
config.guess
ファイルを含んでいます。
dpkg-repack は既にインストールされているパッケージから Debian
パッケージを生成します。パッケージが展開されてから何かしら変更が加えられている場合 (例えば、/etc
にあるファイルが変更されているなど)、新しいパッケージは変更を含みます。
このユーティリティは、一つのコンピュータから他のコンピュータへパッケージをコピーするのを簡単にできるようにしてくれます。また、あなたのシステムにはインストールされているがどこでも入手できなくなってしまったパッケージを再作成したり、アップグレード前にパッケージの現在の状態を保存するのに使えます。
alien は、Debian、RPM (RedHat)、LSB (Linux Standard Base)、Solaris、Slackware などの各種バイナリパッケージのパッケージ形式を変換します。
dpkg-dev-el
は、パッケージの
debian
ディレクトリにあるファイルを編集する際に手助けしてくれる Emacs lisp
パッケージです。例えば、パッケージの現在のバグをリストアップしてくれたり、debian/changelog
ファイル中の最新のエントリの終端処理してくれたりするのための手軽な機能があります。
(devscripts
パッケージ、「devscripts
」 より) dpkg-depcheck
は、指定されたコマンドによって使われた全てのパッケージを確認するため、コマンドを strace の下で実行します。
Debian パッケージについていうと、これは新しいパッケージの Build-Depends
行を構成するのが必要になった際に役立ちます。dpkg-depcheck
を通してビルド作業を実行すると、最初の大まかなビルドの依存関係を良い形で得られます。例えば以下の様にします:
dpkg-depcheck -b debian/rules build
dpkg-depcheck は、特にパッケージが他のプログラムを実行するのに exec(2) を使っている場合に実行時の依存性を確認するのにも使えます。
より詳細については、dpkg-depcheck(1) を参照してください。
以下のツールが、移植作業者やクロスコンパイル作業に役立ちます。
以下のパッケージが、メンテナへの情報提供やドキュメントの作成に役立ちます。
docbook-xml
は Debian
のドキュメントで一般的に使われている DocBook XML DTD を提供します (古いものは debiandoc SGML DTD を使っています)
。例えば、このマニュアルは DocBook XML で書かれています。
docbook-xsl
パッケージは、ソースをビルドして様々な出力フォーマットに整形する XSL ファイルを提供します。XSL スタイルシートを使うには xsltproc
のような XSLT
プロセッサが必要になります。スタイルシートのドキュメントは各種 docbook-xsl-doc-*
パッケージで確認できます。
FO から PDF を生成するには、xmlroff
や
fop
のような FO プロセッサが必要です。他に DocBook
XML から PDF を生成するツールとしては dblatex
があります。
debiandoc-sgml
は Debian
のドキュメントで一般的に使われている DebianDoc SGML DTD を提供します。しかし、現在は非推奨 (deprecated) となっています
(代わりにdocbook-xml
を使うようにしてください)。これも、ソースをビルドして様々な出力フォーマットに整形するスクリプトを提供します。
ドキュメント用の DTD は debiandoc-sgml-doc
パッケージで確認できます。
Contains the public GPG keys of Debian Developers and Maintainers. See 「公開鍵をメンテナンスする」 and the package documentation for more information.