Il comando yum sulle distribuzioni Fedora/Red Hat/CentOS/OEL/...
permette l'installazione automatica dei pacchetti con una gestione
completa delle dipendenze presenti.
In qualche raro caso pero' puo' essere necessario non installare
alcuni dei pacchetti richiesti...
Teoricamente non e' possibile: ecco come fare.
Ecco come scaricare un utile plugin di yum ed installare un software senza applicare le dipendenze:
Il gestore di pacchetti RPM (Red Hat Package Manager) e' stato introdotto
dalla diffusa distribuzione Linux Red Hat nel 1997.
Un pacchetto software viene presentato come un singolo file con il suffisso .rpm
che contiene il programma, i file di configurazione ed di supporto
e gli eventuali script da eseguire per l'installazione.
Con un singolo comando (eg. rpm -i myProgram.rpm) e' possibile installare un
pacchetto. Analoghe opzioni consentono di elencare i programmi installati (eg. rpm -qa),
cancellare programmi (rpm -e myProgram), ...
A differenza di un classico TARBALL un RPM contiene direttamente i binari.
L'installazione di un pacchetto risulta cosi' piu' semplice e veloce perche'
non e' necessario compilare nulla.
Una caratteristica molto importante dell'RPM e' il controllo delle dipendenze tra programmi. Se non sono presenti tutti i prerequisiti necessari il pacchetto non viene installato. Per evitare questo controllo e' presente un'opzione specifica (--nodeps) da utilizzare con cautela.
Anche se introdotto da Red Hat, il formato .rpm trova un utilizzo molto ampio nella maggioranza delle altre distribuzioni e sono presenti parecchi tool, con funzionalita' ulteriori, che si basano sugli RPM.
Uno dei piu' diffusi gestori di pacchetti basati su RPM e' YUM (Yellowdog Updater Modified). Tra le molte funzionalita' aggiuntive rispetto all'RPM a mio avviso tre sono fondamentali: l'utilizzo di repository, la risoluzione automatica delle dipendenze e gli aggiornamenti.
La directory /etc/yum.repos.d contiene l'elenco dei repository da dove scaricare in automatico i file RPM. Con il comando yum search Pacchetto il software viene ricercato da tutti i repository abilitati e viene fornito l'elenco di tutte le alternative installabili. Una distribuzione Linux tipicamente contiene gia' le definizioni dei repository necessari, cosi' tutte le installazioni ed aggiornamenti possono avvenire in automatico.
YUM risolve automaticamente tutte le dipendenze. Quando viene installato un pacchetto (con yum install Pacchetto), se questo ne richiede altri, viene effettuata una nuova ricerca e vengono scaricati tutti i pacchetti necessari. A differenza di RPM, YUM non consente l'esclusione del controllo delle dipendenze. Anche perche' tipicamente YUM risolve tutte le dipendenze in automatico ed e' pensato per manternere un sistema sempre aggiornato e coerente con i repository.
Per effettuare l'aggiornamento di tutti i pacchetti basta un comando: yum update
Installare pacchetti violando le dipendenze non e' consigliabile.
Ci sono pochi casi in cui e' opportuno (eg. utilizzo di pacchetti compilati da TARBALL,
utilizzo di repository indipendenti) ed in ogni caso va fatto con attenzione e con
cognizione di causa...
Tutto cio' premesso e' possibile sfruttare YUM per scaricare in modo automatico tutti
i pacchetti necessari per un'installazione e poi installarli selettivamente con RPM.
Il primo passo e' quello di "attivare" l'opzione downloadonly che non e' disponibile
come default su YUM ma e' presente come un pacchetto a parte (con nomi leggermente diversi
tra le distribuzioni). E' facile perche' la si cerca ed installa con yum stesso.
Il secondo passo e' quello di lanciare una normale installazione com YUM,
utilizzando l'opzione downloadonly. L'installazione procede normalmente
ma si ferma all'ultimo passo: dopo avere scaricato tutto il software necessario
e prima di effettuare l'installazione.
Nell'ultimo passo si installano i pacchetti desiderati con RPM, utilizzando
l'opzione di esclusione del controllo delle dipendenze.
L'esempio riportato all'inizio della pagina e' reale. Un prerequisito del php-mysql sono le librerie di MySQL ma sul sistema ospite era gia' presente un'installazione differente del DB. Con un'installazione forzata e la copia di una libreria dinamica si e' installato quanto desiderato.
Titolo: YUM nodeps
Livello: Esperto
Data:
14 Febbraio 2014
Versione: 1.0.0 - 14 Febbraio 2014
Autore: mail [AT] meo.bogliolo.name