最近、さまざまなハウツーやパッケージの作成方法に関するガイドを調べています。そして、 lot of ways 1つが goaboutit であるようです。だから私は正確に何を使うべきかについて少し混乱しています。それは私が全体像を見ようとしているということです。どのようなツールが存在しますか?それらの間の関係は何ですか?ラッパーはどれですか?どちらが何に適していますか?お気に入り、 apt-get source
is おそらく 開発者ではなく、主にユーザーを対象としています。 より良い代替 はdget
でなければなりません。どちらの選択肢がありますか?いくつか例を挙げると、pbuilder
、pdebuild
、pbuilder-dist
、cowbuilder
、sbuild
、debuild
、dpkg-buildpackage
、fakeroot
。そして、私も知らないことがもっとたくさんあるに違いありません。最も一般的なワークフローは何ですか?
私が何とか見つけたもの。まず、 この簡単な説明 があります。これは私がここで主に尋ねるものです。
ビルドシステムの中核にはdpkg-buildpackages
があり、これはfakeroot
を使用し、次にdebian/rules
(makefile)を実行してパッケージをビルドします。そして、それを実行しているリリースの内部使用のためのパッケージを構築する場合は、それで十分かもしれません。
一方、debian
/ubuntu
に貢献することを目的としている場合は、少なくともdebuild
を使用します。これはlintian
を実行します。ファイルに署名します。
さまざまなdebian
/ubuntu
リリースをターゲットにする場合は、pbuilder
を使用します。これは、特に、インストール済みのクリーンな環境でパッケージをビルドします。実際の依存関係を確認するためのパッケージ。問題をさらに単純化するためにpbuilder-dist
を使用することを検討するかもしれません。
「デビルドを行うpbuilderの方法」と言われるpdebuild
があります。 lintian
が実行されているようには見えませんが、pbuilder
の方法と一致していない可能性があります。
次に、パッケージのビルドを高速化したい場合は、cowbuilder
もあります(pbuilder
のラッパー)。 git
リポジトリから構築するためのツールもありますが、私は掘り下げていません。
[〜#〜] upd [〜#〜]#debian-mentors
で、「sbuild
は同じように動作すると言われていますbuildd
として、驚きは少ない」、「pbuilder
の実験的サポートは間違っている」、「OTOH sbuild
は、ビルドプロセスからネットワークを奪うための何かをまだ見逃している」 、およびそのpbuilder
は維持されません。パッケージの構築はネットワークの存在に依存してはならず、何もダウンロードしてはならないため、ネットワークを取り除く必要があります。
schroot
from Experimental おそらくネットワークを分離(共有解除)することができます。
ソース環境についてはあまり言いません。
オープンソースでプロジェクトが1つ(debian/
ディレクトリの下にある制御ファイルが1つ)の場合、 https://launchpad.net は本当に良い解決策です。多かれ少なかれ、ファイルを正しく取得する必要があり、残りはファイルが処理します。
ファイルを正しく取得することは、今でも私にとっては少し魔法ですが、パッケージの作成方法に関するドキュメントはたくさんあります。動作する非常に単純な例から始めて、次に進むにつれて他のオプション/機能を追加する時間をとることができます。そうすれば、すべてのインとアウトを一度に学ぶ必要はありません。