Package Management Cheatsheet |
Principali
distribuzioni |
La prima tabella elenca le attività di
gestione dei pacchetti nei quattro gruppi di
distribuzione più popolari: Debian (inclusi
Ubuntu, Linux Mint, SO elementary, Zorin OS
e altri derivati Debian), openSUSE, Solus,
Fedora (inclusi Red Hat Enterprise Linux,
CentOS, Scientific Linux e altre
distribuzioni basate su Fedora), Mageia,
OpenMandriva e FreeBSD. Copriamo anche
distribuzioni come Slackware, Alpine Linux,
Arch Linux, Gentoo, NixOS e Void nelle
tabelle seguenti. Nella distribuzione basata
su Fedora il gestore di pacchetti yum è
impostato per essere sostituito con dnf ad
un certo punto nel 2015 (a partire da Fedora
22), ma sembra che la maggior parte dei
comandi di gestione dei pacchetti dnf
rimarranno per lo più identici ai comandi
yum (le eccezioni essendo "localinstall" che
non è ancora implementato in dnf e "update"
che è stato deprecato a favore di
"upgrade"). Nota: le versioni attuali di
Ubuntu usano apt per manipolare i pacchetti
deb. Tuttavia, le versioni sperimentali di
Ubuntu utilizzano il nuovo gestore di
pacchetti snap.
Cosa
vogliamo fare
|
apt (deb)
Debian, Ubuntu |
zypp
(rpm)
openSUSE |
yum/dnf
(rpm)
Fedora, CentOS |
urpmi
(rpm)
Mandriva, Mageia |
Gestione del
software |
|
|
|
|
Installa nuovo
software dal repository dei
pacchetti (pkg)
|
apt-get install
pkg |
zypper install pkg |
dnf install pkg |
urpmi pkg |
Installa nuovo
software dal file di
pacchetto (pkg) |
dpkg -i pkg |
zypper install pkg |
dnf localinstall
pkg |
urpmi pkg |
Aggiorna il
software esistente |
apt-get install
pkg |
zypper update -t
package pkg |
dnf update pkg |
urpmi pkg |
Rimuovere il
software indesiderato |
apt-get remove pkg |
zypper remove pkg |
dnf erase pkg |
urpme pkg |
Aggiornamento
del sistema |
|
|
|
|
Aggiorna
l'elenco dei pacchetti |
apt-get update
aptitude update |
zypper refresh |
dnf check-update |
urpmi.update -a |
Aggiorna il
sistema |
apt-get upgrade
aptitude safe-upgrade |
zypper update |
dnf update |
urpmi
--auto-select |
Ricerca per
pacchetti
|
|
|
|
|
Cerca del
pacchetto per nome |
apt-cache search
pkg |
zypper search pkg |
dnf list pkg |
urpmq pkg |
Cerca
per categoria
(pattern) |
|
apt-cache search
pattern |
zypper search -t
pattern pattern |
dnf search pattern |
urpmq --fuzzy pkg |
Cerca file per
nome |
apt-file search
path |
zypper wp file |
dnf provides file |
urpmf file |
Elenco pacchetti
installati |
dpkg -l |
zypper search
-is |
rpm -qa |
rpm -qa |
Configurazione
dell'accesso ai repository
software |
|
|
|
|
Lista repository |
cat
/etc/apt/sources.list |
zypper repos |
dnf repolist |
urpmq
--list-media |
Aggiungi
repository |
(edit
/etc/apt/sources.list) |
zypper addrepo path
name |
(add repo
to /etc/yum.repos.d/) |
urpmi.addmedia name
path |
Rimuovi
repository |
(edit
/etc/apt/sources.list) |
zypper
removerepo name |
(remove repo
from /etc/yum.repos.d/) |
urpmi.removemedia
media |
|
|
|
Distribuzioni basate
su Slackware
|
La tabella seguente elenca le utilità di
gestione dei pacchetti che si trovano in
Slackware Linux e in altre distribuzioni
basate su Slackware. Come affermato da
Patrick Volkerding in diverse occasioni, è
improbabile che Slackware abbia mai uno
strumento di gestione dei pacchetti avanzato
(cioè per la risoluzione delle dipendenze),
quindi tutte le attività di installazione,
aggiornamento e rimozione continuano ad
essere eseguite con pkgtools, un insieme di
script molto semplici che hanno non è
cambiato molto negli anni. Tuttavia,
slackpkg, uno strumento avanzato di gestione
dei pacchetti che per anni era stato
relegato nel repository "extra" non
supportato, è stato finalmente integrato in
Slackware Linux 12.2. Vale la pena notare
che alcuni popolari derivati di Slackware,
come VectorLinux, si sono standardizzati su
slapt-get, un'altra utility di terze parti
che imita il comportamento di APT di Debian,
mentre Zenwalk Linux ha introdotto il
proprio strumento di gestione dei pacchetti
chiamato netpkg.
Cosa
vogliamo fare |
pkgtools
Slackware |
slackpkg
Slackware |
slapt-get
Vector |
netpkg
Zenwalk |
Gestione del
software |
|
|
|
|
Installa nuovo
software dal repository dei
pacchetti (pkg) |
-- |
slackpkg install
pkg |
slapt-get
--install pkg |
netpkg pkg |
Installa nuovo
software dal file di
pacchetto (pkg) |
installpkg pkg |
slackpkg install
pkg |
slapt-get
--install pkg |
netpkg pkg |
Aggiorna il
software esistente |
upgradepkg pkg |
slackpkg upgrade
pkg |
slapt-get
--install pkg |
netpkg pkg |
Rimuovere il
software indesiderato |
removepkg pkg |
slackpkg remove
pkg |
slapt-get
--remove pkg |
netpkg remove pkg |
Aggiornamento
del sistema |
|
|
|
|
Aggiorna
l'elenco dei pacchetti |
-- |
slackpkg update |
slapt-get
--update |
(automatic) |
Aggiorna il
sistema |
-- |
slackpkg
upgrade-all |
slapt-get
--upgrade |
netpkg upgrade |
Ricerca per
pacchetti |
|
|
|
|
Cerca del
pacchetto per nome
|
-- |
slackpkg search
pkg |
slapt-get
--search pkg |
netpkg pkg
repo |
Cerca
per categoria
(pattern) |
|
-- |
slackpkg search
pattern |
slapt-get
--search pattern |
netpkg list |
grep pattern |
Cerca file per
nome |
-- |
-- |
-- |
netpkg file
repo |
Elenco pacchetti
installati
|
ls
/var/log/packages/ |
ls
/var/log/packages/ |
slapt-get
--installed |
netpk list I |
Configurazione
dell'accesso ai repository
software |
|
|
|
|
Lista repository |
-- |
cat
/etc/slackpkg/mirrors |
cat
/etc/slapt-get/slapt-getrc |
netpkg mirror |
Aggiungi
repository |
-- |
(edit
/etc/slackpkg/mirrors) |
(edit
/etc/slapt-get/slapt-getrc) |
(edit
/etc/netpkg.conf) |
Rimuovi
repository |
-- |
(edit
/etc/slackpkg/mirrors) |
(edit
/etc/slapt-get/slapt-getrc) |
(edit
/etc/netpkg.conf) |
|
|
|
Distribuzioni Linux
Indipendenti
|
Nel prossimo gruppo abbiamo alcune
distribuzioni (per lo più) indipendenti che
hanno guadagnato popolarità negli ultimi
anni. Sabayon Linux, sebbene derivato da
Gentoo, ha introdotto la propria utilità di
gestione dei pacchetti a riga di comando
chiamata equo. Pacman di Arch Linux è in
circolazione da molto tempo ed è spesso
considerato una delle utility di gestione
dei pacchetti più veloci in circolazione.
PiSi, originariamente sviluppato da Pardus
Linux, è un'utilità relativamente nuova che
è stata rielaborata nell'utilità eopkg,
utilizzata da Solus.
Cosa
vogliamo fare |
equo
Sabayon |
pacman
Arch |
eopkg
Solus |
apk
Alpine |
Gestione del
software |
|
|
|
|
Installa nuovo
software dal repository dei
pacchetti (pkg) |
equo install pkg |
pacman -S pkg |
eopkg install pkg |
apk add pkg |
Installa nuovo
software dal file di
pacchetto (pkg) |
equo install pkg |
pacman -U pkg |
-- |
apk add --force
pkg |
Aggiorna il
software esistente |
equo install pkg |
pacman -S pkg |
eopkg upgrade pkg |
apk add
--upgrade pkg |
Rimuovere il
software indesiderato |
equo remove pkg |
pacman -R pkg |
eopkg remove pkg |
apk del pkg |
Aggiornamento
del sistema |
|
|
|
|
Aggiorna
l'elenco dei pacchetti |
equo update |
pacman -Sy |
|
apk update |
Aggiorna il
sistema
|
equo upgrade |
pacman -Su |
eopkg upgrade |
apk upgrade |
Ricerca per
pacchetti |
|
|
|
|
Cerca del
pacchetto per nome |
equo match pkg |
pacman -Ss pkg |
eopkg search pkg |
apk search pkg |
Cerca per categoria
(pattern) |
equo search pattern |
pacman -Ss pattern |
eopkg search pattern |
apk search pattern |
Cerca file per
nome |
equo belongs file |
pacman -Qo file |
-- |
-- |
Elenco pacchetti
installati |
equo q list
installed |
pacman -Q |
-- |
apk info |
Configurazione
dell'accesso ai repository
software |
|
|
|
|
Lista repository |
equo repoinfo |
cat
/etc/pacman.conf |
eopkg list-repo |
cat
/etc/apk/repositories |
Aggiungi
repository |
|
(edit
/etc/pacman.conf) |
eopkg add-repo Name
URL |
setup-apkrepos |
Rimuovi
repository |
|
(edit
/etc/pacman.conf) |
eopkg
remove-repo Name |
(edit
/etc/apk/repositories) |
|
|
|
Distribuzioni con
Agnostic Package Management |
Oltre alle utilità di gestione dei pacchetti
standard che la maggior parte delle
distribuzioni usa come parte dei loro
sistemi, ce ne sono anche alcune
distro-agnostiche che sono state
implementate con vari livelli di successo in
alcune distribuzioni. Smart, originariamente
sviluppato da Conectiva, non fa notizia
ultimamente, ma alcuni utenti sembrano
preferirlo a urpmi di Mandriva o zypper di
openSUSE (supporta anche i sistemi basati su
Debian e Slackware). Più recentemente è
PackageKit di Fedora che sta guadagnando
slancio come modo per gestire i pacchetti
attraverso distribuzioni e architetture. Ora
inclusa in molte altre distribuzioni,
l'utilità da riga di comando pkgcon di
PackageKit è effettivamente un'interfaccia
unificata per gli strumenti di gestione dei
pacchetti nativi di Fedora, Ubuntu,
openSUSE, Mandriva e altre distribuzioni.
Cosa
vogliamo fare |
smart
Mandriva, openSUSE |
pkgcon
Fedora, Ubuntu, openSUSE,
Mandriva |
Gestione del
software |
|
|
Installa nuovo
software dal repository dei
pacchetti (pkg) |
smart install pkg |
pkcon install pkg |
Installa nuovo
software dal file di
pacchetto (pkg) |
smart install pkg |
pkcon
install-file pkg |
Aggiorna il
software esistente |
smart install pkg |
pkcon update pkg |
Rimuovere il
software indesiderato |
smart remove pkg |
pkcon remove pkg |
Aggiornamento
del sistema |
|
|
Aggiorna
l'elenco dei pacchetti |
smart update |
pkcon refresh |
Aggiorna il
sistema |
smart upgrade |
pkcon upgrade |
Ricerca per
pacchetti |
|
|
Cerca del
pacchetto per nome |
smart search pkg |
pkcon search
name pkg |
Cerca
per categoria
(pattern) |
|
smart search pattern |
pkcon search
details pattern |
Cerca file per
nome |
smart query file |
pkcon
what-provides file |
Elenco pacchetti
installati |
smart query
--installed |
pkcon search
name pkg | grep Installed |
Configurazione
dell'accesso ai repository
software |
|
|
Lista repository |
smart channel
--show |
pkcon repo-list |
Aggiungi
repository |
smart channel
--add name path |
|
Rimuovi
repository |
smart channel
--remove name |
|
|
|
|
Distribuzioni basate
sul codice sorgente
|
Successivamente, una tabella per le
distribuzioni basate sul codice sorgente.
Portage di Gentoo è ben documentato e
ampiamente utilizzato, ma altre
distribuzioni progettate per essere
costruite da zero non sono spesso presenti
nei media Linux, quindi i loro sistemi di
gestione dei pacchetti non sono
particolarmente conosciuti. Sorcerer, che
esisteva anche prima che Gentoo Linux fosse
concepito, usa gli script Bash per "cast
spells" o scaricare, installare e compilare
pacchetti. Sorcerer è stato successivamente
biforcato in Lunar Linux e Source Mage
GNU/Linux, entrambi inclusi nella tabella
seguente. Sfortunatamente, Sorcerer non
offre molto in termini di documentazione
online, quindi per ora è stato omesso.
Cosa
vogliamo fare |
portage
Gentoo |
lunar
Lunar |
sorcery
Source Mage |
Gestione del
software |
|
|
|
Installa nuovo
software dal repository dei
pacchetti (pkg) |
emerge pkg |
lin pkg |
cast pkg |
Installa nuovo
software dal file di
pacchetto (pkg) |
|
|
|
Aggiorna il
software esistente |
emerge pkg |
lin pkg |
cast pkg |
Rimuovere il
software indesiderato |
emerge -aC pkg |
lrm pkg |
dispel pkg |
Aggiornamento
del sistema |
|
|
|
Aggiorna
l'elenco dei pacchetti |
emerge --sync |
lin moonbase |
scribe update |
Aggiorna il
sistema |
emerge -NuDa
world |
lunar update |
sorcery upgrade |
Ricerca per
pacchetti |
|
|
|
Cerca del
pacchetto per nome |
emerge --search
pkg |
lvu search pkg |
gaze search
-name pkg |
Cerca
per categoria
(pattern) |
|
emerge --search
pattern |
lvu search pattern |
gaze search pattern |
Cerca file per
nome |
equery belongs pkg |
|
gaze from file |
Elenco pacchetti
installati |
qlist -Iv |
lvu installed |
gaze installed |
Configurazione
dell'accesso ai repository
software |
|
|
|
Lista repository |
layman -L |
-- |
scribe index |
Aggiungi
repository |
layman -a repo |
-- |
scribe add repo |
Rimuovi
repository |
layman -d repo |
-- |
scribe remove repo |
|
|
|
Nix
OS (nix), Void (xbps) e Ubuntu (snap) |
Alcune distribuzioni, ad es. NixOS, Void e
Ubuntu hanno sviluppato i propri sistemi di
gestione dei pacchetti binari con alcune
caratteristiche interessanti e innovative.
Ecco un riepilogo dei comandi utili
utilizzati da questi progetti per la
gestione dei pacchetti.
Cosa
vogliamo fare |
nix
NixOS |
xbps
Void |
snap
Ubuntu |
Gestione del
software |
|
|
|
Installa nuovo
software dal repository dei
pacchetti (pkg) |
nix-env -i pkg |
xbps-install pkg |
snap install pkg |
Installa nuovo
software dal file di
pacchetto (pkg) |
-- |
-- |
-- |
Aggiorna il
software esistente |
nix-env -u pkg |
xbps-install -u
pkg |
snap refresh pkg |
Rimuovere il
software indesiderato |
nix-env -e pkg |
xbps-remove pkg |
snap remove pkg |
Aggiornamento
del sistema |
|
|
|
Aggiorna
l'elenco dei pacchetti |
nix-channel
--update |
xbps-install -S |
-- |
Aggiorna il
sistema |
nix-env -u |
xbps-install -u |
-- |
Ricerca per
pacchetti |
|
|
|
Cerca del
pacchetto per nome |
nix-env -qa pkg |
xbps-query -Rs pkg |
snap find pkg |
Cerca
per categoria
(pattern) |
|
nix-env -qa pattern |
xbps-query -Rs pattern |
snap find | grep
pattern |
Cerca file per
nome |
-- |
xbps-query -o file |
-- |
Elenco pacchetti
installati |
nix-env -q |
xbps-query -l |
snap list |
Configurazione
dell'accesso ai repository
software |
|
|
|
Lista repository |
nix-channel
--list |
xbps-query -L |
-- |
Aggiungi
repository |
nix-channel
--add url name |
(add to
/etc/xbps/repo.d/ or
/usr/share/xbps/repo.d/) |
-- |
Rimuovi
repository |
nix-channel
--remove name |
(edit
/etc/xbps/repo.d/ and
/usr/share/xbps/repo.d/) |
-- |
|
|
|
FreeBSD |
Infine, una tabella per FreeBSD, un popolare
sistema operativo che offre la gestione dei
pacchetti sia binari che sorgenti.
Cosa
vogliamo fare |
packages
FreeBSD < 10.0 |
packages
FreeBSD 10.0+ |
ports
FreeBSD |
Gestione del
software |
|
|
|
Installa nuovo
software dal repository dei
pacchetti (pkg) |
pkg_add -r package |
pkg install package |
cd port_dir
&& make &&
make install |
Installa nuovo
software dal file di
pacchetto (pkg) |
pkg_add path_to_package |
pkg add path_to_package |
-- |
Aggiorna il
software esistente |
pkg_add path_to_package |
pkg install path_to_package |
portupgrade -R pkg |
Rimuovere il
software indesiderato |
pkg_delete pkg |
pkg remove pkg |
pkg_delete pkg |
Aggiornamento
del sistema |
freebsd-update
fetch install |
freebsd-update
fetch install |
portsnap fetch
install |
Aggiorna
l'elenco dei pacchetti |
|
pkg update |
csup -L 2 -h
cvsup.FreeBSD.org path_to_supfile
portsnap update |
Aggiorna il
sistema |
|
pkg upgrade |
portupgrade -a
portmanager -u
portmaster -a |
Ricerca per
pacchetti |
|
|
|
Cerca del
pacchetto per nome |
|
pkg search package |
cd /usr/ports
&& make search pkg |
Cerca per categoria
(pattern) |
|
pkg search pattern |
cd /usr/ports
&& make search pattern |
Cerca file per
nome |
|
|
|
Elenco pacchetti
installati |
pkg info |
pkg info |
pkg_info |
Configurazione
dell'accesso ai repository
software |
|
|
|
Lista repository |
-- |
-- |
-- |
Aggiungi
repository |
-- |
-- |
-- |
Rimuovi
repository |
-- |
-- |
-- |
|
|
|
|