Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Mão na Massa LDAP - 1 Profissional por Máquina
Configure um serviço de Diretórios baseado no servidor OpenLDAP!
Dia 6 de Dezembro - São Paulo
Saiba mais


 

Aprenda inglês em casa

Baixe gratuitamente as duas primeiras aulas

English for Reading and Listening

Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.

Saiba mais e faça sua inscrição

Você está aqui: Home  → Arquivo Dicas-L

 

Mão na Massa Nagios

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Publicar em del.icio.us

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.

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

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.01/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (578 votos)

Recomende este site
Recomendar este artigo


Versão para impressão


Opinião dos Leitores

Aldefax G. Kuhn
31 Jan 2007, 10:57
Muito bom, isso é excelente para instalar aqueles pacotes que sempre instalamos a cada instalação, tipo multimídia.

No caso de querer compilar a partir dos fontes eu recomendo o apt-build, ele faz isso com elegância e mantém a integridade com o sistema de pacotes do Debian GNU/Linux.
*Nome:
Email:
Me notifique sobre novos comentários nessa pagina
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Mão na Massa LDAP - 1 Profissional por Máquina
Configure um serviço de Diretórios baseado no servidor OpenLDAP!
Dia 6 de Dezembro - São Paulo
Saiba mais

Biblioteca

Redes - Guia Prático
Por Carlos. E. Morimoto

Hardware - o Guia Definitivo
Por Carlos. E. Morimoto

Kurumin 7 - Guia Prático
Por Carlos. E. Morimoto

Linux: Ferramentas Técnicas, 2ed
Por Carlos. E. Morimoto

VPN: Virtual Private Network
Por Lino Sarlo da Silva

MySQL - Guia do Programador
Por André Milani

Sistemas de Banco de Dados
Por Ramez E. Elmasri e Shamkant Navathe

Hardware PC: Guia de Aprendizagem Rápida
Por Carlos E. Morimoto

Extreme Programming
Por Vinicius Manhaes Teles

Google Hacking
Por JOHNNY LONG

Elite da Tropa
Por Luis Eduardo Soares, Andre Batista e Rodrigo Pimentel

Harry Potter e as Relíquias da Morte
Por J.K. Rowling

Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder

PHP para Quem Conhece PHP
Por Juliano Niederauer

O Conhecimento em Rede
Por Carlos Nepomuceno e Marcos Cavalcanti

Enterprise Javabeans 3.0
Por Bill Burke, Richard Monson

Redes de Computadores
Por Andrew S. Tanembaum

Marley e Eu: a Vida e o Amor ao Lado do Pior Cão do Mundo
Por John Grogan

Deus, um delírio
Por Richard Dawkins

Java: Como Programar
Por Harvey M. Deitel e Paul J. Deitel

Descobrindo o Linux: Entenda o Sistema Operacional GNU/Linux
Por Joao Eriberto Mota Filho

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

1808
Por Laurentino Gomes

UML: Guia do Usuário
Por Grady Booch, James Rumbaugh e Ivar Jacobson