Como criar um meta-pacote que instala automaticamente outros pacotes?

48

Eu gostaria de poder criar um pacote que não contenha nenhum código ou programas, mas instalar outros pacotes que existem nos repositórios em um computador, como o ubuntu-restricted-extras faz?

    
por Thomas Ward 04.04.2011 / 05:36

1 resposta

42

Um meta-pacote como esse pode ser criado com uma ferramenta chamada equivs que criará um pacote com apenas informações de dependência.

Primeiro, crie um diretório:

mkdir my-metapackage
cd my-metapackage/

Agora, execute o programa:

equivs-control ns-control

Ele criará um arquivo chamado ns-control , abra este arquivo com seu editor de texto. O arquivo de controle que você gera deve ter seu Depends ou Recommends linhas modificadas para depender dos pacotes que você deseja instalar:

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!

(Apenas um exemplo, você deve incluir mais informações)

E, finalmente, construa o pacote executando

equivs-build ns-control

Seu pacote está localizado em my-metapackage/my-metapackage_1.0_all.deb .

Se você deseja também criar um pacote de origem, a opção --full pode ser passada para equivs-build , por exemplo, %código%. Isso usará debuild & amp; também crie .dsc & amp; arquivos .tar.gz.

Para criar um arquivo .changes de origem que você possa enviar para um PPA, extraia & amp; construa o pacote fonte com

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

Se o Mantenedor que você definir no ns-control corresponder à sua chave GPG, ele deverá criar & amp; assine o arquivo my-metapackage_1.0_source.changes para você enviar para o seu PPA

    
por ajmitch 04.04.2011 / 05:46