¿Qué compilación se recomienda para Linux?

Desinstalación Completa: Software Compilado y Librerías

29/05/2022

Valoración: 4.98 (10745 votos)

En el vasto universo de GNU/Linux, la flexibilidad es una de sus mayores virtudes. Si bien los gestores de paquetes como 'apt' simplifican enormemente la vida de los usuarios al automatizar la instalación y desinstalación de software, hay ocasiones en las que es necesario tomar un camino menos transitado: compilar programas directamente desde su código fuente. Esta práctica, aunque poderosa y necesaria para acceder a versiones específicas o software no empaquetado, introduce un desafío particular: la gestión de la desinstalación y, crucialmente, la limpieza de las librerías y herramientas de desarrollador que se instalaron para hacer posible esa compilación. Este artículo te guiará a través de la metodología para no solo instalar software desde las fuentes, sino, y lo que es más importante, cómo eliminarlo de forma limpia, incluyendo todas esas dependencias de desarrollo que ya no necesitas, garantizando un sistema ordenado y eficiente.

¿Cómo compilar un código en Linux?
Una vez que hayas guardado tu código en un archivo, para poder compilar el código en Linux, vas a utilizar g++, que es el compilador libre por defecto. Para este caso, utiliza la siguiente instrucción:
Índice de Contenido

¿Por Qué Compilar Software Desde el Código Fuente?

Aunque la mayoría de los usuarios de GNU/Linux dependen de los administradores de paquetes y los repositorios de software (como 'apt' en Ubuntu), existen escenarios donde la compilación desde el código fuente se vuelve indispensable. Los mantenedores de paquetes no pueden cubrir todas las versiones o proyectos existentes, lo que nos lleva a la necesidad de construir el software nosotros mismos. Las razones principales incluyen:

  • El software no está disponible en los repositorios oficiales.
  • Necesitas una versión muy específica (más nueva, más antigua o de desarrollo) que no ha sido empaquetada.
  • Quieres personalizar la compilación con opciones específicas o funcionalidades experimentales.
  • Para comprender mejor cómo funciona un programa "bajo el capó".

Para muchos usuarios no experimentados, el proceso de compilar puede parecer intimidante, pero como verás, es una secuencia lógica de pasos. Sin embargo, el verdadero reto, y a menudo pasado por alto, es cómo revertir este proceso y asegurar una desinstalación completa.

El Proceso de Instalación: Un Vistazo Rápido

Para entender cómo desinstalar, primero debemos entender cómo se instala. Tomemos como ejemplo la instalación del IDE Geany desde las fuentes. Los pasos generales son:

  1. Descargar el Código Fuente: Obtener el archivo comprimido (.tar.gz, .zip, etc.) desde la web oficial del proyecto o plataformas como GitHub. Por ejemplo, geany-1.36.tar.gz.
  2. Extraer los Archivos: Descomprimir el archivo en un directorio de trabajo. Es crucial elegir una ubicación que te permita gestionar el proyecto fácilmente, como /home/$USER/geany-1.36/.
  3. Preparar la Configuración para la Compilación (./configure): Este es un paso vital. El script configure examina tu sistema para asegurarse de que tienes todas las herramientas y librerías necesarias para construir el programa. También crea un archivo Makefile con las instrucciones de compilación. Aquí es donde se especifica el directorio de instalación deseado, idealmente usando la opción --prefix=/opt/tu-programa/. Esto es fundamental para una futura limpieza fácil. Si no lo especificas, por defecto se instalará en /usr/local/, mezclándose con otros archivos del sistema y dificultando su eliminación. Durante esta fase, es común que se soliciten librerías de desarrollo (como libgtk2.0-dev, g++, intltool) que deberás instalar con tu gestor de paquetes.
  4. Compilación (make): Una vez configurado, el comando make lee el Makefile y convierte el código fuente en un programa ejecutable. Este proceso puede tardar un tiempo.
  5. Instalación (sudo make install): Finalmente, este comando mueve los archivos compilados a la ubicación especificada por --prefix. En nuestro ejemplo, a /opt/geany-1.36/. También se pueden configurar accesos directos o modificar la variable de entorno PATH para ejecutar el programa desde cualquier lugar.

El Verdadero Desafío: Desinstalar Software Compilado

Aquí es donde la cosa se pone interesante. A diferencia del software instalado a través de un gestor de paquetes (como apt), que mantiene un registro de todos los archivos instalados y sus dependencias, un programa compilado e instalado manualmente no tiene ese seguimiento automático. Esto significa que si no se toman las precauciones adecuadas durante la instalación, la desinstalación puede convertirse en una tarea de detective, dejando residuos que ocupan espacio y potencialmente causan conflictos.

Metodología para una Desinstalación Completa y Limpia

La clave para una desinstalación exitosa de software compilado manualmente reside en la previsión y el conocimiento de dónde se instalaron los archivos. Si seguiste la recomendación de instalar en un directorio específico (ej. /opt/geany-1.36/), el proceso es mucho más sencillo.

1. Eliminación del Directorio de Instalación

Este es el paso más directo y eficaz si usaste la opción --prefix durante la configuración. Si instalaste tu programa, por ejemplo, en /opt/geany-1.36/, simplemente eliminar esa carpeta borrará la mayoría de los archivos del programa. Es una de las ventajas de instalar en un directorio independiente.

sudo rm -rf /opt/geany-1.36/

El comando rm -rf significa "eliminar recursivamente" (-r) y "forzar" (-f), lo que elimina la carpeta y todo su contenido sin pedir confirmación. ¡Úsalo con cuidado!

2. Revertir Modificaciones en el Sistema (Enlaces Simbólicos y PATH)

Si durante la instalación creaste enlaces simbólicos para que el programa fuera accesible desde cualquier lugar o modificaste la variable de entorno PATH, es hora de deshacer esos cambios.

  • Eliminar Enlaces Simbólicos: Si creaste un enlace simbólico como /usr/local/bin/geany apuntando a tu ejecutable, debes eliminarlo.
  • sudo rm /usr/local/bin/geany
  • Limpiar la Variable PATH: Si editaste el archivo ~/.bashrc (o similar, para otros shells) para añadir la ruta de tu programa al PATH, debes eliminar o comentar esas líneas. Abre el archivo con un editor de texto (como nano):
  • nano ~/.bashrc

    Busca las líneas que añadiste, como:

    PATH=/opt/geany-1.36/bin:${PATH} export PATH

    Y bórralas o pon un # al principio para comentarlas:

    #PATH=/opt/geany-1.36/bin:${PATH} #export PATH

    Guarda los cambios (Ctrl+X, Y, Enter en nano) y luego actualiza tu sesión de shell (o reinicia el terminal) con source ~/.bashrc para que los cambios surtan efecto.

3. Eliminar Librerías y Software de Desarrollador

Este es el punto central de tu consulta. Durante la fase de ./configure, es casi seguro que instalaste una serie de paquetes de desarrollo (compiladores, cabeceras de librerías, herramientas de construcción) que eran necesarias para que el programa se compilara. Una vez que el programa está desinstalado, estas dependencias de desarrollo ya no son necesarias y pueden ser eliminadas para liberar espacio y mantener tu sistema limpio.

Para identificar qué paquetes instalaste, puedes revisar tu historial de comandos o las notas que tomaste durante la instalación. En nuestro ejemplo de Geany, instalamos g++, libgtk2.0-dev e intltool. Para eliminarlos de forma completa (incluyendo sus archivos de configuración), usa apt purge --remove:

sudo apt purge --remove libgtk2.0-dev g++ intltool

Explicación de los comandos apt para limpieza:

  • sudo apt purge --remove [paquete]: Este comando no solo desinstala el paquete, sino que también elimina sus archivos de configuración, proporcionando una limpieza más profunda que un simple apt remove. El argumento --remove es redundante con purge pero a veces se usa para enfatizar la intención de eliminación.
  • sudo apt autoremove: Después de desinstalar paquetes específicos, es posible que queden dependencias que ya no son requeridas por ningún otro paquete instalado. autoremove identifica y elimina automáticamente estos paquetes "huérfanos". Es una herramienta excelente para mantener tu sistema libre de basura.
  • sudo apt autoremove
  • sudo apt autoclean: Este comando limpia el caché de paquetes de APT. Elimina los archivos .deb descargados que ya no se pueden descargar y que son inútiles. Esto ayuda a liberar espacio en disco.
  • sudo apt autoclean

Es fundamental entender que, si bien estos comandos son poderosos para la limpieza, debes ser consciente de qué paquetes estás eliminando. Asegúrate de que las librerías de desarrollo que vas a purgar no sean dependencias de otros programas que sí utilizas y que fueron instalados a través de apt. En general, las librerías con sufijos como -dev o -devel son seguras de eliminar si ya no necesitas compilar software que dependa de ellas.

4. Eliminación de los Archivos Fuente

Finalmente, una vez que el programa está desinstalado y las librerías de desarrollo limpias, puedes eliminar los archivos fuente que descargaste y descomprimiste. Estos archivos (el .tar.gz original y el directorio descomprimido) ocupan espacio innecesario.

  • Eliminar el directorio de código fuente extraído:
  • sudo rm -rf /home/$USER/geany-1.36/

    Asegúrate de cambiar /home/$USER/geany-1.36/ por la ruta real donde extrajiste los archivos.

  • Eliminar el archivo comprimido descargado:
  • rm /home/$USER/Descargas/geany-1.36.tar.gz

    Adapta la ruta y el nombre del archivo según corresponda (podría ser un .zip, .tar.bz2, etc.).

Tabla Comparativa: Gestión de Software

Para ilustrar mejor las diferencias, veamos una tabla comparativa entre la gestión de software mediante gestores de paquetes y la compilación desde la fuente, especialmente en lo que respecta a la desinstalación.

CaracterísticaGestor de Paquetes (ej. apt)Compilación desde Fuente
InstalaciónAutomática, resuelve dependencias, descarga binarios precompilados.Manual, requiere descarga de fuentes, compilación, instalación de dependencias de desarrollo.
DependenciasGestionadas automáticamente, instala solo las necesarias para el uso.Requiere instalación manual de dependencias de desarrollo para la compilación.
ActualizacionesCentralizadas, a través del gestor de paquetes.Manuales, requiere recompilar y reinstalar la nueva versión.
DesinstalaciónSencilla y completa (apt remove/purge), elimina todos los archivos rastreados.Más compleja, requiere eliminar directorio de instalación, enlaces, y dependencias de desarrollo manualmente.
FlexibilidadLimitada a versiones empaquetadas en repositorios.Alta, permite versiones específicas, parches, configuraciones personalizadas.
Limpieza del SistemaMuy eficiente con autoremove y autoclean.Requiere pasos manuales adicionales para librerías de desarrollo y archivos fuente.

Preguntas Frecuentes (FAQ)

¿Qué pasa si no especifico --prefix durante la configuración?
Si no usas --prefix, el programa se instalará por defecto en /usr/local/. Esto mezcla los archivos del programa con otros archivos del sistema, haciendo que su desinstalación manual sea extremadamente difícil y riesgosa, ya que tendrías que identificar y borrar cada archivo individualmente, lo cual no se recomienda.
¿Es seguro eliminar las librerías -dev?
Generalmente sí, si ya no planeas compilar software que dependa de ellas. Las librerías con sufijo -dev (o -devel en otras distribuciones) contienen archivos de cabecera y enlaces simbólicos necesarios para compilar, no para ejecutar, programas. Si el programa que compilaste ya no está en tu sistema o usas una versión empaquetada, estas librerías de desarrollo son redundantes.
¿Cómo sé qué librerías de desarrollo instalé?
La mejor forma es llevar un registro durante el proceso de compilación. Si estás siguiendo un tutorial, anota los comandos de instalación de dependencias. También puedes revisar el historial de tu terminal (history) o los logs de apt (ubicados en /var/log/apt/history.log) para ver qué paquetes instalaste recientemente.
¿Qué hago si make install no funciona o da errores?
Esto suele indicar que faltan dependencias de desarrollo o que hay un problema con la configuración. Revisa cuidadosamente la salida del comando ./configure y make. Los mensajes de error suelen indicar qué paquete o librería falta. A menudo, buscar el mensaje de error exacto en línea te dará la solución.
¿Debería siempre instalar software desde el código fuente?
No. Para la mayoría de los usuarios y la mayoría del software, el uso del gestor de paquetes es la opción preferida por su simplicidad, seguridad y facilidad de mantenimiento (actualizaciones y desinstalación). La compilación desde el código fuente debe reservarse para cuando sea estrictamente necesario o para proyectos de desarrollo.

La capacidad de compilar software desde el código fuente es una de las características más potentes y liberadoras de GNU/Linux, otorgando un control sin precedentes sobre tu sistema. Sin embargo, con gran poder viene una gran responsabilidad: la de mantener tu sistema limpio y ordenado. Dominar la desinstalación de este tipo de software, así como la eliminación de las librerías y herramientas de desarrollador asociadas, es tan crucial como el proceso de instalación en sí. Al seguir esta guía, te asegurarás de que tu entorno de desarrollo y tu sistema operativo permanezcan eficientes, libres de residuos y listos para tu próxima aventura en el mundo del software libre. La limpieza es la clave para un sistema robusto y duradero.

Si quieres conocer otros artículos parecidos a Desinstalación Completa: Software Compilado y Librerías puedes visitar la categoría Librerías.

Subir