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.
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>
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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários