Metapacote é um pacote que não possui conteúdo. Ao invés disso ele apenas declara dependências que deverão ser instaladas ou removidas. A grande vantagem de um pacote como este é que você pode simplificar a instalação de um conjunto de pacotes instalando apenas um deles. Por exemplo, ao instalar o pacote “ubuntu-desktop”, todos pacotes necessários para que você tenha um ambiente Desktop no seu Ubuntu serão instalados. Se você depois decidir que prefere o XFCE, bastaria instalar o xubuntu-desktop que automaticamente instalaria todos os pacotes necessários sem que o usuário precise se preocupar. Outra utilidade é “enganar” o sistema dizendo que uma determinada aplicação está instalada, quando na verdade ela não está.
Para criar metapacotes no Debian de forma prática nós vamos instalar o pacote “equivs” que instalará todo o necessário para este trabalho.
sudo aptitude install equivs
Vamos supor que logo após a instalação do meu sistema eu costume instalar um punhado de pacotes que eu julgo essencial para meu trabalho. Ao invés de instalá-los uma a uma via apt-get, aptitude ou synaptic basta que eu crie um metapacote com estas ferramentas como dependência e pronto.
A partir daí, todas as vezes que eu instalar o meu novo sistema eu só precisaria instalar este metapacote para que as demais ferramentas sejam instaladas e pronto.
Preparando a estrutura do pacote
Neste exemplo eu vou criar um metapacote chamado welington-desktop que instalará os pacotes htop, mc, iotop e leafpad. A primeira coisa a fazer é executar o comando equivs-control.
equivs-control welington-desktop
O arquivo de controle
Isso criará um único arquivo com o nome do metapacote. O seu conteúdo corresponde ao arquivo “control” existente em todos os pacotes Debian e que é onde estão as informações do pacote. Abra este arquivo com um editor de textos e altere os campos a seguir :
Package: welington-desktop Version: 0.1 Mantainer: Welington Braga <meuemail@meuservidor.com> Depends: htop, mc, iotop, leafpad Description: Instala o HTOP, Midnight Commander, leafpad sem os quais eu não conseguiria viver. Metapacote para simplificar a minha vida pós instalação do Debian .
Você deve ter percebido que vários campos iniciam com “#”. Se quiser usar estes campos você deverá tirar estes caracteres e então completar o campo com o valor desejado, como eu fiz no caso do campo “Version” e do campo “Depends”. Você pode aprender mais sobre a função dos demais campos a partir do manual do APT.
Criando o pacote
Após fazer as alterações necessárias, salve o arquivo e execute o comando equivs-build:
equivs-build welington-desktop
Isso irá exibir algumas mensagens em sua tela e no final você terá um pacote chamado welington-desktop_0.1_all.deb e que poderá ser instalado em qualquer sistema da forma tradicional.
Instalando o pacote criado
Com o pacote criado você poderá usar as várias ferramentas do Debian para instalá-lo. Por exemplo:
sudo gdebi welington-desktop_0.1.deb
Lembre-se entretanto que o apt-get ou aptitude não servem para esta instalação porque este pacote não está em nenhum repositório Debian.
O restante você já deve conhecer como funciona 😉
Observações
Você pode preparar o seu metapacote para executar scripts antes ou após a instalação, pode inclusive instalar algum programa – neste caso ele não será um metapacote, mas um pacote real e muito mais. O sistema de empacotamento do Debian é absurdamente poderoso, flexível e simples. Consulte as referências e divirta-se.
Referências
- Como usar o APT. http://www.debian.org/doc/manuals/apt-howto/index.pt-br.html
- Criar um simples meta-package. http://www.ubuntu-pt.org/feeds/4/37
- Criando meta-pacotes para Debian. http://blog.bibliotecaunix.org/?p=325
- HOWTO: Create a Debian Meta Package. http://jeffhoogland.blogspot.com/2011/08/howto-create-debian-meta-package.html