Gestione dei pacchetti
La gestione dei pacchetti è una delle caratteristiche più dibattute e più richieste in una distribuzione Linux. Un gestore di pacchetti permette di tracciare l'installazione dei file, rendendo semplice la rimozione e l'aggiornamento dei pacchetti, perchè oltre a gestire i file binari e le librerie si occuperà anche dei file di configurazione.
/usr/pkg/foo-1.1
e viene creato un link simbolico da /usr/pkg/foo
a /usr/pkg/foo-1.1
. Quando si installa una nuova versione foo-1.2, questa viene installata in /usr/pkg/foo-1.2
ed il precedente link simbolico è sostituito da un link simbolico alla nuova versione.
PATH, LD_LIBRARY_PATH, MANPATH, INFOPATH, CPPFLAGS
devono essere ampliate per includere /usr/pkg/foo
. Quando i pacchetti diventano numerosi, però, questa strategia diventa ingestibile./usr
. Questo evita la necessità di ampliare le variabili d'ambiente. Anche se i link simbolici possono essere creati dall'utente, esistono molti gestori di pacchetti che usano questo approccio e ne automatizzano la creazione. Alcuni tra i più popolari sono Stow, Epkg, Graft e Depot.
/usr
mentre in realtà è installato nella gerarchia /usr/pkg
. Installare in questo modo di solito non è un compito banale. Per esempio, supponiamo che si stia installando un pacchetto libfoo-1.1. Le istruzioni seguenti potrebbero non installare il pacchetto nel modo giusto:
./configure --prefix=/usr/pkg/libfoo/1.1 make make installL'installazione funzionerà, ma i pacchetti dipendenti potrebbero non avere il link a libfoo come ci si aspetterebbe. Se si compila un pacchetto che ha un link a libfoo, si dovrebbe controllare che il link sia a
/usr/pkg/libfoo/1.1/lib/libfoo.so.1
invece che a /usr/lib/libfoo.so.1
. L'approccio corretto è quello di usare l'opzione DESTDIR
per manipolare l'installazione del pacchetto. Questo approccio funziona così:
./configure --prefix=/usr make make DESTDIR=/usr/pkg/libfoo/1.1 installMolti pacchetti supportano questo approccio, ma alcuni no. Per questi ultimi pacchetti potrebbe essere necessario effettuare l'installazione manuale, oppure ci si potrebbe accorgere che è più facile installarli in /opt.
LD_PRELOAD
per puntare ad una libreria da precaricare prima dell'installazione. Durante l'installazione, questa libreria tiene traccia dei pacchetti che vengono installati legandosi ai vari eseguibili come cp, install, mv
e tenere traccia delle chiamate di sistema che modificano il filesystem. Affinchè questo approccio funzioni tutti gli eseguibili devono essere collegati dinamicamente senza suid o sgid. Precaricare la libreria può causare alcuni effetti collaterali indesiderati durante l'installazione. Pertanto è consigliabile eseguire alcuni test per garantire che il gestore di pacchetti funzioni correttamente e tenga traccia di tutti i file necessari.
/etc/hosts, /etc/fstab, /etc/passwd, /etc/group, /etc/shadow, /etc/ld.so.conf, /etc/sysconfig/rc.site, /etc/sysconfig/network, /etc/sysconfig/ifconfig.eth0
.
Influire su di una persona vuol dire dargli l'anima nostra. Essa allora non pensa i suoi propri pensieri, non arde delle proprie passioni. Le sue virtù non le sono naturali. I suoi peccati, se esistono peccati, sono presi a prestito. Essa diventa l'eco della musica altrui; recita una parte che per essa non fu scritta.
Oscar Wilde