他のパッケージを自動的にインストールするメタパッケージを作成する方法は?


回答:


47

このようなメタequivs パッケージは、依存関係情報だけでパッケージを作成するというツールで作成できます。

まず、ディレクトリを作成します。

mkdir my-metapackage
cd my-metapackage/

次に、プログラムを実行します。

equivs-control ns-control

というファイルが作成されns-control、このファイルをテキストエディターで開きます。生成する制御ファイルには、インストールするパッケージに応じて、その行DependsまたはRecommends行を変更する必要があります。

Section: misc
Priority: optional
Standards-Version: 3.9.1

Package: my-metapackage
Version: 1.0   
Depends: openssh-server, gedit
Description: This package installes an ssh server and a text editor
 The Long description of this package ends with a newline!

(ほんの一例、詳細を含める必要があります)

そして最後に、実行してパッケージをビルドします

equivs-build ns-control

パッケージはにありmy-metapackage/my-metapackage_1.0_all.debます。

あなたもソースパッケージを作成したい場合は、--fullオプションがに渡すことができますequivs-build例えば、equivs-build --full ns-control。これはdebuildを使用し、.dscおよび.tar.gzファイルも作成します。

PPAにアップロードできるソース.changesファイルを作成するには、ソースパッケージを抽出してビルドします。

dpkg-source -x my-metapackage_1.0.dsc
cd my-metapackage-1.0
debuild -S

ns-controlで設定したメンテナーがGPGキーと一致する場合、PPAに出力するmy-metapackage_1.0_source.changesファイルをビルドして署名する必要があります


どうもありがとう。私はおそらくこれを後でテストしますが、これまでのところ、指示はうまくいきました。:)
トーマスウォード

2
完璧に機能します!
ステファノパラッツォ

ajmitchの回答に感謝しますが、理由だけで、~/.devscriptsファイルがあり、特にdevscriptsファイルで使用する別のGPGキーを定義すると、dpkg / debuildプロセスが上書きされ、それが発生することを指摘します。で指定された特定のGPGキーを使用.devscriptsします。答えの最後の文の注目すべきポイントとして
Thomas Ward

Depends:パッケージが存在する場合にのみ、パッケージを配置するとインストールが良好になることに気付きました。それらが私のマシンにない場合はインストールされません。それらをインストールするには、Provides代わりに使用しましたが、それは魅力のように機能します。私のコードを参照してください(変更したばかり):github.com/palladius/debian-packages/blob/master/…–
リカルド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.