apt-get resuelve la mayoría de instalaciones en Ubuntu, pero a veces necesitamos una versión
más reciente de un programa de la que hay en los repositorios, o un software que directamente
no está empaquetado. En esos casos la alternativa es compilar desde el código fuente.
El proceso estándar en GNU/Linux es el trío configure, make, make install. Primero
instalamos las herramientas de compilación:
sudo apt-get install build-essential
Descargamos el código fuente (normalmente un tarball) y lo descomprimimos:
wget https://example.com/programa-1.0.tar.gz
tar -xzvf programa-1.0.tar.gz
cd programa-1.0/
El script configure comprueba las dependencias del sistema y prepara el proceso de
compilación. Si falta alguna biblioteca, lo indica con un error:
./configure
Si todo va bien, compilamos con make (puede tardar varios minutos dependiendo del
programa):
make
Y finalmente instalamos (requiere permisos de administrador si el destino es /usr/local/):
sudo make install
Por defecto, make install copia los archivos a /usr/local/ (binarios en
/usr/local/bin/, librerías en /usr/local/lib/), lo que los mantiene separados de los
paquetes del sistema.
Para instalar en un directorio distinto (por ejemplo, para tener varias versiones
conviviendo o para no necesitar sudo) se pasa --prefix al script configure:
./configure --prefix=/opt/programa-1.0
make
make install
Los binarios quedan en /opt/programa-1.0/bin/. Para usarlos hay que añadir ese directorio
al PATH (para que sea permanente hay que añadirlo al ~/.bashrc):
export PATH=/opt/programa-1.0/bin:$PATH
Para desinstalar, si el directorio de compilación sigue disponible y el proyecto lo implementa:
sudo make uninstall
Instalar desde fuente tiene un coste: hay que gestionar manualmente las actualizaciones y
el seguimiento de qué está instalado. Para software de terceros que usemos en producción,
vale la pena buscar un PPA o un paquete .deb antes de optar por compilar.