De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Criando Pacotes Task para APT

Colaboração: André Pereira

Data de Publicação: 27 de Janeiro de 2007

Quem já usou a distro Conectiva Linux conhece bem os pacotes "task". Para quem não os conhece aqui vai uma breve explicação: pacotes "task" são pacotes vazios, que não possuem nenhum tipo de software. Possuem apenas uma série de dependências.

Mas qual a finalidade disso? Simples!

Estes pacotes existem para realizar tarefas. Por exemplo, um pacote chamado task-lamp poderia ser responsável por instalar todos os pacotes referentes a um servidor LAMP (Linux, Apache, Mysql e PHP) e suas respectivas dependências.

Neste artigo demonstrarei uma forma fácil de criar um pacote task.


Os comandos abaixo foram testados no Ubuntu Edgy.

O software que iremos utilizar para este fim é o equivs, portanto:

  $ sudo apt-get install equivs

Uma vez instalado o equivs devemos criar um arquivo de controle padrão, o qual será utilizado para gerar o pacote, e então editá-lo conforme as nossas necessidades:

  $ equivs-control task-myprofile

onde "task-myprofile" é o nome do arquivo de controle a ser criado e futuramente será o nome do pacote.

Você também pode usar o arquivo modelo abaixo ou mesmo exemplos que acompanham a instalação do equivs (/usr/share/doc/examples/).

  ### Criado em:  20/01/2007
  ### André Pereira <andre@capengenharia.com.br>
  Section: misc
  Priority: optional
  Standards-Version: 3.6.2
  
  Package: andresp-default
  Version: 0.1
  Maintainer: André Pereira <andre@capengenharia.com.br>
  Depends: acroread,broffice.org,firefox,gwenview,k3b,kget,
           knotes,kpdf,ksnapshot,ktorrent,mozilla-mplayer,
  	 mozilla-plugin-vlc,mplayer,xmms
  Description: Pacote Task com os meus softwares desktop mais usados.

Uma vez criado e editado o arquivo de controle, é hora de construir o pacote, para isso usa-se o comando equivs-build

  $ equivs-build  task-myprofile

Isto irá gerar o arquivo .deb que depende dos seus pacotes favoritos.

Pronto! Agora o seu pacote .deb que possui apenas as dependências que você quer instalar está pronto, porém, não é possível instalar este pacote diretamente via dpkg (dpkg -i task-myprofile_...-.deb), a instalação não será efetuada devido aos "problemas" de dependência (lembre-se, o dpkg não resolve dependências automaticamente, quem o faz é o APT).

Para instalar o pacote recém criado via APT, é necessario configurar um repositorio local de pacotes .deb:

Crie um diretorio para o seu repositorio:

  $ sudo bash (vamos trabalhar como root)
  # mkdir /home/apt-local

Copie o arquivo .deb para este diretorio:

  # cp /<caminho>/<nomedopacote>.deb /home/apt-local

Detro do diretorio /home crie o arquivo Packages.gz do repositorio:

  # cd /home
  # dpkg-scanpackages apt-local/ /dev/null | gzip > apt-local/Packages.gz

Adicione o novo repositorio no sources.list

  # echo "deb file:/home apt-local/" >> /etc/apt/sources.list

Atualize a base apt

  # apt-get update

E finalmente instale o pacote

  # apt-get install <nomedopacote>

Observação:

A criação de pacotes vazios tem outras finalidades além da descrita neste artigo.

Imagine o seguinte cenário: você está montando um servidor e decide compilar o Apache manualmente por questões pessoais de configuração, ao invés de instalá-lo via APT. Até ai tudo bem. Porém, se você tentar instalar via APT algum pacote que dependa do Apache, o APT tentará instalar novamente o Apache, uma vez que ele "não sabe" da existência do Apache compilado.

Uma forma elegante de resolver este problema é criar e instalar um pacote vazio referente ao Apache que foi instalado manualmente, desta forma a base APT saberá que o Apache já está instalado e não tentará instalá-lo novamente, preservando a sua compilação / instalação. Para isso use a opção "Provides" no arquivo de controle do equivs. Mas ATENÇÃO: não é nem um pouco recomendada a utilização deste recurso para resolver dependências quebradas. Instalar pacotes sem suas respectivas depências podem provocar erros imprevisíveis no sistema.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de André Pereira