En este momento estás viendo Obtener, compilar e instalar código fuente en Debian

Obtener, compilar e instalar código fuente en Debian

Obtener, compilar e instalar código fuente en Debian

Aunque la mayoría de los usuarios utilizamos para instalar software los paquetes «.deb» en Debian y derivados, o «.rpm» en Red Hat Enterprise Linux y derivados, como CentOS y Fedora, entre otros, siempre que se trate de Software Libre, podremos obtener, compilar e instalar el código fuente del programa.

En todos los blogs con temática Linux, como este, se menciona muy frecuentemente el código fuente a la hora de instalar software. Este código debe estar disponible, cuando hablamos de software libre y «open source», para poder usarlo, estudiarlo, distribuirlo y modificarlo. Estas son las cuatro garantías del Software Libre.

En este artículo vemos como obtenerlo, compilarlo e instalarlo, tanto desde los repositorios oficiales, como el código fuente obtenido desde la página oficial del software en cuestión.

Sumario

  • Consideraciones previas
  • Obtener el código fuente desde «debian.org»
  • Obtener el código fuente con el gestor de paquetes apt
  • Obtener el código fuente desde la pagina del desarrollador
  • Compilar e instalar

Consideraciones previas

Cuando un desarrollador de software, escribe el código de un programa, lo hace en texto plano. No son más que lineas de instrucciones con los pasos a seguir por el ordenador para ejecutar el programa en cuestión. Este texto esta escrito en algún lenguaje de programación que resulta legible para los humanos.

Como los ordenadores solo leen ceros y unos, es necesario «traducir» el código fuente a un lenguaje que el ordenador entienda. Esto es lo que se llama código binario, código objeto o lenguaje máquina, que puede ser leído y ejecutado por el equipo informático.

Para realizar esta conversión se utilizan herramientas específicas como son los compiladores, ensambladores e interpretes, entre otros. Dependiendo del lenguaje de programación utilizado será necesario compilar el código antes de utilizarlo, como ocurre con C, C++, Rust, Go, etc… Otros utilizan el interprete de comandos, o «shell», para la ejecución sin necesidad de compilación, como en Shellscripting, Python, PHP, Ruby o Javascript.

El caso de Java es algo diferente, porque el código fuente es compilado a un lenguaje intermedio llamado «bytecode», que después es interpretado por la Máquina Virtual Java «JRE» (Java Runtime Environment), pero además necesitarás «JDK» (Java Development Kit) que incluye el compilador.

También se llama código fuente a los ficheros que construyen una página web, ya sean en html, css, javascript, etc…

Hechas estas aclaraciones, vamos con el objeto de esta publicación, obtener, compilar e instalar el código fuente.

Obtener el código fuente desde debian.org

Las distribuciones GNU/Linux, tienen unos repositorios de paquetes de software donde encontramos casi todos los programas que necesitemos. Estos los podremos instalar con «apt install», pero si quieres el código fuente para compilarlo, también lo tienes disponible. En el caso de Debian puedes descargarlo desde su página oficial.

Lógicamente, el paquete a instalar tiene que estar en los repositorios, aunque también podremos instalar software de otras procedencias, como luego veremos.

Una vez estamos en la página de Debian mencionada, solo tenemos que buscar el paquete que queramos y descargarlo. Vamos a instalar un servidor NFS con su código fuente.

Página de descarga de paquetes de Debian
Página de descarga de paquetes de Debian

Aquí buscamos el paquete que queramos instalar y, para descargar el código fuente, nos fijamos en la parte derecha de la pantalla en «Download Source Packages» y clicamos en «nfs-utils_2.6.2.orig.tar.xz». Otra opción es marcar «Nombres de paquetes fuente» en las opciones de búsqueda.

Página de descarga del servidor NFS
Página de descarga del servidor NFS

Si haces «scroll», verás que te indica las dependencias necesarias, paquetes recomendados, sugeridos y mejoras.

Una vez descargado el código lo podremos editar, consultar, modificar y compilar sin ninguna restricción. Ten en cuenta que si modificas algo, y no sabes muy bien lo que haces, es más que posible que luego no funcione. De todas formas, rompiendo cosas es como más se aprende y siempre tienes la posibilidad de utilizar una máquina virtual y no afectar a tu sistema base.

Código fuente de "nfs_utils"
Código fuente de «nfs_utils»

Para extraerlo nos hará falta la herramienta «xz». Normalmente ya la tendrás instalada, pero si no es el caso, la instalas con

sudo apt-get install xz-utils 

Para compilarlo e instalarlo, primero desempaquetamos el código fuente. En las opciones del comando la «J» es mayúscula.

tar -Jxvf nfs-utils_2.6.2.orig.tar.xz
Desempaquetado del paquete "nfs-utils"
Desempaquetado del paquete «nfs-utils»

Nos crea un directorio llamado nfs-utils-2.6.2. Nos desplazamos al nuevo directorio con «cd nfs-utils-2.6.2» y ejecutamos los siguientes comandos,

./configure

Este script revisa el hardware y software para la compilación. Si te dice que te falta algún paquete, lo instalas con «sudo apt install Nombre_paquete». Vuelves a ejecutar «./configure» y cuando termine ejecutas

make

Este comando crea los binarios. Para instalar los binarios y la documentación, ejecuta

make install

Y con esto tendremos el software compilado e instalado. Más adelante veremos como hacerlo con software descargado de la página oficial de un desarrollador.

En el fichero «README», encontrarás toda la información que necesites.

Obtener el código fuente con el gestor de paquetes apt

Con el gestor de paquetes «apt», también tenemos la posibilidad de descargar el código fuente de forma muy sencilla. Para hacerlo primero nos tenemos que asegurar de tener el repositorio, que contiene el paquete, habilitado en nuestro «sources.list».

Para comprobarlo editamos el fichero «/etc/apt/sources.list».

sudo nano /etc/apt/sources.list
Contenido del fichero sources.list
Contenido del fichero sources.list

Aquí veremos las fuentes de los repositorios.

Tienes que tener descomentado (sin el simbolo #) el repositorio que contiene «deb-src», que es el que permite la descarga del código fuente. Si no lo tienes lo tendrás que agregar.

Y ya podemos iniciar el proceso. Ejecutamos el comando con la siguiente sintaxis: «apt source nombre_del paquete». En mi caso

apt source nfs-kernel-server

Y obtenemos la siguiente salida

Salida del comando "apt source nfs-kernel-server"
Salida del comando «apt source nfs-kernel-server»

Nos dice que descarga «nfs-utils» en vez de «nfs-kernel-server» ya que este se mantiene en el sistema de control de versiones para posteriores actualizaciones. Extrae y desempaqueta el software. Solo te queda ejecutar los comandos anteriormente vistos.

Obtener el código fuente desde la pagina del desarrollador

Puede que alguna vez nos encontremos con que queremos instalar un software que no está disponible en los repositorios de nuestra distribución. Aquí hay dos opciones. Que podamos descargar el código fuente desde la página oficial, o que lo tengamos que hacer desde «Github».

Desde la página oficial

Vamos a instalar, en este caso un programa de vectores, llamado Inkscape muy utilizado por ser multiplataforma. Desde la pagina oficial , tenemos disponible la descarga para Linux, Windows, macOS y el código fuente «Source Archive» en un «xz tarball».

Pagina de descargas de Inkscape
Pagina de descargas de Inkscape

Pinchando en el botón «Source Archive» iniciará la descarga.

Descarga de Inkscape
Descarga de Inkscape

Nos ofrece un «sha256» para comprobar la integridad de la descarga. Para ello ejecuta el comando con la sintaxis «sha256sum /ruta-al-fichero descargado». En mi caso

sha256sum ~/Descargas/Inkscape-1.2.2.tar.xz

Si coincide el «hash» que te sale, con el que te ofrece la página de descarga, todo está bien y ya lo podremos instalar.

Comprobamos la suma de verificación
Comprobamos la suma de verificación

Desde Github

Si el Código está en «Github», el procedimiento difiere un poco.

Primero tendrás que instalar las dependencias que requiere el software que quieras instalar. El segundo paso será clonar el repositorio de «Git» con el comando «git clone htpps://gitlab.com/ruta_al_paquete». Te desplazas con «cd» al directorio de descarga y ejecutas «make install». Si falta alguna dependencia te la pedirá, la instalas y vuelves a ejecutar «make install».

En un artículo anterior vimos, «Nala, un gestor de paquetes», tienes un ejemplo de instalación del código fuente desde «git».

Compilar e instalar

Para la mayoría de usuarios, el tener que compilar el código, parece una tarea complicada, pero no lo es tanto. Solo son un par de comandos, pero según el software que vayas a instalar, puedes tener problemas con las dependencias.

Cuando nos encontramos con que el software no está en los repositorios, queremos una versión específica o queremos probar un software en desarrollo que su autor, todavía no ofrece empaquetado en un «.deb», no tendremos más remedio que hacerlo.

Vamos a ello. Nos desplazamos con «cd» al directorio de descarga. Te recomiendo crear un directorio y mover el fichero descargado a él. Lo puedes hacer también con el entorno gráfico y, con el botón secundario del ratón sobre el fichero, extraer. Pero vamos con la terminal. Ejecuta los siguientes comandos uno por uno.

cd /Descargas

mkdir ~/Inkscape

mv ~/Descargas/Inkscape-1.2.2.tar.xz ~/Inkscape/Inkscape-1.2.2.tar.xz

cd ~/Inkscape
Creamos un directorio donde hacer la instalación
Creamos un directorio donde hacer la instalación

Para extraerlo nos hará falta la herramienta «xz», que ya hemos utilizado antes. Normalmente ya la tendrás instalada, pero si no es el caso, la instalas con

sudo apt-get install xz-utils 

Y lo extraemos. En las opciones del comando pon la «J» mayúscula o no funcionará.

tar -Jxvf Inkscape-1.2.2.tar.xz

Y ya tenemos los ficheros descomprimidos en el directorio «~/Inkscape».

Extracción del código fuente de Inkscape
Extracción del código fuente de Inkscape

Nos crea un nuevo directorio «inkscape-1.2.2_2022-12-01_b0a8486541», donde tenemos el código

Código fuente de Inkscape
Código fuente de Inkscape

Solemos hablar de «compilar las fuentes», pero la compilación es solo una de las fases necesarias para tener un software funcional a partir de su fuente. Un sistema de compilación es un conjunto de herramientas «configure» y «make», que se utilizan para construir completamente el software con solo ejecutar esos comandos.

Con «configure», verificamos el hardware para el que vamos a compilar el código y garantizamos que se podrá construir el fichero «Makefile», que contiene las instrucciones necesarias para la instalación.

La herramienta «make» es una herramienta POSIX, disponible en todos los sistemas UNIX, que leerá el fichero «Makefile» y realizará todas las operaciones necesarias para construir el programa e instalarlo.

En muchos, si no todos los casos, encontrarás un fichero llamado «README», en el que se nos detalla el proceso que debemos seguir. En este caso nos dice que leamos, para instalarlo, el fichero «INSTALL.md».

Necesitaremos tener instaladas algunas dependencias.

sudo apt-get install build-essential cmake

Revisando la documentación, recomienda descargar más dependencias que nos harán falta, con el siguiente comando

wget -v https://gitlab.com/inkscape/inkscape-ci-docker/-/raw/master/install_dependencies.sh -O install_dependencies.sh

E instalar las dependencias recomendadas con

bash install_dependencies.sh --recommended 

Instala un buen montón de paquetes. Tarda un poco en instalarlos. También tardará bastante al ejecutar el comando «make». Siguiendo las instrucciones para la instalación que encontramos en el fichero «INSTALL.md», ejecutamos uno a uno,

mkdir build
cd build
cmake ..
make
sudo make install

Vemos las salidas de los comandos anteriores

Salida del comando «cmake»
Salida del comando "make"
Salida del comando «make»
Construcción del software terminada
Construcción del software terminada
Instalación de Inkscape con el paquete construido
Instalación de Inkscape con el paquete construido

Y ya tenemos el software instalado y en funcionamiento. Para ejecutarlo con la terminal introduce

inkscape
Software Inkscape ejecutado
Software Inkscape ejecutado

También encontraras un lanzador en el «dash».

Dash de aplicaciones en Debian
Dash de aplicaciones en Debian

Como ves, tiene sus complicaciones, si necesita muchas dependencias que no encontramos en la distribución. Pero siempre está acompañado por su documentación. Con un poco de paciencia, no es tan complicado.

Si lo quieres desinstalar en el fichero «cmake_uninstall.cmake», tienes las ordenes y en «install_manifest.txt» tienes la lista de todos los ficheros de Inkscape instalados en el sistema, creada tras la instalación con «sudo make install».

Ficheros instalados
Ficheros instalados

No obstante, te recomiendo instalar los paquetes desde los repositorios de la distribución, siempre que sea posible. Todo lo que hemos hecho, lo tendremos con solo ejecutar,

sudo apt install inkscape 

Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.

Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.

Y para suscribirte y recibir las novedades publicadas, tienes un enlace en pie de la página o desde aquí mismo.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.