Algunas veces, debe instalar algunos programas compilando manualmente desde la fuente. Porque es posible que no estén disponibles en los repositorios oficiales o de terceros, por lo que no puede instalarlos con los administradores de paquetes normales. Como ya sabrá, cuando instala programas desde la fuente, los archivos del paquete se copiarán en varias ubicaciones, como /usr/local/bin
, /usr/local/etc/
, en el sistema de archivos. Si el programa instalado desde la fuente no tiene un desinstalador incorporado, será una tarea tediosa eliminar los paquetes cuando ya no los necesite. Es posible que deba pasar un par de minutos (o varios) para encontrar esos archivos de paquete y eliminarlos manualmente. Esto es lo que he estado haciendo hasta que encontré una utilidad llamada "GNU Stow" . Afortunadamente, Stow tiene una manera fácil de administrar fácilmente los programas instalados desde la fuente.
Para citar el sitio web oficial,
En pocas palabras, Stow lo ayuda a mantener los archivos del paquete organizados de una manera fácil de administrar. En este método, los archivos no se copiarán en varias ubicaciones. En su lugar, todos los archivos se guardan en una carpeta específica, normalmente bajo el mismo nombre del programa, y Stow crea enlaces simbólicos a todos los archivos de los programas en los lugares apropiados. Por ejemplo, /usr/local/bin
podría contener enlaces simbólicos a archivos dentro de /usr/local/stow/vim/bin
, /usr/local/stow/python/bin
etc., y también recursivamente para cualquier otro subdirectorio como .../share
, .../man
, y así. En este tutorial, le mostraré cómo administrar fácilmente los programas instalados desde la fuente usando Stow con un ejemplo práctico. Sigue leyendo.
Instalar GNU Stow en Linux
GNU Stow está disponible en los repositorios predeterminados de los sistemas operativos Linux populares.
En Arch Linux y sus variantes, ejecute el siguiente comando para instalar Stow.
$ sudo pacman -S stow
En Debian , Ubuntu , Linux Mint , SO Pop :
$ sudo apt install stow
En Fedora :
$ sudo dnf install stow
En RHEL/CentOS , AlmaLinux y Rocky Linux :
$ sudo dnf install epel-release
$ sudo dnf install stow
Eliminar programas instalados desde la fuente usando Stow en Linux
Como ya mencioné anteriormente, todos los archivos de programa de un paquete se guardarán en una carpeta raíz ubicada en /usr/local/stow/
. En este directorio principal o raíz, cada paquete se guardará en su propio subdirectorio privado. Por ejemplo, si instalamos Vim editor desde la fuente, todos los archivos de programa y directorios relacionados con Vim se guardarán en /usr/local/stow/vim
carpeta. Si instala python desde la fuente, todos los archivos relacionados con python se mantendrán en /usr/local/stow/python
y así sucesivamente.
Déjame instalar un programa, por ejemplo hola , desde la fuente.
Primero descargue el tarball del programa 'hola'.
$ wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
Extrae el tarball descargado usando el comando:
$ tar -zxvf hello-2.10.tar.gz
El comando anterior creará un directorio llamado 'hello-2.10' en el directorio de trabajo actual y extraerá todo el contenido en él.
Cambie al directorio extraído:
$ cd hello-2.10/
Ejecute el siguiente comando con la opción --prefix.
$ ./configure --prefix=/usr/local/stow/hello
El comando anterior guardará los archivos de compilación en la ubicación especificada, es decir, /usr/local/stow/hello
en nuestro caso.
Finalmente, compila e instala el programa hello usando los siguientes comandos:
$ make
$ sudo make install
Eso es todo. El programa hello se ha instalado en /usr/local/stow/hello/
localización. Puede verificarlo con el comando 'ls' como se muestra a continuación.
$ ls /usr/local/stow/hello/ bin share
Finalmente, vaya a /usr/local/stow/
directorio y ejecute el siguiente comando para generar los enlaces simbólicos necesarios.
$ cd /usr/local/stow/
$ sudo stow hello
¡Todo listo!
Lo que acaba de suceder es que todos los archivos y directorios contenidos en el paquete hello se vincularon al directorio /usr/local/
. En otras palabras, /usr/local/stow/hello/bin
ha sido vinculado a /usr/local/bin
y /usr/local/stow/hello/share
ha sido vinculado a /usr/local/share
y /usr/local/stow/hello/share/man
ha sido vinculado a /usr/local/share/man
y así sucesivamente.
Puede verificarlos usando 'ls'
comando:
$ ls /usr/local/bin/ hello
Verifiquemos si el programa hello está funcionando o no usando el comando:
$ hello Hello, world!
¡¡Sí, está funcionando!!
Del mismo modo, puede instalar programas como se describe anteriormente en su propio subdirectorio.
Aquí está el contenido del directorio raíz de Stow:
$ tree /usr/local/stow/

¿Ver? El programa hello está instalado en "/usr/local/stow/hello/"
localización. Del mismo modo, todos los paquetes se mantendrán en su propio directorio.
Aquí viene la parte principal. Quitemos el programa hola. Para hacerlo, vaya a /usr/local/stow/
directorio:
$ cd /usr/local/stow/
..y ejecute el siguiente comando:
$ sudo stow --delete hello

El programa hola acaba de ser eliminado. Puede verificar si realmente se eliminó o no con el comando:
$ hello -bash: /usr/local/bin/hello: No such file or directory

¿Ver? ¡Se eliminó el programa Hello!
Tenga en cuenta que Stow solo ha eliminado los enlaces simbólicos. Todos los archivos de programa y directorios relacionados con el programa hello todavía están disponibles en /usr/local/stow/hello
carpeta. Por lo tanto, puede volver a instalar el programa hello sin tener que descargar el archivo fuente real.
Si ya no desea el programa hola, simplemente elimine su carpeta.
$ sudo rm -fr /usr/local/stow/hello/
Para conocer más detalles sobre Stow, consulte las páginas del manual.
$ man stow
Conclusión
GNU Stow te ayuda a desinstalar los programas tan fácilmente como los instalas. Si se pregunta cómo administrar de manera efectiva una gran cantidad de programas instalados desde la fuente, GNU Stow es uno de esos programas para hacer esta tarea mucho más fácil. Pruébalo, no te decepcionará.