Installa ogni programma in un albero di directory dedicato e usa Stow o XStow per far apparire tutti i programmi in una gerarchia comune. Stow crea collegamenti simbolici dalla directory specifica del programma a un albero comune.
Più in dettaglio, selezionare una directory di livello superiore, ad esempio /usr/local/stow
. Installa ciascun programma sotto /usr/local/stow/PROGRAM_NAME
. Ad esempio, organizza l'installazione dei suoi eseguibili /usr/local/stow/PROGRAM_NAME/bin
, le sue pagine man /usr/local/stow/man/man1
e così via. Se il programma utilizza autoconf, quindi esegui ./configure --prefix /usr/local/stow/PROGRAM_NAME
. Dopo aver eseguito make install
, esegui stow
:
./configure --prefix /usr/local/stow/PROGRAM_NAME
make
sudo make install
cd /usr/local/stow
sudo stow PROGRAM_NAME
E ora avrai collegamenti simbolici come questi:
/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
Puoi facilmente tenere traccia di quali programmi hai installato elencando il contenuto della stow
directory e sai sempre a quale programma appartiene un file perché è un collegamento simbolico a una posizione nella directory di quel programma. Disinstallare un programma eseguendo, stow -D PROGRAM_NAME
quindi eliminando la directory del programma. È possibile rendere temporaneamente non disponibile un programma eseguendolo stow -D PROGRAM_NAME
(eseguire stow PROGRAM_NAME
per renderlo nuovamente disponibile).
Se si desidera poter passare rapidamente da una versione all'altra dello stesso programma, utilizzare /usr/local/stow/PROGRAM_NAME-VERSION
come directory del programma. Per eseguire l'aggiornamento dalla versione 3 alla versione 4, installare la versione 4, quindi eseguire stow -D PROGRAM_NAME-3; stow PROGRAM_NAME-4
.
Le versioni precedenti di Stow non vanno molto oltre le basi che ho descritto in questa risposta. Le versioni più recenti, così come XStow (che non è stato mantenuto di recente) hanno funzionalità più avanzate, come la possibilità di ignorare determinati file man -> share/man
, gestire meglio i collegamenti simbolici esistenti al di fuori della directory stow (come ), gestire automaticamente alcuni conflitti (quando due i programmi forniscono lo stesso file), ecc.
Se non si dispone o non si desidera utilizzare l'accesso root, è possibile selezionare una directory nella directory principale, ad es ~/software/stow
. In questo caso, aggiungi ~/software/bin
al tuo PATH
. Se man
non trova automaticamente le pagine man, aggiungile ~/software/man
alle tue MANPATH
. Aggiungi ~/software/info
a tuo INFOPATH
, ~/software/lib/python
a tuo PYTHONPATH
e così via come applicabile.