Instalar software desde el código fuente

última modificación:

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.