Gestione Semplificata del Pacchetto

da Sheng Bao, <shengbao /at/ ieee.org>, giugno 2006 (documento #391). Tradotto in Italiano da Lucia Di Gaeta <lucialinux/at/hotmail.co.uk>

Premessa:

In molti consideano Linux come un semplice OS, ma a causa della gestione del suo pacchetto software, non è così semplice come Windows. Quando ho cominciato ad usarlo, ho provato a cercare files simili a setup.exe in Windows. Inoltre, quando usavo RPM, ero preoccupato per l'"inferno delle dipendenze" che mi richiedeva di installare altri pacchetti per soddisfare le dipendenze. Ora, grazie al lavoro eccellente di tanti entusiasti di risorse aperte, è possibile trovare una strada migliore dello stile CNR (click and run) di Windows per gestire i pacchetti software. Questo articolo vi introdurrà gli strumenti YUM ed APT-GET, per l'acquisizione del pacchetto software ed altri strumenti per lavorarci. Sarà anche menzionato il pacchetto gestionale per la distribuzione specifica.


 

Metodi di distribuzione dei Software in Linux

Ci sono generalmente due tipi di programmi in Linux, esecutivi binari e scripts. Piccoli scripts non hanno bisogno di essere installati per essere avviati. Gli scripts sono testi semplici, che cercano per i corrispettivi interpreti nel campo dei PATH. Distribuire piccoli scripts è molto facile, basta copiarli. Quindi in quest'articolo, software si riferisce a scripts complessi ed esecutivi binari.

Poichè la maggiorparte dei software Linux sono risorse- aperte, sono distribuiti come codici di risorsa. In generale, il codice di risorsa è contenuto in un archivio complesso tar.gz o tar.bz2 con lo script configure. Lo script basilare configure raccoglie le informazioni del sistema, quali librerie e files principali necessari per compilare il programma, per generare un Makefile. Dopo di che il compilatore compilerà il codice di risorsa basandosi sulle regole base definite in Makefile. Generalmente, c'è una regola chiamata install che copia i files generati nella destinazione.

Il metodo del codice di risorsa è, per i novizi, il più difficile per installare i software su Linux. Quando ero un novizio, ho sempre incontrato problemi, quali insufficienza di librerie o mancanza di alcune path. Ed un novellino di solito non conosce il significato degli errori riportato. Ed ovviamente non possiede la conoscenza per risolvere tali errori. Per esempio, l'errore più grande che ho commesso è stato di estrarre il codice di risorsa su una partizione FAT32 in cui i links simbolici non erano supportati. Infatti, non è facile rimuovere il software se non ci sono regole per disinstallarlo in Makefile e se durante la configurazione non è stata specificata la destinazione per poter separare il programma dal resto del sistema. A causa di tutte queste difficoltà, alcune persone hanno creato dei pacchetti che contengono binari per l'installazione diretta.

Un famoso esempio di pacchetti binari sono RPM e DEB. Essi provvedono un sistema molto semlice per installare, aggiornare e disinstallare i pacchetti. Ma ci sono comunque dei problemi. Prendiamo ad esempio RPM. Il problema delle dipendenze è un incubo. A volte trovo così difficile soddisfare il controllo della dipendenza - mi ritrovo in un cerchio oppure ci sono troppi pacchetti che devono essere installati separatemente.

Quindi vogliamo qualcosa che possa sostenere ogni problema relativo nella gestione del pacchetto, dall'acquisizione ed installazione fino all'aggiornamento e rimozione. Linux è un OS altamente network-orientato. Basta solo connettere il computer ad Internet. Per poi richiedere ai managers del il proprio pacchetto di occuparsi di tutto. YUM ed APT-GET mi fanno pensare che la gestione del pacchetto in Linux sia più facile che in Windows. Quest'articolo si focalizzerà soprattutto sull'uso di YUM su Fedora Core piuttosto che su apt-get, in quanto yum su FC rappresenta una novità rispetto a apt-get, che è invece stato sviluppato qualche tempo fa.

Il resto dell'articolo è organizzato come segue: spiegherò prima il termine repositories, che sarà menzionato spesso in quest'articolo. Poi comincerò una sezione in cui parlerò di using YUM in Red Hat/Fedora Core. Introdurrò tre metodi per importare le repositories (collezioni di pacchetti): Installing a rpm package that contains everything, Editing /etc/yum.conf and importing the GPG key e Creating a new file in the directory /etc/yum.repos.d corresponding to the repository and importing its GPG key. Questa sezione conterrà anche informazioni su other repositories e YUM Plug-ins. Un example su come usare YUM sarà fornito alla fine di questa sezione. Dopo questa sezione introdurròhow to use APT-GET on Red Hat/Fedora Core. Ci sono molti strumenti GUIed YUM disponibili che possono aiutare a gestire i vostri pacchetti più facilmente. Due di questi sono discussi in GUIed YUM. E dopo un piccolo accenno a APT-GET on Debian and derivatives, c'è una dimostrazione di Synaptic. Package management tools provided by Fedora Core 5 saranno discussi alla fine.

 
 

Riguardo le Collezioni di Pacchetti

Quest'articolo vi introdurrà diversi metodi per usare gli strumenti della gestione del pacchetto per ottenere poi softwares da Internet e gestirli. Un luogo in cui poter ottenere dei pacchetti è definito repository. La vostra distribuzione probabilmente provvede delle collezioni di pacchetti. Ma potrebbero non contenere tutti i software disponibili che possono lavorare nella vostra distribuzione. Alcuni volontari amano "impacchettare" i software per la vostra distribuzione. Se volete usare un tale software, dovrete aggiungere quegli URLs dei volontari nella vostra lista della collezione. Inoltre, la vostra distribuzione potrebbe avere molte copie della collezione. Se volete incrementare la velocità di download, dovrete aggiungere manualmente una copia nella vostra lista della collezione.

 
 

Usare YUM su Red Hat/Fedora Core

Ho usato YUM solo su Fedora Core 2, 4 e 5. Le stesse distribuzioni hanno provveduto coniature del software YUM.
Ci sono generalmente 3 metodi per aggiungere le collezioni di pacchetti:

  • Installare un pacchetto rpm che contenga tutto
  • Modificare /etc/yum.conf ed importare la chiave GPG
  • Creare un nuovo file nell'indice /etc/yum.repos.d corrispondente alla collezione ed importando la sua chiave GPG
  •  
     

    Installare un pacchetto rpm che contenga tutto

    Voglio dimostrare qui come aggiungere due famose addizionali coniature di pacchetti, freshrpms and linva, attraverso un archivio rpm. Seguite solo i comandi validi per Fedora Core 5. Se state usando un distribuzione diversa, andate su ayo.freshrpms.net e rpm.livna.org per trovare i nuclei rpm corrispondenti alla vostra distribuzione. Sono localizzati ad indirizzi simili.
    Type
    rpm -ivh http://ayo.freshrpms.net/fedora/linux/5/i386/RPMS.freshrpms/freshrpms-re...
    rpm -ivh http://rpm.livna.org/fedora/5/i386/livna-release-5-4.noarch.rpm
    Il suddetto comando aggiungerà freshrpms e livna nella vostra lista di collezioni.

     
     

    Modificare /etc/yum.conf ed importare la chiave GPG

    Ci sono altri modi disponibili per aggiungere collezioni YUM. Uno è quello di aggiungere le informazioni della collezione a /etc/yum.conf. http://svn.rpmforge.net/svn/trunk/rpms/yum/ per esempio. Dovete solo aggiungere le informazioni sulla collezione provenienti dagli esempi al vostro /etc/yum.conf.

     
     

    Creare un nuovo file nell'indice /etc/yum.repos.d corrispondente
    alla collezione ed importare la sua chiave GPG

    Un altro modo è quello di creare i files appropriati nell'indice /etc/yum.repos.d. Tale indice contiene i seguenti files sul mio compiuter:
    [root@orioleQ yum.repos.d]# ls
    dries.repo fedora-legacy.repo livna.repo
    fedora-core.repo fedora-updates.repo livna.repo~
    fedora-development.repo fedora-updates-testing.repo livna-testing.repo
    fedora-extras-development.repo freshrpms.repo
    fedora-extras.repo livna-devel.repo

    Prendiamo dries.repo ad esempio. Create un file /etc/yum.repos.d/dries.repo
    ed inserite le seguenti linee in tale file:
    [dries]
    name=Extra Fedora rpms dries - $releasever - $basearch
    baseurl=http://ftp.belnet.be/packages/dries.ulyssis.org/fedora/linux/$releasever/$basearch/dries/RPMS/
    enabled=0
    gpgcheck=1
    Notate che la voce "enabled" è selezionata su "0" (off) in questo file in modo tale che le collezioni dries non entrino in conflitto con le vostre collezoni RPMForge per gli aggiornamenti automatici. Importate poi la chiave GPG key dalla collezione freshrpms.
    rpm --import http://freshrpms.net/packages/RPM-GPG-KEY.txt
    Ed eseguendo
    rpm --import http://apt.sw.be/dries/RPM-GPG-KEY.dries.txt
    importerete la chiave GPG per le collezioni dries.

     
     

    Altro

    Ci sono numerose collezioni mantenute volontariamente nel mondo. Basta cercarle e aggiungerle alla vostra lista di collezioni. Ecco una lista di alcuni pacchetti forgiati da cui potrete scegliere la risorsa appropriata per il vostro sistema.
    http://dl.atrpms.net/
    http://www.jpackage.org/repos.php
    http://newrpms.sunsite.dk/
    Leggete le istruzioni sulla loro pagina web per trovare il modo di aggiungerle. Di solito c'è un file che contiene "RPM-GPG-KEY" nel suo nome. Usate
    rpm --import the.RPM-GPG-KEY.file
    per importare la chiave GPG.

     
     

    Utili Plug-ins per YUM

    Ci sono numerosi plug-ins che possono migliorare la performance ed esperienza di YUM, quali yum-utils e yum-fastestmirror.
    Scrivete
    yum -y install yum-fastestmirror
    e
    yum -y install yum-utils
    per installarli. Vi aiuterrano ad usare YUM, es. cerando per la copia più veloce.

     
     

    Usare YUM per installare i pacchetti

    Usare YUM per installare un software è molto semplice. Vi risolverà ed installerà tutte le dipendenze. Ecco un esempio shell log:
    [root@orioleQ yum.repos.d]# yum -y install xine
    Loading "installonlyn" plugin
    Loading "kernel-module" plugin
    Loading "fedorakmod" plugin
    Setting up Install Process
    Setting up repositories
    dries [1/5]
    updates [2/5]
    core [3/5]
    freshrpms [4/5]
    extras [5/5]
    Reading repository metadata in from local files
    Parsing package install arguments
    Resolving Dependencies
    --> Populating transaction set with selected packages. Please wait.
    ---> Downloading header for xine to pack into transaction set.
    xine-0.99.4-4.fc5.rf.i386 100% |=========================| 30 kB 00:01
    ---> Package xine.i386 0:0.99.4-4.fc5.rf set to be updated
    --> Running transaction check
    --> Processing Dependency: libaa.so.1 for package: xine
    --> Processing Dependency: libxine.so.1 for package: xine
    --> Processing Dependency: xine-lib >= 1.0.0 for package: xine
    --> Restarting Dependency Resolution with new changes.
    --> Populating transaction set with selected packages. Please wait.
    ---> Downloading header for xine-lib to pack into transaction set.
    xine-lib-1.1.1-2.fc5.rf.i 100% |=========================| 41 kB 00:03
    ---> Package xine-lib.i386 0:1.1.1-2.fc5.rf set to be updated
    ---> Downloading header for aalib to pack into transaction set.
    ftp://fedora.bu.edu/fedora/extras/5/i386/aalib-1.4.0-0.rc5.7.i386.rpm: [Errno
    4] IOError: [Errno ftp error] timed out
    Trying other mirror.
    aalib-1.4.0-0.rc5.7.i386. 100% |=========================| 5.9 kB 00:00
    ---> Package aalib.i386 0:1.4.0-0.rc5.7 set to be updated
    --> Running transaction check
    --> Processing Dependency: libdvdcss for package: xine-lib
    --> Processing Dependency: libfame-0.9.so.1 for package: xine-lib
    --> Restarting Dependency Resolution with new changes.
    --> Populating transaction set with selected packages. Please wait.
    ---> Downloading header for libdvdcss to pack into transaction set.
    libdvdcss-1.2.9-2.fc5.rf. 100% |=========================| 5.0 kB 00:00
    ---> Package libdvdcss.i386 0:1.2.9-2.fc5.rf set to be updated
    ---> Downloading header for libfame to pack into transaction set.
    libfame-0.9.1-10.fc5.i386 100% |=========================| 5.2 kB 00:00
    ---> Package libfame.i386 0:0.9.1-10.fc5 set to be updated
    --> Running transaction check

    Dependencies Resolved

    =============================================================================
    Package Arch Version Repository Size
    =============================================================================
    Installing:
    xine i386 0.99.4-4.fc5.rf dries 2.3 M
    Installing for dependencies:
    aalib i386 1.4.0-0.rc5.7 extras 70 k
    libdvdcss i386 1.2.9-2.fc5.rf dries 44 k
    libfame i386 0.9.1-10.fc5 freshrpms 226 k
    xine-lib i386 1.1.1-2.fc5.rf dries 4.2 M

    Transaction Summary
    =============================================================================
    Install 5 Package(s)
    Update 0 Package(s)
    Remove 0 Package(s)
    Total download size: 6.8 M
    Downloading Packages:
    (1/5): xine-lib-1.1.1-2.f 100% |=========================| 4.2 MB 02:49
    (2/5): aalib-1.4.0-0.rc5. 100% |=========================| 70 kB 00:01
    (3/5): libdvdcss-1.2.9-2. 100% |=========================| 44 kB 00:01
    (4/5): libfame-0.9.1-10.f 100% |=========================| 226 kB 00:28
    (5/5): xine-0.99.4-4.fc5. 100% |=========================| 2.3 MB 01:43
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
    Installing: aalib ######################### [1/5]
    Installing: libfame ######################### [2/5]
    Installing: libdvdcss ######################### [3/5]
    Installing: xine-lib ######################### [4/5]
    Installing: xine ######################### [5/5]

    Installed: xine.i386 0:0.99.4-4.fc5.rf
    Dependency Installed: aalib.i386 0:1.4.0-0.rc5.7 libdvdcss.i386
    0:1.2.9-2.fc5.rf libfame.i386 0:0.9.1-10.fc5 xine-lib.i386 0:1.1.1-2.fc5.rf
    Complete!

     
     

    Usare APT-GET su Red Hat/Fedora Core

    Come noi tutti sappiamo, APT (advanced package tools) è un buon pacchetto per gestire i software, usato per la prima volta con Debian e con le distribuzioni di Linux basate su Debian (Ubuntu etc). Sul mio campo di lavoro ho installato sia Ubuntu 5.10 che Fedora Core 4, in quanto a volte posso solo installare software tramite apt-get ed a volte posso solo installarli via rpm. Infatti, molti software commerciali sono distribuiti in formato RPM quali NI LabVIEW, ed ufficialmente non ne sostengono altri. Così quando sono al lavoro uso Fedora Core 4. Tuttavia la convenienza di apt-get "mi attrae" frequentemente verso l'uso di Ubuntu. Per un po', ho sognato di usare APT-GET su Fedora Core.

    Ci sono molti posti disponibili per installare apt-get sulle vostre distribuzioni RH/FC. Potete installare il programma apt-get program prima attraverso gli archivi RPM. Uno luogo disponibile è http://apt.freshrpms.net/. Andate all'indice corrispondente alla vostra distribuzione e struttura del CPU. Scaricate tutti i files con il prefisso "apt-" ed installateli attraverso il comando rpm. Nel mio caso, ho usato le seguenti linee per installare il mio programma apt-get.
    rpm -ivh http://ftp.freshrpms.net/pub/fedora/linux/extras/4/i386/apt-0.5.15cnc7-6...
    rpm -ivh http://ftp.freshrpms.net/pub/fedora/linux/extras/4/i386/apt-devel-0.5.15...

    Dovreste poi configurare "apt". Usando un editore, aprite il file /etc/apt/sources.list . La configurazione in tale file non è la stessa che ho usato con Debian. Ci sono molte risorse apt per Fedora Core su Internet. Vi dimostrerò alcuni esempi.

    Andate su http://svn.rpmforge.net/svn/branches/rpms/matthias/apt/.
    Aprite il file sources.list corrispondente alla struttura del vostro CPU. Copiate le linee che corrispondono alla vostra distribuzione. Decommentatele e copiatele nel vostro file /etc/apt/sources.list. Per esempio, ho aggiunto questa linea alla mia /etc/apt/sources.list
    rpm http://ayo.freshrpms.net fedora/linux/2/i386 core updates freshrpms
    Aprite http://apt.kde-redhat.org/apt/sources.list.
    Copiate le linee ed aggiungetele alla vostra /etc/apt/sources.list. Avviate poi il comando "apt-get update" per ottenere la lista.

    Potete anche cercare su Internet per le risorse apt-get corrispondenti al vostro sistema ed aggiungetele nel vostro /etc/apt/sources.list come descritto.

     
     

    GUIed YUM

    voglio ora elencare due GUIed YUMs, kyum e Yumex.
    Per installarli eseguite
    yum -y install yumex
    yum -y install kyum
    Poichè sono facili da usare - basta cliccare e applicare - vi mostrerò solo degli sreenshots. Connettetevi a Internete per favore quando usate questi programmi.
    Kyum:



    YumEx:

     
     

    Usare apt-get su Debian e derivati

    Non voglio spendere troppe parole su quest'argomento che è alquanto vecchio. Per alcuni, questa è la ragione di usare Debian. Siccome abbiamo discusso dell'uso di apt-get su Fedora Core, non c'è bisogno di ulteriori elaborazioni.
    Ricordatevi solo di non avviare troppi pacchetti gestionali apt allo stesso tempo, oppure vi ritroverete con un errore che dice
    E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily
    unavailable)
    E: Unable to lock the administration directory (/var/lib/dpkg/), is another
    process using it?

    Ci sono molte risorse apt-get nel mondo. Ma la loro velocità è diversa. Alcune sono molto veloci, altre lente. Dovete solo aggiungerle alla vostra /etc/apt/sources.list. La maggior parte delle risorse provvederà il contenuto da aggiungere in /etc/apt/sources.list.

     
     

    Synaptic su Debian/Ubuntu

    APT-GET è un buon pacchetto per acquisire strumenti usati prima su Debian. Ma quando volete vedere i pacchetti come categorie e controllare il loro stato di installazione, Synaptic è una buona scelta. Quando volete installare un software, cliccate col tasto destro sul box quadrato sopra il nome del software e scegliete. "mark for reinstall", "mark for removal" e "mark for complete removal". Ecco lo screenshots.
    Mark for install:


    Handling
    installed packages:

     
     

    Il Package Manager di Fedora Core 5

    provvede uno strumento GUI facile da usare, Package Manager. E' facile da usare come kyum oppure YumEx. Il solo svantaggio è che potete manipolare solo software distribuiti con Fedora Core 5. Potete vederli e selezionarli in categorie.


    Ogni categoria ha dei pacchetti opzionali. Cliccate su "Optionalpackages".


    Potete cercare i pacchetti che volete.

     

    Discussioni

    Ho anche creato una webpage che include EE e software matematici usati nella mia ricerca ed i miei studi. Non esitate a contattarmi se avete alcuna opinione su questo argomento.

     

    Conclusioni

    Vorrei ringraziare l'editore Viktor Horvath, per la sua attenta revisione ed i suoi commenti sulla mia bozza.
    E grazie a You Xu, che è candidato come PhD su Computer Science in WUSTL dopo queste vacanze estive (2006). Ha rivisto la mia bozza e mi ha fornito tanti commenti.
    Vorrei anche ringraziare Ying Huang, un'eccellente
    giovane donna Chinese che si sta laureando in Software Engineering, Nanjing University. Mi ha incoraggiato e fatto sentire confidente di fronte alle difficoltà.

     

    Bibliografia URLs

    Questi links ed altri menzionati in questo articolo che sono stati usati quando l'ho scritto (Giugno 2006). Forse alcuni non sono attivi al momento

    L'autore:

    [Photo of the Author]

    Sheng Bao è uno studente universitario che si sta specializzando in EE in Cina. Apprezza molto Linux poichè può trovare degli strumenti perfetti per sostenere la sua ricerca ed i suoi studi. Oltre ad investigare diversi campi interdisciplinari, è un entusiasta sostenitore del trionfo di Linux in campo accademico.