Compilar softwares a partir do código fonte, é um método de instalação que possibilita obter a versão mais atual do seu aplicativo.
Outra vantagem, é poder construir automaticamente software feito sob medida para o seu sistema.
Este texto complementa o artigo Como Compilar Código Fonte de Programas no Linux.
Na maioria das vezes, é muito fácil compilar software. Mas esta abordagem traz algumas desvantagens ou riscos que convém enumerar:
- O software compilado não participa das atualizações automáticas do sistema. Se o objetivo era ter a versão mais atual, com o tempo, você pode acabar com uma versão desatualizada do seu aplicativo favorito.
Isto significa também que ele não receberá correções para novos bugs, à medida em que são descobertos. Tampouco receberá patches de segurança.
Resumindo, você terá que fazer as atualizações manualmente, se quiser. - Em alguns casos, pode ser complicado remover software instalado através deste método. Se você não sabe exatamente aonde foi gravado cada arquivo associado do aplicativo principal, pode acabar com um sistema cheio de coisas que não usa mais.
- Pode haver perda de dados, em casos (embora raros) de conflito com o restante do sistema.
No texto Como Preservar a Integridade e a Estabilidade da sua Instalação Debian, são enumeradas as várias armadilhas que podem quebrar o seu sistema. Entre elas, compilar softwares do código fonte.
Como usar o checkinstall
Para solucionar parte destes problemas, use o checkinstall.
Este utilitário pode ajudar a rastrear softwares locais e a produzir arquivos binários que podem ser manipulados pelo seu aplicativo de gestão de pacotes.
O checkinstall produz um pacote binário que pode ser gerenciado pelo sistema de gestão de pacotes — facilitando, entre outras coisas, a futura desinstalação.
Trata-se de um programa que monitora o processo de instalação feito por ‘make install’ ou por um script ‘install.sh’ e cria um pacote padrão para a sua distribuição.
Atualmente, o checkinstall suporta pacotes deb, rpm e tgz — que podem ser usados, respectivamente, pelos gestores dpkg, rpm e installpkg.
Na maioria dos casos, o checkinstall precisa ser executado com privilégios administrativos, para ser realmente útil.
Sua sintaxe segue o padrão de linha de comando GNU:
checkinstall opções comando-de-instalação
Seu funcionamento segue os seguintes passos:
# entre no diretório em que se encontra o código fonte ./configure make sudo checkinstall
Se você prefere gerar pacotes .deb, para o seu sistema Debian/Ubuntu, use a opção ‘-D’:
sudo checkinstall -D
Se preferir gerar pacotes RPM, use a opção ‘-R’; ou ‘-S’, para criar um pacote Slackware.
Use a opção ‘–install=no’ para evitar a instalação automática do pacote.
O exemplo, abaixo, cria um pacote RPM e sai, sem instalar nada:
sudo checkinstall -R --install=no
O novo pacote criado, ficará disponível no mesmo local em que você executou o comando. Basta usar o comando ls, para encontrá-lo.
Referências
https://manpages.debian.org/cgi-bin/man.cgi?sektion=8&query=checkinstall&apropos=0&manpath=sid&locale=en.
https://wiki.debian.org/CheckInstall.