"Se ci sono due o più modi di fare una cosa,
e uno di questi modi può condurre a una catastrofe,
allora qualcuno la farà in quel modo.

(Edward Murphy)

Gestori di pacchetti

Mar, 29/09/2009 - 00:00 -- arturu
Gestori di pacchetti

Una delle tante filosofie del mondo Open Source riguarda l’economia del software, come concetto di base si tende a non replicare nel sistema codice o componente che già è stato implementato da un altro programmatore. Questi componenti vengono distribuiti attraverso internet in file compressi e vengono chiamati pacchetti o packange. Dal punto di vista del programmatore questa è la soluzione migliore ma dal punto di vista dell’utente, specialmente per chi non ha molta esperienza, può diventare un incubo. Infatti, per poter installare un determinato software bisogna installare prima i pacchetti necessari al suo funzionamento, stando attenti che questi pacchetti a loro volta non richiedano altri pacchetti per poter funzionare e così via; nel gergo Open Source questo procedimento viene chiamato “Risoluzione delle dipendenze”. Per ovviare a questo problema si utilizzano dei programmi appositamente costruiti che sono i “Gestori di Pacchetti”. Attualmente oltre a risolvere le dipendenze i gestori di pacchetti provvedono alla ricerca del software, al download, all’installazione e alla configurazione. Attualmente l’utente finale deve solo scegliere il programma che più preferisce, attendere il download, la configurazione ed utilizzare il software. Lo stesso gestore si occupa di rimuovere i programmi, di mantenere aggiornato il sistema, occuparsi dell’upgrade di versione della distribuzione (ad es. Ubuntu), di aggiornare i driver, ecc., mantenendo sempre pulito e stabile il sistema anche dopo anni e anni di installazione e rimozione del software.

Oggi esistono diverse tecnologie per la gestione dei pacchetti, questa situazione è dovuta alla moltitudine delle distribuzioni GNU/Linux esistenti, infatti, ognuna di essa utilizza un gestore diverso. I gestori largamente usati sono:

  • YUM, utilizzato in Fedora Core;
  • up2date, utilizzato dai sistemi Red Hat Enterprise Linux. La sua versatilità lo fa dialogare anche con reti di distribuzione YUM e APT che contengono pacchetti RPM;
  • YasT, utilizzato nelle distribuzioni Linux SUSE;
  • urpmi, utilizzato da Mandrakelinux;
  • Advanced Packaging Tool (APT) per RPM
  • dpkg utilizzato per primo sulle distribuzioni Debian GNU/Linux e poi da altre distribuzioni. Utilizza un formato di pacchetti .deb ed è stato il primo a risolvere le dipendenze.
  • portage/emerge utilizzato su Gentoo, famoso perché a differenza degli altri (che scaricano il programma già compilato) scarica il codice sorgente e provvede ad ottimizzarlo e compilarlo per l’hardaware installato sul computer, in questo modo si ha un software ottimizzato per il proprio computer e non uno generico che va bene per tutti.

Esempio pratico

Attualmente se voglio installare un programma o una libreria su un sistema GNU/Linux le uniche cose di cui mi devo preoccupare è decidere quale programma mi serve, al resto (download, istallazione e configurazione) ci pensa il gestore dei pacchetti.

Oggi ho comprato un bel DVD contenente una delle mie opere preferite “La forza del destino” di Giuseppe Verdi, logicamente dopo aver speso un sacco di soldi vorrei farmi un bel Backup del disco, devo trovare un programma che mi permetta di farlo. Prima di tutto apro il gestore dei pacchetti che sul mio sistema (Kubuntu) è Adept (interfaccia grafica di dpkg-apt)

Il gestore dei pacchetti mi permette due tipi di visualizzazioni: il software disposto per categorie (come nel menù di sistema) oppure in ordine alfabetico, scelgo per categorie così posso trovare più facilmente il mio programma

Tramite la casella cerca trovo il software che mi interessa, in questo caso è k9copy (purtroppo ancora le descrizioni dei programmi sono ancora in inglese, solo le descrizioni) che mi permette di fare un backup di un film DVD 9GB su un supporto da 4.7GB, del tutto simile a DVDShrink esistente sui sistemi Microsoft Windows:

Seleziono e clicco su “Applica le modifiche” e attendo il download dei 5 MB necessari

Al termine del download il gestore provvederà ad installare e a configurare il programma appena scaricato:

Appena completata l’installazione il programma sarà subito disponibile nel menù di sistema sotto la categoria Multimedia, stessa catalogazione del gestore dei pacchetti:

Ecco k9copy in azione:

Il programma è totalmente in italiano e rispecchia la descrizione contenuta nel gestore dei pacchetti.

Successivamente mi accorgo che nel trascrivere su disco un vecchio backup di un DVD fatto con Clone CD non mi viene riconosciuta l’immagine. Come al solito apro il gestore dei pacchetti (stavolta con l’altra visualizzazione) e cerco Clone CD e trovo la mia libreria.

Dopo aver cliccato su Applica modifiche come al solito verrà scaricata, installata e configurata la libreria. Ad esempio sarà usata come: plug-in nel programma di masterizzazione, come un normale programma se dispone di un’interfaccia grafica, oppure, dalla linea di comando.

Conclusioni

In questo articolo ho cercato di portare a conoscenza i grossi passi avanti fatti dalle distribuzioni GNU/Linux riguardante l’installazione del software. Fino a poco tempo fa per un nuovo utente riuscire ad installare un software, senza troppe preoccupazioni, era quasi impossibile, infatti, ancora oggi si pensa che per installare i programmi sui sistemi Linux sia sempre necessario compilare i sorgenti e risolvere le dipendenze, attualmente sulla maggior parte delle distribuzioni tutto il software che si scarica è già precompilato e le dipendenze vengono risolte in automatico. Esistono distribuzioni come Gentoo che ottimizzano il software per l’hardware in uso compilando il codice sorgente del programma prima di installarlo.

Infine vorrei fare un’osservazione prima di concludere: attualmente sulla maggior parte dei sistemi GNU/Linux servono due clic per installare e usare qualsiasi tipo di software senza pagare nulla, cosa che non succede su altri sistemi.

Collegamenti utili

http://sourceforge.net/ Sito di riferimento per il mondo Open Source per il download dei sorgenti dei programmi.

http://www.kde-apps.org/ , sito in inglese che illustra le applicazioni disponibili per KDE, molto utile per i meno esperti, contenente recensioni suoi programmi disponibili.