Instalação de programas a partir do código fonte

A instalação de pacotes via Internet, com apt-get ou localmente, com dpkg é bastante conveniente. Contudo em algumas ocasiões, exemplificadas a seguir, faz-se necessário instalar um ou mais softwares de forma “manual”, diretamente a partir de seu código fonte:

Os passos para instalação de um software via código fonte devem vir descritos em um arquivo texto de nome README ou INSTALL. Contudo a sequência de comandos necessários à instalação normalmente será semelhante a:

root@debian:~# tar -xf nome_do_pacote.tar.gz
root@debian:~# cd nome_do_pacote
root@debian:~/nome_do_pacote# ./configure   <-- Verifica pré-requisitos, prepara para a compilação
root@debian:~/nome_do_pacote# make          <-- Compila o programa
root@debian:~/nome_do_pacote# make install  <-- Instala o programa

O comando configure é um script que irá realizar uma série de checagens, para se certificar que a máquina possui todos os pré-requisitos necessários para a compilação e instalação do software. Caso algum deles esteja faltando, será impressa uma mensagem de erro, informando o nome do pacote não encontrado. O caso mais comum é a ausência de uma ou mais bibliotecas necessárias para a compilação do programa, como mostrado no exemplo a seguir:

root@debian:/tmp/rtorrent-0.8.8# ./configure 
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
.
.
.
checking for libcurl... yes
checking for libtorrent... no
configure: error: Package requirements (libtorrent >= 0.12.8) were not met:

No package 'libtorrent' found

O script interrompe sua execução devido a ausência de um pacote de nome libtorrent. Podemos então utilizar o aptitude (ou apt-get) para buscar pacotes com este nome. Devemos também verificar a existência de um outro pacote, com nome terminando em dev, neste caso libtorrent-dev, pois sua instalação será quase sempre necessária.

root@debian:/tmp/rtorrent-0.8.8# aptitude search libtorrent
p   libtorrent-dev  - Biblioteca BitTorrent desenvolvida em C++ por Rakshasa (arquivos de desenvolvimento)
...
...
p   libtorrent11    - a C++ BitTorrent library by Rakshasa
...
...
root@debian:/tmp/rtorrent-0.8.8# aptitude install libtorrent11 libtorrent-dev

Após instalarmos estes dois pacotes podemos executar o script configure novamente. Desta vez ele irá concluir sua execução sem nenhum erro. Também serão gerados um ou mais arquivos, de nome Makefile. Neles encontramos todas as instruções necessárias para a compilação de cada arquivo em C ou C++ do programa. As instruções contidas nos Makefile são lidas pelo comando make que irá, juntamente com o gcc ou g++, executar todos os comandos necessários para compilar cada arquivo fonte que constitui o programa. Por fim, podemos executar make install, para instalar o programa já compilado na máquina.