Instale cada programa en un árbol de directorios dedicado y use Stow o XStow para que todos los programas aparezcan en una jerarquía común. Stow crea enlaces simbólicos del directorio específico del programa a un árbol común.
Con más detalle, elija un directorio de nivel superior, por ejemplo /usr/local/stow
. Instale cada programa debajo /usr/local/stow/PROGRAM_NAME
. Por ejemplo, organice la instalación de sus ejecutables /usr/local/stow/PROGRAM_NAME/bin
, sus páginas de manual, /usr/local/stow/man/man1
etc. Si el programa usa autoconf, ejecute ./configure --prefix /usr/local/stow/PROGRAM_NAME
. Después de que hayas corrido make install
, corre stow
:
./configure --prefix /usr/local/stow/PROGRAM_NAME
make
sudo make install
cd /usr/local/stow
sudo stow PROGRAM_NAME
Y ahora tendrás enlaces simbólicos como estos:
/usr/local/bin/foo -> ../stow/PROGRAM_NAME/bin/foo
/usr/local/man/man1/foo.1 -> ../../stow/PROGRAM_NAME/man/man1/foo.1
/usr/local/lib/foo -> ../stow/PROGRAM_NAME/lib/foo
Puede hacer un seguimiento fácil de los programas que ha instalado enumerando el contenido del stow
directorio, y siempre sabe a qué programa pertenece un archivo porque es un enlace simbólico a una ubicación en el directorio de ese programa. Desinstale un programa ejecutando y stow -D PROGRAM_NAME
luego eliminando el directorio del programa. Puede hacer que un programa no esté disponible temporalmente ejecutando stow -D PROGRAM_NAME
(ejecute stow PROGRAM_NAME
para que esté disponible nuevamente).
Si desea poder cambiar rápidamente entre diferentes versiones del mismo programa, úselo /usr/local/stow/PROGRAM_NAME-VERSION
como el directorio del programa. Para actualizar de la versión 3 a la versión 4, instale la versión 4, luego ejecute stow -D PROGRAM_NAME-3; stow PROGRAM_NAME-4
.
Las versiones anteriores de Stow no van mucho más allá de lo básico que describí en esta respuesta. Las versiones más recientes, así como XStow (que no se ha mantenido últimamente) tienen características más avanzadas, como la capacidad de ignorar ciertos archivos, hacer frente mejor a los enlaces simbólicos existentes fuera del directorio de almacenamiento (como man -> share/man
), manejar algunos conflictos automáticamente (cuando dos los programas proporcionan el mismo archivo), etc.
Si no tiene o no desea utilizar el acceso raíz, puede elegir un directorio en su directorio de inicio, por ejemplo ~/software/stow
. En este caso, agregue ~/software/bin
a su PATH
. Si man
no encuentra automáticamente páginas de manual, agréguelas ~/software/man
a su MANPATH
. Agregue ~/software/info
a su INFOPATH
, ~/software/lib/python
a su PYTHONPATH
, etc., según corresponda.