Table of Contents
Gestione dei pacchetti in Linux e FreeBSD
Tool per la gestione dei pacchetti
RedHat Linux rpm Debian GNU/Linux dpkg FreeBSD pkg_*
Installazione di un pacchetto
rpm -i archive.rpm dpkg -i archive.deb pkg_add archive.tgz
Disinstallazione di un pacchetto
rpm -e package dpkg -r package (lascia i file di configurazione) dpkg -P package (rimuove i file di configurazione) pkg_delete package
A quale pacchetto appartiene un file
rpm -qf /path/to/file dpkg --search /path/to/file pkg_info -W /path/to/file
Informazioni su un pacchetto installato
rpm -qi package dpkg --status package pkg_info -v package
Informazioni su un pacchetto da installare, comprese le dipendenze
rpm -qpi archive.rpm dpkg --info archive.deb pkg_info -v archive.tgz
Quali dipendenze ha un pacchetto
Elenca i pacchetti richiesti, cioè le dipendenze, di un pacchetto già installato:
rpm -qR package
Lista concisa di tutti i pacchetti installati
rpm -qa dpkg --get-selections pkg_info
Lista di tutti i file installati da un pacchetto
rpm -ql package dpkg --listfiles package pkg_info -L package
Estrarre (senza installare) il contenuto di un paccheto
rpm ???? dpkg --extract archive.deb directory dpkg --control archive.deb directory/DEBIAN tar zxvf archive.tgz
Estrarre gli script da un archivio rpm:
rpm -qp --scripts archive.rpm > ListOfScripts
Controllo integrità file appartenenti a un pacchetto
NOTA: non tutti i pacchetti .deb hanno l'md5sum
rpm -V package debsums package # In alternativa al precedente: cd /; md5sum -c /var/lib/dpkg/info/package.md5sums pkg_info -g package
Elenco dei pacchetti che dipendono da uno dato
rpm -q --whatrequires package apt-cache showpkg package pkg_info -R package
Uso di apt e dpkg in Debian GNU/Linux
Nelle moderne distribuzioni Debian (a partire da Debian 8) esistono i comandi apt-get e apt per interagire con il gestore di pacchetti APT (Advanced Package Tool). Il secondo è più moderno, include le funzionalità di apt-get e apt-cache, più alcune funzionalità esclusive. Quindi conviene aggiornarsi a questa nuova sintassi.
Aggiorna la lista del software disponibile alla sorgente. Le fonti sono indicate in /etc/apt/sources.list
.
atp update
Tenta di aggiornare automaticamente e gentilmente il sistema. Non installa ne' rimuove pacchetti.
apt upgrade
Aggiorna i pacchetti anche per l'eventuale passaggio ad una nuova release Debain. Eventualmente rimuove pacchetti non più necessari o che impediscono l'aggiornamento:
apt full-upgrade
apt-get dist-upgrade
Lista dettagliata dei pacchetti installati, loro stato e breve descrizione:
dpkg --list
Come ottenere la lista dei pacchetti installati e come usare la lista per installare gli stessi pacchetti:
dpkg --get-selections > lista dpkg --set-selections < lista
Elenco dei pacchetti aggiornabili:
apt list --upgradable
Scoprire l'origine di un pacchetto
Finding the origin of a package installed by APT. In breve, usare:
apt-cache policy <pkgname>
Ricompilare un pacchetto Debian GNU/Linux
Nella directory corrente: scarica, scompatta e applica le patch Debian ai sorgenti di un pacchetto. Bisogna che in /etc/apt/sources.list
sia indicata una sorgente deb-src
.
apt-get source packagename
Se i sorgenti li abbiamo già scaricati (nella directory corrente ci devono essere i tre file: .diff.gz
, .dsc
e .orig.tar.gz
):
dpkg-source -x filename.dsc
Installa i pacchetti necessari a compilare un pacchetto:
apt-get build-dep package
Compila i sorgenti e crea il pacchetto .deb:
cd packagedir dpkg-buildpackage -rfakeroot -b
Scaricare pacchetto Debian GNU/Linux senza installare
Con aptitude è semplice e non richiede permessi di root. Il file viene salvato nella directory corrente:
aptitude download packagename
Yum
Disponibile in Fedora, CentOS (ed altre derivate RedHat?).
Cerca un pacchetto nella lista di quelli disponibili e lo installa:
yum search <string> yum install <package>
Yum attinge ai repository on-line, l'elenco dei repository è indicato nei file presenti in /etc/yum.repos.d/
.
Per vedere l'elenco dei pacchetti installati, gli aggiornamenti disponibilie e per installarli:
yum list installed yum list updates yum update
Per aggiungere il repository EPEL ad una CentoOS 5:
wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -ivh epel-release-5-4.noarch.rpm yum repolist
Per vedere quali repository attivi ci sono in yum:
yum repolist enabled
Per sapere da quale repository è arrivato un pacchetto si usa il comando repoquery fornito dal pacchetto yum-utils:
repoquery -i php55w-common
Per scaricare un pacchetto senza installarlo si usa il comando yumdownloader fornito dal pacchetto yum-utils:
yumdownloader php55w-common
Signature dei pacchetti rpm
Per installare pacchetti da repository non ufficiali è opportuno installare la chiave con la quale vengono firmati. Ad esempio:
rpm --import https://mirror.webtatic.com/yum/RPM-GPG-KEY-webtatic-el7
In alternativa è possibile scaricare il file della chiave ed eseguire l'opzione --import sul file scaricato in locale.
Il risultato è l'installazione di un pacchetto con nome del tipo gpg-pubkey-62e74ca5-539c878e, che non contiene alcun file. Per vedere quali chiavi sono state installate nel sistema:
rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'
Per rimuovere la chiave si deve rimuovere il pacchetto con rpm:
rpm -e gpg-pubkey-62e74ca5-539c878e