Le distribuzioni sono normalmente composte da pacchetti (packages), ed ognuno di essi contiene una specifica applicazione o componente: ad esempio, ci possono essere pacchetti contenenti una libreria per la gestione del formato di immagini PNG, oppure una serie di font, o un browser web. Un pacchetto è normalmente fornito come codice compilato, e la sua installazione o rimozione è gestita in maniera più sofisticata rispetto ad un semplice programma di archiviazione come tar. Il programma preposto a queste funzioni è detto sistema di gestione dei pacchetti (package management system o PMS) della distribuzione. Ogni pacchetto dedicato ad un PMS contiene delle meta-informazioni come descrizione, versione, dipendenze, ecc. Il sistema di gestione dei pacchetti tiene in considerazione queste meta-informazioni per permettere ricerche, aggiornamenti automatici a versioni più aggiornate, per controllare che tutte le dipendenze di un pacchetto siano soddisfatte e/o soddisfarle automaticamente.

Gestone dei pacchetti Debian e Ubuntu

Il sistema di gestione dei pacchetti di Debian si basa sui sistemi dpkg e apt. In aggiunta a Debian una serie di altre importanti distribuzioni Linux sono derivati dal sistema Debian, Ubuntu compreso.

Advanced Packaging Tool, (apt)

Advanced Packaging Tool, conosciuto con l’acronimo APT, è il gestore standard di pacchetti software delle distribuzioni Debian e Ubuntu. Un gestore di pacchetti viene utilizzato per installare, aggiornare, verificare e rimuovere software dal sistema operativo in maniera intuitiva e aiuta a risolvere le dipendenze tra i pacchetti. APT ha la particolarità di sfruttare contemporaneamente diverse sorgenti di pacchetti (sorgenti remote FTP e HTTP, cdrom, DVD e hard disk), di gestire autonomamente diverse distribuzioni di pacchetti e di permettere velocemente l’aggiornamento del sistema operativo di una particolare distribuzione. Sotto Debian/Ubuntu si hanno tre differenti distribuzioni utilizzabili: stable, testing e unstable. La lista dei comandi seguenti può essere utilizzata sia su Debian che su Ubuntu, basta ricordarsi che su Ubuntu deve essere prefissa la parola chiave sudo per avere i privilegi di amministratore/root.

Advance Packaging Tool si basa sostanzialmente sul file /etc/apt/sources.list che contiene la lista delle sorgenti da cui attingere i pacchetti e sul comando apt-get:

apt-get install [package-name] – questo comando installa il pacchetto/i specificatiinsieme a tutte le dipendenze.
apt-get remove [package-name] – questo comando rimuove il pacchetto/i specificati, ma non le sue dipendenze.
apt-get autoremove – questo comando rimuove ogni dipendenza “orfana” che è installata ma non viene utilizzata da nessuna applicazione.
apt-get clean – rimuove i file dei pacchetti scaricati (.deb) del software già installato.
apt-get purge [optional] – combina la funzione remove e clean di uno specifico pacchetto. Rimuove anche i file di configurazione di un dato pacchetto.
apt-get update – legge i file da /etc/apt/sources.list e aggiorna il database del sistema di gestione per i pacchetti disponibili per l’installazione. Eseguire questo dopo aver cambiato sources.list.
apt-get upgrade – aggiorna tutti i pacchetti se ce ne sono di disponibili. Eseguire questo comando dopo aver lanciato apt-get update.

Mentre apt-get probabilmente fornisce le funzionalità più utilizzate della gestione dei pacchetti, apt fornisce informazioni aggiuntive che potrebbero risultare utili per il comando apt-cache.

apt-cache search [package-name] – Se si conosce il nome del software, ma apt-get install fallisce hai bisogno di ricercare nel sistema il nome del pacchetto.
apt-cache show [package-name] – l’interfaccia di ricerca fornisce solo i nomi dei pacchetti. Se hai bisogno di saperne di più su un pacchetto incluso le dipendenze, i numeri di versione e una descrizione eseguire questo.
apt-cache depends [package name(s)] – Visualizza l’elenco dei packages dipendenti dal package indicato.
apt-cache rdepends [package name(s)] – Genera un output di una lista di pacchetti che dipendono da uno specifico pacchetto.Questo elenco può essere lungo.
apt-cache pkgnames – genera una lista dei pacchetti installati sul vostro sistema.
In generale, combinando la maggior parte di questi comandi con apt-cache show si è in grado di fornire molte informazioni utili sul sistema, il software che si potrebbe desiderare di installare, e il software che è già stato installato.

aptitude

aptitude è un’altra interfaccia di front-end per apt. Esso fornisce una interfaccia grafica a linea di comando, che può essere utile per un approccio più semplice nelle attività di gestione giornaliere.

Oltre all’interfaccia grafica, aptitude fornisce una combinazione di interfaccia a riga di comando per il più delle sue funzionalità. I comandi salienti sono:

aptitude update, aptitude install, aptitude remove,aptitude clean, aptitude purge – come omologhi di apt-get counterparts.
aptitude search, aptitude show, – come omologhi di apt-cache counterparts.
aptitude download – Scarica un file deb per un dato pacchetto nella directory corrente.
Aptitude include inoltre funzionalità avanzate per l’aggiornamento “sicuro” (un aggiornamento che non rimuove pacchetti esistenti), così come impedire al sistema di aggiornare specifici pacchetti detti (“holding”).

Introduzione a /etc/apt/sources.list

Nello svolgere le sue operazioni, APT usa un file che contiene la lista delle “sorgenti” dalle quali può attingere i pacchetti. Questo file è /etc/apt/sources.list. Il contenuto di questo file ha normalmente il seguente formato:

deb [location-of-resources] [distribution] [component(s)]
ecco un esempio:

deb http://mirror.cc.columbia.edu/pub/linux/debian/debian/ lenny main contrib
La riga precedente indica il mirror Columbia University per la distribuzione “Lenny”, così come i componenti principali.

Usare dpkg

dpkg è il componente base del sistema di gestione dei pacchetti di Debian Gnu Linux, è simile a RPM, in quanto è usato per installare, disinstallare ed ottenere informazioni sui pacchetti .deb. Dpkg è viene utilizzato generalmente per installare pacchetti .deb già presenti sull’ hard disk, i pricipali modi d’utilizzo sono(per utilizzare dpkg sono necessari i permessi di root):

Installazione pacchetto: dpkg – i nome_pacchetto.deb
Disinstallazione pacchetto – dpkg -r nome_pacchetto.deb<
Controllare se un pacchetto è già installato – dpkg -l|grep nome_pacchetto
Lista dei file che compongono un pacchetto già installato – dpkg -L pacchetto
Far riprendere la configurazione di un pacchetto in caso non sia andata a buon fine – dpkg –configure -a
Forzare la disinstallazione in caso non sia avviabile – dpkg –purge –force-all nome_pacchetto
Un cenno anche ad alcune opzioni dpkg che non rigurdano i pacchetti software in se stessi ma riguardano la riconfigurazioni di alcuni importanti elementi del sistema operativo, quali:
Riconfigurazione del server grafico Xorg (da utilizzare in caso non partisse l’interfaccia grafica) – dpkg-reconfigure xserver-xorg
Riconfigurazione del server grafico Xfree (quasi obsoleto) – dpkg-reconfigure xserver-xfree86

Gestione dei pacchetti Fedora e CentOS

Fedora e CentOS sono distribuzioni strettamente correlate tra loro. Le loro principali differenze derivano da come i pacchetti vengono scelti per l’inclusione nel loro repository. Dal punto di vista di gestione dei pacchetti gli strumenti sono molto simili. Entrambi i sistemi utilizzano il programma di yum come front-end per interagire con il repository di sistema e installare le dipendenze, e comprenderà anche uno strumento di livello più basso chiamato yumc he ti permette di interagire con i singoli pacchetti rpm.

Yellow Dog Updater, modificato (yum)

Lo strumento yum è stato inizialmente sviluppato per il sistema di Yellow Dog Linux per sostituire l’allora Yellow Dog Updater (yup). RedHat trovò lo strumento di yum essere una preziosa aggiunta ai loro sistemi. Yum oggi è il pacchetto di default e strumento di gestione dei repository per un certo numero di sistemi operativi.

Dalla linea di comando puoi utilizzare i seguenti comandi yum:

Aggiornamento completo del sistema operativo – yum update
Installazione di un pacchetto – yum install …
Rimozione di un pacchetto – yum remove nomepacchetto
Cercare un pacchetto all’interno di quelli disponibili nei repository – yum search parola_chiave
Avere una lista di pacchetti – yum list
Avere una lista di pacchetti e filtrare in base ad un pattern – yum list |grep

RPM package manager

RPM, Red Hat Package Manager. Utility per installare, disinstallare, aggiornare, interrogare, verificare e costruire pacchetti software. Un package costruito con RPM è un archivio di file e informazioni che potranno essere richiamate una volta che il package è stato installato. RPM permette di installare programmi, già compilati, con una facilità e rapidità estrema sul proprio sistema Linux (è l’equivalente di un setup.exe su Windows). RPM è usato da RedHat e da altre distribuzioni, è importante utilizzare gli RPM adatti per il proprio sistema: un RPM realizzato per RedHat 6.2, per esempio, difficilmente funzionerà su RedHat 7.2. RPM gestisce automaticamente le “dependencies”: se si prova ad installare un RPM che richiede librerie o programmi non presenti o non abbastanza aggiornati sul sistema, l’installazione fallisce e viene indicato quali file mancano. Analogamente, se si prova a rimuovere un package che contiene file utilizzati da altri programmi, viene dato un messaggio di errore. Gli RPM automaticamente distribuiscono i file di un pacchetto nelle directory giuste (logs in /var/log, file di configurazione in /etc/, binari in /usr/bin o /usr/sbin, script di startup in /etc/rc.d/init.d/ ecc.) e verificano la presenza di conflitti o installazioni più recenti. Un RPM non cancella mai nulla che non abbia installato. Se deve sostituire o cancellare un file di configurazione, per esempio, mantiene il file esistente aggiungendo il suffisso .rpmsave.
Comandi:
rpm -i [opzioni] [pacchetti] – Installazione pacchetti RPM
rpm -U [opzioni] [pacchetti] – Aggiornamento di pacchetti RPM
rpm -e [opzioni] [pacchetti] – Disinstallazione di pacchetti RPM
rpm -q [opzioni] [pacchetti] – Interrogazione di pacchetti RPM
rpm -V [pacchetto] – Verifica pacchetto RPM

Introduzione a: /etc/yum.conf

Il file che si trova in / etc / yum.conf fornisce opzioni di configurazione a livello di sistema per yum, oltre ad informazioni sui repository. Le informazoni sul repository possono essere ubicate anche in file con estensione. repo in / etc / yum.repos.d

Le opzioni nella stanza [principale] sono piuttosto auto-esplicative:

logfile=/var/log/yum.log
cachedir=/var/cache/yum
Per definire una nuova “stanza” per un nuovorepository usare il seguente template, sostituendo le stringhe in maiuscolo con i valori attuali:

[REPO-NAME]
name=REPOSITORY-NAME
mirrorlist=HTTP-ACCESSIBLE-MIRROR-LIST
#baseurl=BASE-URL-FOR-REPOSITORY
gpgcheck=BOOLEAN-VALUE[1-or-0]-TO-VERIFY-REPOSITORY
gpgkey=FILE-PATH-TO-GPG-KEY
L’esempio seguente è la configurazione di default per il repository “Base” in CentOS 5.2:

[base]
name=CentOS-$releasever – Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

Molto interessante.