web-dev-qa-db-ja.com

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

コードやプログラム自体を含まないパッケージを作成したいのですが、代わりにリポジトリに存在する他のパッケージをコンピューターにインストールします。ubuntu-restricted-extrasパッケージはどうですか

54
Thomas Ward

このようなメタパッケージは、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キーに一致する場合、my-metapackage_1.0_source.changesファイルをビルドして署名し、PPAに出力する必要があります。

47
ajmitch