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: Carlos E. Morimoto
Data de Publicação: 23 de Junho de 2005
Todas as distribuições incluem um conjunto generoso de pacotes, seja diretamente nos CDs de instalação, seja em repositórios disponíveis via web. Os repositórios oficiais do Debian, por exemplo, combinados com o repositório non-free e mais alguns repositórios não oficiais podem facilmente oferecer mais de 22.000 pacotes diferentes.
Mesmo assim, muitos drivers e softwares não estão disponíveis nos
repositórios e precisam ser instalados manualmente a partir do
código fonte. O checkinstall
facilita esta tarefa, principalmente
se você precisa instalar o mesmo software em várias máquinas ou
quer distribuí-lo para amigos, gerando um pacote .deb
, .tgz
ou
.rpm
com o software pré-compilado, que pode ser instalado usando
o gerenciador de pacotes de cada distribuição.
Para usá-lo, comece instalando o pacote usando o apt-get
, urpmi
,
yum
ou outro gerenciador de pacotes usado na sua distribuição. Ele
é um pacote bastante comum, que vem incluído em todas as principais
distribuições. No Debian por exemplo bastaria um:
# apt-get install checkinstall
O funcionamento do checkinstall
é simples. Ao instalar qualquer
pacote a partir do código fonte, substitua o comando make install
pelo comando apropriado do checkinstall
. Onde:
# checkinstall -D
(gera um pacote .deb
, para distribuições derivadas do Debian)
# checkinstall -R
(gera um pacote .rpm
, que pode ser usado em distribuições derivadas
do Red Hat)
# checkinstall -S
(gera um pacote .tgz
, para o Slackware)
Por exemplo, para gerar um pacote contendo os módulos e utilitários do driver para modems 537EP os comandos seriam:
$ tar -zxvf intel-537EP-2.60.80.0.tgz $ cd intel-537EP-2.60.80.0/ $ make clean $ make 537 $ sudo checkinstall -D
Lembre-se que o checkinstall
deve ser sempre
executado como root. Ele vai gerar o pacote,
salvando-o no diretório a partir de onde foi chamado
(/home/kurumin/intel-537EP-2.60.80.0/intel-537ep-2.60.80.0_2.60.80.0-1_i386.deb
no meu caso) e em seguida instalá-lo na sua máquina.
Durante a geração do pacote, ele fará algumas perguntas, a fim de gerar o arquivo de controle que contém informações como o mantenedor do pacote (você no caso), uma descrição do pacote (um texto de poucas linhas explicando o que ele faz) e a versão.
Ao gerar seus próprios pacotes, você pode ter problemas de instalação, caso seu pacote inclua algum arquivo que também existe em outro pacote já instalado no sistema, gerando erros como:
(Lendo banco de dados ... 68608 arquivos e diretórios atualmente
instalados.)
Descompactando intel-537ep-2.60.80.0 (de .../intel-537ep-2.60.80.0_2.60.80.0-1_i386.deb) ...
dpkg: erro processando /home/kurumin/intel-537EP-2.60.80.0/intel-537ep-2.60.80.0_2.60.80.0-1_i386.deb
(--install):
tentando sobrescrever
`/lib/modules/2.6.8.1-kanotix-10/modules.usbmap', que também está
no pacote qemu
dpkg-deb: subprocesso paste morto por sinal (Broken pipe)
Erros foram encontrados durante processamento de:
/home/kurumin/intel-537EP-2.60.80.0/intel-537ep-2.60.80.0_2.60.80.0-1_i386.deb
Nestes casos você pode modificar o pacote, para não incluir o
arquivo. Desinstalar o outro pacote com quem ele conflita (o qemu
no caso) ou, caso perceba que é um problema benigno, que não trará
maiores conseqüências, forçar a instalação do seu pacote, para que
ele subscreva o arquivo usado por outro.
No caso de um pacote .deb
, o comando para forçar a instalação seria:
# dpkg -i --force-all pacote.deb
No caso de um pacote do .rpm
, o comando seria:
# rpm -iv --replacefiles pacote.rpm
ou:
# rpm -iv --force pacote.rpm
No Slackware não existe a necessidade de forçar a instalação de pacotes, pois o gerenciador não checa dependências ou arquivos duplicados, deixando que você faça o que bem entender. Isto é ao mesmo tempo uma vantagem (você pode fazer o que quiser) e uma grande desvantagens (você pode destruir o sistema se não souber o que está fazendo).
Existem ainda algumas limitações gerais com pacotes pré-compilados, que você deve levar em consideração:
Em primeiro lugar, o pacote gerado foi compilado para a sua máquina e para a distribuição atualmente em uso. Não existe garantia que o mesmo pacote vai funcionar para distribuições diferentes, mesmo que elas utilizem o mesmo padrão de pacotes.
No caso de pacotes contendo drivers, como o driver para modems 537EP que usei no exemplo, é gerado um módulo pré-compilado, que vai funcionar apenas em distribuições que utilizem a mesma versão do Kernel. Ou seja, basicamente apenas na mesma versão da mesma distribuição que você está usando. Não adianta compilar um pacote no Mandrake 10.2 e esperar que ele funcione no Slackware 11 por exemplo.
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