Comparazione tra i maggiori gestori di pacchetti
Articolo originale
1. Introduzione
Una delle differenze principali nelle varie distribuzioni Linux è la gestione dei pacchetti. Molte volte si tratta del motivo per il quale alcuni passano da una distro ad un'altra, in quanto potrebbero non accettare il modo con il quale viene gestito il software, oppure perchè manca del software in alcune specifiche distribuzioni. Se siete dei principianti e volete sapere quali possano essere le varie differenze, questo è un buon punto di partenza. Se avete usato una sola od un paio di distribuzioni e volete sapere cosa ci sia in altre realtà, questo potrebbe essere il vostro articolo. Infine se volete fare delle comparazioni tra i vari sistemi di gestione dei pacchetti, questo articolo potrebbe interessarvi. Potrete scoprire alcune cose interessanti, ad esempio come si installano i pacchetti, come si cercano, come si aggiornano e come si rimuovono ed altre opzioni.
Buona lettura.
2. Sistemi di gestione dei pacchetti
2.1 La famiglia apt
APT è un acronimo di Advanced Packaging Tool, ma l'acronimo è scritto in minuscolo, quindi ci riferiremo ad esso in questo modo. La famiglia apt è un frontend di dpkg nella famiglia Debian dei sistemi operativi Linux. Alcune delle sue applicazioni sono apt-get, apt-cache, apt-cdrom o apt-file. Non è una lista completa, ma quello che viene usato più di frequente è in essa. C'è anche aptitude, che quando viene invocato senza argomenti, presenta un simpatico menù. Alcune derivate di Debian hanno cambiato alcune cose in aptitude, ma in questa sede si tratterà dell'applicazione di base presente in una versione qualsiasi di Debian.
2.1.1 Installare software
Installare software è semplice, tutto quello che dovete fare è:
# apt-get install $software
o se usate aptitude:
# aptitude install $software
Se ricevete qualche messaggio che dice che il software non è stato trovato, assicuratevi di avere aggiornato il vostro elenco del software, con il comando update :
# apt-get update
o
# aptitude update
Senza perdere altro spazio, possiamo dire che tutto quello che si può fare con apt, lo si può fare allo stesso modo con aptitude.
2.1.2 Aggiornare il software
Diversamente da altri PM, la famiglia apt richiede due passaggi per aggiornare il software installato sul vostro sistema, di cui la prima parte vi è stata già illustrata. Ciò è considerato un vantaggio dai proprositori ed una perdita di tempo dagli impazienti, che dicono che un solo comando sarebbe più semplice. Chi scrive non prende posizioni e lascia a voi il compito di giudicare. Quindi senza altre divagazioni, ecco cosa dovete fare per aggiornare un sistema Debian:
# apt-get update && apt-get upgrade
Ora ecco la parte interessante: c'è anche un comando dist-upgrade ed anche aptitude supporta un avanzamento completo, che è un po' diverso e completo rispetto al comando upgrade . Si può dire invasivo, in quanto rimuoverà tutti i vecchi pacchetti, quando ci sono degli aggiornamenti importanti. Questo dipende anche dal tipo di distribuzione Debian abbiate. Se avete una stabile, potete effettuare l'avanzamento con semplicità e sicurezza, ma su sistemi meno stabili, questo potrebbe arrecare qualche dispiacere.
2.1.3 Cercare software
Non conoscete il nome esatto del pacchetto che volete installare? Potete installare sia "bash-completion" e scrivere "aptitude install $first_letters + Tab" o potete usare la funzione di ricerca offerta dagli strumenti di apt. Potete usare:
$ apt-cache search $search_term
o con aptitude:
$ aptitude search $search_term
Ancora una volta ricordate di digitare "update" prima di installare, in modo che il package manager sappia cosa è disponibile.
2.1.4 Rimuovere software
aptitude, come apt-get, supporta i comandi remove e purge per rimuovere il software. Mentre remove supporta la funzione basica di disinstallare, purge fa un ulteriore passo e cancella anche i file di configurazione specifici del pacchetto disinstallato. E' a vostra discrezione decidere caso per caso, quando usare remove e quando usare purge, dipendendo da diversi fattori.
2.2 yum
Alcuni di voi ricorderanno i giorni infernali delle dipendenze dei pacchetti RPM. Ora grazie a yum, quei giorni appartengono al passato e la installazione del software è diventata una cosa più semplice. Come gli altri package managers, yum supporta le funzioni basiche come installare e rimuovere il software, più .
2.2.1 Installare software
I comandi di base sono più o meno gli stessi discussi nelle parti riguardanti Debian. Quindi se, per esempio, volete installare jed, l'editor di testo, dovrete digitare:
# yum install jed
Loaded plugins: auto-update-debuginfo, langpacks, presto, refresh-packagekit
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package jed.i686 0:0.99.19-3.fc15 will be installed
--> Processing Dependency: slang-slsh for package: jed-0.99.19-3.fc15.i686
--> Running transaction check
---> Package slang-slsh.i686 0:2.2.4-1.fc16 will be installed
--> Processing Dependency: libonig.so.2 for package: slang-slsh-2.2.4-1.fc16.i686
--> Running transaction check
---> Package oniguruma.i686 0:5.9.2-2.fc15 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
jed i686 0.99.19-3.fc15 fedora 795 k
Installing for dependencies:
oniguruma i686 5.9.2-2.fc15 fedora 125 k
slang-slsh i686 2.2.4-1.fc16 fedora 165 k
Transaction Summary
================================================================================
Install 3 Packages
Total download size: 1.1 M
Installed size: 1.1 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): jed-0.99.19-3.fc15.i686.rpm | 795 kB 00:02
(2/3): oniguruma-5.9.2-2.fc15.i686.rpm | 125 kB 00:00
(3/3): slang-slsh-2.2.4-1.fc16.i686.rpm | 165 kB 00:00
--------------------------------------------------------------------------------
Total 268 kB/s | 1.1 MB 00:04
Running Transaction Check
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : oniguruma-5.9.2-2.fc15.i686 1/3
Installing : slang-slsh-2.2.4-1.fc16.i686 2/3
Installing : jed-0.99.19-3.fc15.i686 3/3
Installed:
jed.i686 0:0.99.19-3.fc15
Dependency Installed:
oniguruma.i686 0:5.9.2-2.fc15 slang-slsh.i686 0:2.2.4-1.fc16
Complete!
Questo è come figura l'output completo in Fedora 16. yum supporta anche il comando localinstall , che è molto utile se avete scaricato un pacchetto RPM in locale e lo volete installare.
2.2.2 Aggiornare il software
Come detto dianzi, i comandi sono pressoché simili, ma con yum non avete due comandi separati come li avete in apt*. Quindi il semplice comando "yum update" aggiornerà non solo i dati della repository, ma procederà anche ad aggiornare veramente i pacchetti se ci sono delle nuove versioni. Potete vedere se ci sono delle novità usando il comando check-update , che è molto simile ad "aptitude update" nel senso che aggiorna i dati, ma non i pacchetti.
2.2.3 Cercare software
Qualche tempo addietro la funzione di ricerca di yum offriva troppi risultati di poco rilievo e gli sviluppatori hanno aggiunto delle modifiche in modo che il risultato sia più consistente. Per avere ancora il risultato offerto in precedenza, basta digitare "search all" .
2.2.4 Rimuovere software
Se voglio rimuovere del software, naturalmente il comando è "yum remove". Questo rimuoverà il pacchetto e le sue dipendenze. Se doveste non voler seguire questa via, volendo trattenere le dipendenze (e per questo vi raccomandiamo molta attenzione), dovreste digitare:
# yum --nodeps remove jed
Il wiki di yum dice quanto segue a proposito di --nodeps, quindi state attenti: "--nodeps è usato solamente quando un pacchetto o un sistema è irrimediabilmente corrotto. Come regola generale non potete mettere una vite nel buco senza giravite, usando il martello." Naturalmente cercate di leggere il manuale di yum, che spiega tutte le opzioni che potete usare. Come con i text editors, il package manager è uno strumento di uso frequente, quindi è bene conoscere tutto di lui per essere il più efficaci possibile.
2.3 pacman
Il gestore dei pacchetti di Arch Linux è relativamente una novità, dato che anche la distribuzione è nuova, ma questo non significa che non siano disponibili le caratteristiche che si trovano in yum o zypper. Una differenza tra pacman ed i menzionati package manager è il fatto che non offre comandi come update o remove. Al loro posto l'utente usa una lettera singola per ottenere varie funzioni offerte da pacman. Un'altra differenza è che pacman è più veloce, ma potrebbe essere un dato soggettivo.
2.3.1 Installare software
Per installare jed su un sistema Arch, potete digitare:
# pacman -S jed
La -S sta per sync ed è anche usato per altre funzioni, come cercare software o aggiornare. All'inizio potrebbe sembrare illogico, ma la spiegazione nella pagina del manuale, vi lluminerà.
2.3.2 Aggiornare il software
pacman offre la scelta tra aggiornare i dati della repository e/o aggiornare il software esistente. Entrambe le opzioni sono usate congiuntamente con -S e sono accessibili con -y (ricarica la repository) e -u (upgrade software). Quindi per aggiornare i pacchetti installati, occorre digitare:
# pacman -Syu
Potete omettere -u se siete sicuri che la repository sia aggiornata, abbreviando il tempo di installazione.
2.3.3 Cercare software
Avrete ancora bisogno di -S per cercare il software, aggiungendo una "s" minuscola ad esso:
# pacman -Ss jed
2.3.4 Rimuovere software
Finalmente il flag -S esce di scena ed è sostituito da -R più il nome del pacchetto che avete intenzione di rimuovere. C'è il flag --nodeps , abbreviato in -d . pacman offre altre utili opzioni, ricordatevi quindi di leggere il manuale con il comando "man pacman".
2.4 Portage
Alcuni forse affermano che Portage non è un importante sistema di gestione dei pacchetti, ma in effetti non è così. Sebbene Gentoo non sia famoso come dovrebbe essere, ha un suo preciso posto nel mondo Linux e non ha intenzione di andare in nessun altro posto, con utenti che lo usano felicemente e non vogliono usare altro. Tuttavia, proprio come pacman, sebbene non sia facile come yum, offre capacità molto avanzate e richiede qualche tempo per essere imparato bene.
2.4.1 Installare software
Prima di tutto, se siete nuovi di Gentoo e Portage, vi raccomandiamo di usare le opzioni lunghe, piuttosto di quelle corte (come --help vs. -h), in quanto sono molto più descrittive. Dopo che avrete fatto più esperienza, potrete usare le forme più corte. Secondo, mentre viene spesso accennato a Portage, questo nome è usato per indicare strumenti relativi alla gestione dei pacchetti. Userete emerge come strumento principale di gestione dei pacchetti, ma ci saranno altri strumenti che potreste usare, tutti con riferimenti nelle pagine del manuale. Assicuratevi di usare --sync prima di installare il primo pacchetto, che è l'equivalente del comando update di aptitude. Quindi semplicemente emerge il pacchetto che volete:
# emerge jed
Si, è così semplice. Ricordatevi che emerge è uno strumento molto complesso e potente e non possiamo fornirvi tutte le opzioni possibili, solo quelli basici, ma tutto quello che vi serve, dovrebbe esserci.
2.4.2 Aggiornare il software
Come apt* o pacman, emerge effettua gli aggiornamenti in due passaggi: prima aggiorna i dati dei pacchetti dall'host remoto con --sync , poi aggiorna il software installato con:
# emerge --update --deep world
Il comando di aggiornamento di cui sopra è la versione semplificata, ma ci sono anche altre opzioni che potete/dovete usare quando aggiornate, specialmente dato che Gentoo è source-based. Per esempio, se cambiate qualcosa etichettato USE dopo l'ultimo aggiornamento, è assai raccomandato l'uso di --newuse in modo che emerge stia attento ad effettuare i cambiamenti e possibilmente a ricompilare alcuni dei pacchetti in relazione a ciò (o tutti). Potete usare anche --ask se volete un messaggio di conferma prima che inizi l'aggiornamento o --verbose per un output più dettagliato. Quindi tutti i comandi e le opzioni descritte dianzi, saranno tradotte con:
# emerge -uDNav world
Portage non è solo uno strumento complesso, è anche ben documentato. Potete avere molte informazioni qui, ma il resto lo trovate nella guida a Portage.
2.4.3 Cercare software
emerge offre --search e --searhdesc per questo, e vi spiegherò quali sono le differenze tra i due. ecco un esempio: --search jed ci dice in quale categoria sia jed (app-editors e le categorie in Portage sono simili a quelle che si trovano ports/pkgsrc di BSD), informazioni sulla licenza, le versioni, ecc. Usando --searchdesc ci da più risultati, in quanto come dice il nome, emerge cercherà il testo di cui avete bisogno, ma richiede più tempo per farlo. Un paragone grossolano può essere la differenza tra search e search all in yum.
2.4.4 Rimuovere software
Poichè installare software si dice "emerging " nella lingua di Gentoo, è naturale dire "unmerge " quando lo si disinstalla. L'abitutdine comune è quella di lasciare le dipendenze, del tipo "--nodeps " che si fa in yum/rpm. Se si usa "--depclean " verranno rimosse tutte le dipendenze del pacchetto che viene disinstallato, ma per evitare incidenti, è bene sapere cosa si sta facendo, prima di rimuovere pacchetti importanti e danneggiare l'intero sistema.
3. Conclusione
Avrete notato che sono state trattate solo le funzioni base dei PM elencati. Lasciamo tutto il resto come esercizio dell'utente, dato che gli strumenti illustrati sono in grado di fare ben altro, come elencare il software installato. Raccomandiamo di allestire una macchina per i test, tipo una macchina virtuale e divertitevi con il vostro PM preferito.
***
|