78
The Debian GNU/Linux FAQ Autori della FAQ Debian versione 4.0.3, 26 June 2008 Estratto Questo documento risponde alle domande poste di frequente circa Debian GNU/Linux.

The Debian GNU/Linux FAQ - VilNetvilnet.it/docs/debian_linux_faq.pdfDebian GNU/Linux è il risultato di uno sforzo di volontari per creare un sistema operativo compatibile con Unix,

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

  • The Debian GNU/Linux FAQAutori della FAQ Debian

    versione 4.0.3, 26 June 2008

    Estratto

    Questo documento risponde alle domande poste di frequente circa Debian GNU/Linux.

  • Avviso di Copyright

    Copyright © 1996-2003 by Software in the Public Interest

    Permission is granted to make and distribute verbatim copies of this document provided thecopyright notice and this permission notice are preserved on all copies.

    Permission is granted to copy and distribute modified versions of this document under theconditions for verbatim copying, provided that the entire resulting derived work is distributedunder the terms of a permission notice identical to this one.

    Permission is granted to copy and distribute translations of this document into another lan-guage, under the above conditions for modified versions, except that this permission noticemay be included in translations approved by the Free Software Foundation instead of in theoriginal English.

    Traduzione italiana a cura di Hugh Hartmann e Claudio Cattazzo.

  • i

    Indice

    1 Definizioni e panoramica 1

    1.1 Cos’è Debian GNU/Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.2 OK, ora so che cos’è Debian. . . cos’è Linux?! . . . . . . . . . . . . . . . . . . . . . 2

    1.3 Cos’è questa nuova cosa, “Hurd”? . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.4 Qual è la differenza tra Debian GNU/Linux e altre distribuzioni Linux? Perchédovrei scegliere Debian piuttosto di qualche altra distribuzione? . . . . . . . . . . 3

    1.5 Come fa il progetto Debian ad adattarsi o confrontarsi con il progetto GNU dellaFree Software Foundation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.6 Come si pronuncia Debian e cosa significa questa parola? . . . . . . . . . . . . . . 4

    2 Ottenere ed installare Debian GNU/Linux 5

    2.1 Qual è la versione più recente di Debian? . . . . . . . . . . . . . . . . . . . . . . . 5

    2.2 Dove/come si possono trovare i dischi di installazione Debian? . . . . . . . . . . 5

    2.3 Come si fa ad installare Debian dai CD-ROM? . . . . . . . . . . . . . . . . . . . . 6

    2.4 Avendo un masterizzatore, ci sono delle immagini dei CD Debian disponibili daqualche parte? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2.5 Si può installare Debian da una serie di floppy disk? . . . . . . . . . . . . . . . . . 6

    2.6 È possibile ottenere ed installare Debian direttamente da un sito Internet remoto? 7

    3 Questioni di compatibilità 9

    3.1 Su quali architetture e/o sistemi hardware funziona Debian GNU/Linux? . . . . 9

    3.2 Com’è compatibile Debian con le altre distribuzioni Linux? . . . . . . . . . . . . . 10

    3.3 In che modo Debian è compatibile con altri sistemi Unix a livello di codicesorgente? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    3.4 Si possono usare i pacchetti debian (file “.deb”) sul proprio sistema Linux Re-dHat/Slackware/. . . ? Si possono usare i pacchetti RedHat (file “.rpm”) sulproprio sistema Debian GNU/Linux? . . . . . . . . . . . . . . . . . . . . . . . . . 11

  • INDICE ii

    3.5 Debian può avviare i miei vecchi programmi “a.out”? . . . . . . . . . . . . . . . . 11

    3.6 Debian è in grado di eseguire i miei vecchi programmi in libc5? . . . . . . . . . . 12

    3.7 Debian può essere usata per compilare programmi in libc5? . . . . . . . . . . . . 12

    3.8 Come dovrei installare un programma non-Debian? . . . . . . . . . . . . . . . . . 12

    3.9 Perché ottengo l’errore “Can’t find libX11.so.6” quando tento di eseguire foo? . 13

    3.10 Perché non posso compilare programmi che richiedono libtermcap? . . . . . . . . 13

    3.11 Perché non posso installare AccelX? . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    3.12 Perché le mie vecchie applicazioni Motif per XFree 2.1 vanno in crash? . . . . . . 14

    4 Software disponibile nel sistema Debian 15

    4.1 Quali tipi di applicazioni e software di sviluppo sono disponibili per DebianGNU/Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    4.2 Chi ha scritto tutto questo software? . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    4.3 Come si può ottenere una lista aggiornata dei programmi che sono statiimpacchettati per Debian? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    4.4 Cosa manca da Debian GNU/Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    4.5 Perché ricevo il messaggio “ld: cannot find -lfoo” quando compilo i programmi?Perché non ci sono i file libfoo.so nei pacchetto delle librerie Debian? . . . . . . . 16

    4.6 Debian supporta Java? (E come?) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    4.7 Come si può verificare che si sta usando un sistema Debian e che versione è? . . 17

    4.8 Come fa Debian a supportare lingue non-inglesi? . . . . . . . . . . . . . . . . . . . 17

    4.9 A proposito delle regole statunitensi sulla limitazione dell’esportazione? . . . . . 18

    4.10 Dov’è pine? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    5 Gli archivi FTP Debian 19

    5.1 Cosa sono tutte quelle directory negli archivi FTP Debian? . . . . . . . . . . . . . 19

    5.2 Quante distribuzioni Debian ci sono nella directory dists? . . . . . . . . . . . . 19

    5.3 Cosa sono tutti quei nomi come slink, potato, ecc.? . . . . . . . . . . . . . . . . . . 20

    5.3.1 Quali altri nomi in codice sono stati usati in passato? . . . . . . . . . . . . 20

    5.3.2 Da dove derivano questi nomi in codice? . . . . . . . . . . . . . . . . . . . 20

    5.4 A proposito di “frozen”? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    5.5 A proposito di “sid”? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    5.5.1 Note storiche su “sid” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

  • INDICE iii

    5.6 Cosa contiene la directory stable? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    5.7 Cosa contiene la directory testing? . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    5.8 Cosa contiene la directory unstable? . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    5.9 Cosa sono tutte quelle directory dentro a dists/stable/main? . . . . . . . . . 23

    5.10 Dov’è il codice sorgente? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    5.11 Cosa c’è nella directory pool? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    5.12 Cos’è “incoming”? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    6 Fondamenti sul sistema di gestione dei pacchetti Debian 25

    6.1 Cos’è un pacchetto Debian? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    6.2 Qual è il formato di un pacchetto binario Debian? . . . . . . . . . . . . . . . . . . 26

    6.3 Perché i nomi dei pacchetti Debian sono così lunghi? . . . . . . . . . . . . . . . . 26

    6.4 Cos’è un file di controllo Debian? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    6.5 Cos’è un conffile Debian? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    6.6 Cosa sono gli script preinst, postinst, prerm e postrm di Debian? . . . . . . . . . . 28

    6.7 Cosa sono i pacchetti Required, Important, Standard, Optional, o Extra? . . . . . . . 29

    6.8 Cos’è un pacchetto virtuale? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    6.9 Cosa significa dire che un pacchetto Dipende da, Raccomanda, Suggerisce, Va inconflitto con, Sostituisce o Fornisce un altro pacchetto? . . . . . . . . . . . . . . . . . 30

    6.10 Cosa significa Pre-Depends? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    6.11 Cosa significa sconosciuto, installa, rimuovi, elimina e mantieni nello stato di unpacchetto? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    6.12 Come mantengo un pacchetto? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    6.13 Come si installa un pacchetto sorgente? . . . . . . . . . . . . . . . . . . . . . . . . 33

    6.14 Come si compilano pacchetti binari da un pacchetto sorgente? . . . . . . . . . . . 33

    6.15 Come ci si crea pacchetti Debian da sé? . . . . . . . . . . . . . . . . . . . . . . . . 34

    7 Gli strumenti di gestione dei pacchetti Debian 35

    7.1 Quali programmi fornisce Debian per gestire i suoi pacchetti? . . . . . . . . . . . 35

    7.1.1 dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    7.1.2 dselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    7.1.3 dpkg-deb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    7.1.4 apt-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

  • INDICE iv

    7.1.5 dpkg-split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    7.2 Debian afferma di essere in grado di aggiornare un programma in esecuzione;come viene effettuato? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    7.3 Come posso sapere quali pacchetti sono già installati su un sistema Debian? . . . 40

    7.4 Come posso scoprire quale pacchetto ha prodotto un particolare file? . . . . . . . 40

    8 Mantenere il proprio sistema Debian aggiornato 41

    8.1 Come posso aggiornare la mia distribuzione Debian 1.3.1 (o precedente), basatasulla libc5, alla 2.0 (o successiva), basata sulla libc6? . . . . . . . . . . . . . . . . . 41

    8.2 Come posso mantenere il mio sistema Debian recente? . . . . . . . . . . . . . . . 42

    8.2.1 APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    8.2.2 dpkg-ftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    8.2.3 mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    8.2.4 dpkg-mountable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    8.3 Devo entrare in modalità singolo-utente per aggiornare un pacchetto? . . . . . . 44

    8.4 Devo tenere tutti questi file di archivio .deb sul mio disco? . . . . . . . . . . . . . 44

    8.5 Come posso tenere un log dei pacchetti che ho aggiunto al sistema? . . . . . . . . 45

    9 Debian e il kernel 47

    9.1 Posso installare e compilare un kernel senza alcun adattamento specifico perDebian? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    9.2 Quali strumenti fornisce Debian per costruire kernel personalizzati? . . . . . . . 47

    9.3 Come posso creare un floppy di avvio personalizzato? . . . . . . . . . . . . . . . 48

    9.4 Quali strumenti speciali fornisce Debian per lavorare con i moduli? . . . . . . . . 49

    9.5 Posso disinstallare con sicurezza un vecchio pacchetto kernel e, se sì, come? . . . 49

    10 Personalizzare la propria installazione di Debian GNU/Linux 51

    10.1 Come posso assicurarmi che tutti i programmi usino lo stesso formato carta? . . 51

    10.2 Come posso fornire accesso alle periferiche hardware senza compromettere lasicurezza? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    10.3 Come carico un font di console all’avvio nel modo Debian? . . . . . . . . . . . . . 51

    10.4 Come posso configurare i default di un’applicazione del programma X11? . . . . 52

    10.5 Ogni distribuzione sembra avere un metodo di avvio differente. Parlatemi diquello di Debian. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

  • INDICE v

    10.6 Sembra che Debian non usi rc.local per personalizzare il processo di avvio;che facilitazioni vengono fornite? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    10.7 Come si occupa il sistema di manutenzione dei pacchetti dei pacchetti checontengono file di configurazione per altri pacchetti? . . . . . . . . . . . . . . . . 53

    10.8 Come sovrascrivo un file installato da un pacchetto in modo che ne venga usatauna versione differente? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    10.9 Come posso avere il mio pacchetto generato localmente nella lista dei pacchettidisponibili che il sistema di gestione dei pacchetti conosce? . . . . . . . . . . . . . 55

    10.10Ad alcuni utenti piace mawk, ad altri piace gawk; ad alcuni piace vim, ad al-tri piace elvis; ad alcuni piace trn, ad altri piace tin; come supporta Debian lediversità? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    11 Ottenere supporto per Debian GNU/Linux 57

    11.1 Quale altra documentazione esiste su e per un sistema Debian? . . . . . . . . . . 57

    11.2 Ci sono risorse on-line dove discutere su Debian? . . . . . . . . . . . . . . . . . . 58

    11.2.1 Liste di messaggi (Mailing list) . . . . . . . . . . . . . . . . . . . . . . . . . 58

    11.2.2 Manutentori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    11.2.3 Gruppi di discussione (newsgroup) Usenet . . . . . . . . . . . . . . . . . . 59

    11.3 C’è un modo rapido per cercare informazioni su Debian GNU/Linux? . . . . . . 60

    11.4 Ci sono log di bachi conosciuti? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

    11.5 Come segnalo un baco in Debian? . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

    12 Contribuire al Progetto Debian 63

    12.1 Come posso diventare uno sviluppatore di software Debian? . . . . . . . . . . . . 63

    12.2 Come posso fornire risorse al progetto Debian? . . . . . . . . . . . . . . . . . . . . 63

    12.3 Come posso contribuire finanziariamente al progetto Debian? . . . . . . . . . . . 64

    12.3.1 Software in the Public Interest . . . . . . . . . . . . . . . . . . . . . . . . . 64

    12.3.2 Free Software Foundation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    13 Redistribuire Debian GNU/Linux come prodotto commerciale 65

    13.1 Posso creare e vendere CD Debian? . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    13.2 Debian può essere impacchettata con software non-libero? . . . . . . . . . . . . . 65

    13.3 Sto creando una speciale distribuzione Linux per un “mercato verticale”. Possousare Debian GNU/Linux come nucleo di un sistema Linux e aggiungere le mieapplicazioni su di esso? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

    13.4 Posso mettere il mio programma commerciale in un “pacchetto” Debiancosicché si possa installare senza fatica su ogni sistema Debian? . . . . . . . . . . 66

  • INDICE vi

    14 Cambiamenti aspettati nella prossima major release di Debian 67

    14.1 Aumento della sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    14.2 Supporto esteso per gli utenti non-inglesi . . . . . . . . . . . . . . . . . . . . . . . 67

    14.3 Più architetture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    14.4 Più kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

    15 Informazioni generali sulla FAQ 69

    15.1 Autori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    15.2 Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    15.3 Reperibilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    15.4 Formato del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

  • 1

    Capitolo 1

    Definizioni e panoramica

    1.1 Cos’è Debian GNU/Linux?

    Debian GNU/Linux è una particolare distribuzione del sistema operativo Linux e di numerosipacchetti funzionanti su di esso.

    Una volta, gli utenti potevano ottenere il kernel Linux da Internet o da qualche altra parte e locompilavano loro stessi. Poi, nello stesso modo, potevano ottenere il codice sorgente di molteapplicazioni, compilare i programmi e installarli nel proprio sistema. Per programmi com-plessi questo processo può essere non solo un dispendio di tempo, ma può anche comportaredegli errori. Per evitare questo, gli utenti spesso scelgono di ottenere il sistema operativo edi pacchetti delle applicazioni da uno dei distributori Linux. Quello che distingue i vari distri-butori Linux è il software, i protocolli ed i procedimenti usati per impacchettare, installare emonitorare i pacchetti applicativi sui sistemi degli utenti, abbinati a strumenti di installazionee manutenzione, documentazione ed altri servizi.

    Debian GNU/Linux è il risultato di uno sforzo di volontari per creare un sistema operativocompatibile con Unix, di alta qualità, libero, completato da un insieme di applicazioni. L’ideadi un sistema operativo Unix-like libero ha origine dal progetto GNU e molte applicazioni cherendono Debian GNU/Linux così utile sono state sviluppate dal progetto GNU.

    Per Debian, libero ha il significato dato dalla GNU (si veda Debian Free Software Guidelines(http://www.debian.org/social_contract#guidelines)). Quando parliamo di soft-ware libero, ci riferiamo alla libertà, non al prezzo. Software libero significa che si ha la libertàdi distribuire copie di software libero, che si riceve il codice sorgente o lo si può ottenere se losi desidera, che si può cambiare il software o usare parte di esso in nuovi programmi liberi; eche si sappia che si possono fare queste cose.

    Il Progetto Debian è stato creato da Ian Murdock nel 1993, inizialmente sotto la sponsorizzazio-ne del progetto GNU della Free Software Foundation. Oggi, gli sviluppatori Debian lo vedonocome un diretto discendente del progetto GNU.

    Debian GNU/Linux è:

    http://www.debian.org/social_contract#guidelines

  • Capitolo 1. Definizioni e panoramica 2

    • pienamente funzionale: Debian al momento include più di 18200 pacchetti software.Gli utenti possono selezionare quali pacchetti installare; Debian fornisce uno strumentoper questo. Si può cercare una lista e le descrizioni dei pacchetti che sono attualmentedisponibili su Debian su ognuno dei siti mirror (http://www.debian.org/distrib/ftplist) Debian.

    • libera da usare e ridistribuire: Non c’è un’iscrizione ad un’associazione od un pagamen-to richiesto per partecipare alla sua distribuzione e sviluppo. Tutti i pacchetti che sonoformalmente parte di Debian GNU/Linux sono liberamente redistribuibili, di solito sottoi termini specificati dalla GNU General Public License.

    Gli archivi FTP Debian contengono anche approssimativamente 560 pacchetti software(nelle sezioni non-free e contrib) che sono distribuibili sotto termini specifici inclusiin ogni pacchetto.

    • dinamica: Con circa 1060 volontari che contribuiscono costantemente ad un codice nuo-vo e migliorato, Debian si sta evolvendo rapidamente. Le nuove release sono pianificateper essere preparate ogni qualche mese e gli archivi FTP sono aggiornati giornalmente.

    Tuttavia anche se Debian GNU/Linux è software libero, rappresenta una base su cui possonoessere costruite distribuzioni di Linux dal valore aggiunto. Fornendo un sistema di base sicuroe pienamente funzionale, Debian fornisce agli utenti Linux una compatibilità crescente e per-mette ai creatori di distribuzioni Linux di eliminare il raddoppiamento degli sforzi e mette inevidenza le caratteristiche che rendono speciale la propria distribuzione. Si veda ‘Sto creandouna speciale distribuzione Linux per un “mercato verticale”. Posso usare Debian GNU/Linuxcome nucleo di un sistema Linux e aggiungere le mie applicazioni su di esso?’ a pagina 66 permaggiori informazioni.

    1.2 OK, ora so che cos’è Debian. . . cos’è Linux?!

    In breve, Linux è il kernel di un sistema operativo Unix-like. È stato originariamente progettatoper PC 386 (e superiori); ora è sotto sviluppo il passaggio ad altri sistemi, inclusi sistemi multi-processore. Linux è stato scritto da Linus Torvalds e molti altri informatici di tutto il mondo.

    Oltre al suo kernel, un sistema “Linux” di solito ha:

    • un file system che segue la Linux Filesystem Hierarchy Standard http://www.pathname.com/fhs/.

    • un vasto campo di utilità Unix, molte delle quali sono state sviluppate dal progetto GNUe dalla Free Software Foundation.

    La combinazione del kernel Linux, del file system, delle utilità della GNU e della FSF e dellealtre utilità è stata progettata per raggiungere la compatibilità con lo standard POSIX (IEEE1003.1); si veda ‘In che modo Debian è compatibile con altri sistemi Unix a livello di codicesorgente?’ a pagina 10.

    http://www.debian.org/distrib/ftplisthttp://www.debian.org/distrib/ftplisthttp://www.pathname.com/fhs/http://www.pathname.com/fhs/

  • Capitolo 1. Definizioni e panoramica 3

    Per ulteriori informazioni riguardanti Linux, si veda la Linux Information Sheet (ftp://ibiblio.org/pub/Linux/docs/HOWTO/INFO-SHEET) di Michael K. Johnson e laMeta-FAQ (ftp://ibiblio.org/pub/Linux/docs/HOWTO/META-FAQ).

    1.3 Cos’è questa nuova cosa, “Hurd”?

    L’Hurd è un insieme di servizi che funzionano sul microkernel Mach della GNU. Insiemecostituiscono il sistema di base per il sistema operativo GNU.

    Attualmente, Debian è disponibile solo per Linux, ma con Debian GNU/Hurd abbiamo inizia-to ad offrire l’Hurd anche come piattaforma di sviluppo, server e desktop. Comunque, DebianGNU/Hurd non è ancora stata rilasciata ufficialmente e non lo sarà per un po’ di tempo.

    Si veda http://www.gnu.org/software/hurd/ per maggiori informazioni riguar-do GNU/Hurd in generale, e http://www.debian.org/ports/hurd/ per ulterioriinformazioni su Debian GNU/Hurd.

    1.4 Qual è la differenza tra Debian GNU/Linux e altre distribuzioniLinux? Perché dovrei scegliere Debian piuttosto di qualche altradistribuzione?

    Queste caratteristiche chiave distinguono Debian dalle altre distribuzioni Linux:

    Il sistema di manutenzione dei pacchetti Debian: L’intero sistema, o qualsiasi sua compo-nente individuale, può essere aggiornata senza riformattare, senza perdere i propri filedi configurazione e (nella maggior parte dei casi) senza riavviare il sistema. La maggiorparte delle distribuzioni Linux disponibili attualmente hanno qualche tipo di sistema dimanutenzione dei pacchetti; il sistema di manutenzione dei pacchetti Debian è unicoe particolarmente robusto. (si veda ‘Fondamenti sul sistema di gestione dei pacchettiDebian’ a pagina 25)

    Sviluppo aperto: Mentre altre distribuzioni Linux sono sviluppate da singoli, gruppi piccoli,chiusi o venditori commerciali, Debian è l’unica distribuzione Linux che fin dall’inizioè stata sviluppata cooperativamente da molti individui attraverso Internet, nello stessospirito di Linux ed altro software libero.

    Più di 1060 volontari che mantengono i pacchetti stanno lavorando su più di 18200 pac-chetti migliorando Debian GNU/Linux. Gli sviluppatori Debian contribuiscono al pro-getto non solo scrivendo nuove applicazioni (nella maggior parte dei casi), ma impac-chettando software già esistente in accordo con gli standard del progetto, comunicandonotizie sui bachi agli sviluppatori e fornendo supporto agli utenti. Si vedano anche leinformazioni aggiuntive su come diventare un contributore su ‘Come posso diventareuno sviluppatore di software Debian?’ a pagina 63.

    ftp://ibiblio.org/pub/Linux/docs/HOWTO/INFO-SHEETftp://ibiblio.org/pub/Linux/docs/HOWTO/INFO-SHEETftp://ibiblio.org/pub/Linux/docs/HOWTO/META-FAQhttp://www.gnu.org/software/hurd/http://www.debian.org/ports/hurd/

  • Capitolo 1. Definizioni e panoramica 4

    Il Sistema di Tracciamento Bachi: La dispersione geografica degli sviluppatori Debian richie-de degli strumenti sofisticati ed una comunicazione rapida dei bachi e dei fissaggi peraccelerare lo sviluppo del sistema. Gli utenti sono incoraggiati a inviare i bachi in unostile formale, che sia rapidamente accessibile attraverso gli archivi WWW o via e-mail. Sivedano le informazioni aggiuntive in questa FAQ sulla gestione dei log dei bachi su ‘Cisono log di bachi conosciuti?’ a pagina 60.

    La Politica Debian: Debian ha un’esauriente specificazione dei propri standard di qualità,la Debian Policy. Questo documento definisce le qualità e gli standard a cui vengonomantenuti i pacchetti Debian.

    Per ulteriori informazioni su questo si veda la nostra pagina web circa le ragioni per scegliereDebian (http://www.debian.org/intro/why_debian).

    1.5 Come fa il progetto Debian ad adattarsi o confrontarsi con ilprogetto GNU della Free Software Foundation?

    Il sistema Debian è costruito sugli ideali del software libero prima campionato dalla Free Soft-ware Foundation (http://www.gnu.org/) ed in particolare da Richard Stallman (http://www.stallman.org/). Il potente sistema di strumenti per lo sviluppo, le utilità e leapplicazioni della FSF sono anche una parte chiave del sistema Debian.

    Il Progetto Debian è un’entità separata dalla FSF, comunque comunichiamo regolarmente ecooperiamo su vari progetti. La FSF ha richiesto esplicitamente di chiamare il nostro sistema“Debian GNU/Linux” e siamo felici di soddisfare questa richiesta.

    L’obiettivo a lunga scadenza della FSF è quello di sviluppare un nuovo sistema operativo chia-mato GNU basato su Hurd (http://www.gnu.org/software/hurd/). Debian sta lavo-rando con la FSF su questo sistema, chiamato Debian GNU/Hurd (http://www.debian.org/ports/hurd/).

    1.6 Come si pronuncia Debian e cosa significa questa parola?

    Il nome del progetto si pronuncia Deb’-ian, con una e breve in Deb e con un’enfasi sulla primasillaba. Questa parola è una contrazione dei nomi di Debra e Ian Murdock, che fondaronoil progetto. (I dizionari sembrano offrire alcune ambiguità sulla pronuncia di Ian (!), ma Ianpreferisce i’-an.)

    http://www.debian.org/intro/why_debianhttp://www.gnu.org/http://www.stallman.org/http://www.stallman.org/http://www.gnu.org/software/hurd/http://www.debian.org/ports/hurd/http://www.debian.org/ports/hurd/

  • 5

    Capitolo 2

    Ottenere ed installare DebianGNU/Linux

    2.1 Qual è la versione più recente di Debian?

    Attualmente ci sono tre versioni di Debian GNU/Linux:

    la release 4.0, a.k.a. la distribuzione ’stable’ Questo software è stabile e ben testato, cambia sevengono incorporati fissaggi di sicurezza e usabilità.

    la distribuzione ’testing’ Qui è dove vengono messi i pacchetti che saranno rilasciati come laprossima ’stable’; hanno subito alcuni test in unstable ma possono non essere ancoraadatti ad essere rilasciati. Questa distribuzione è aggiornata più frequentemente della’stable’, ma non più frequentemente della ’unstable’.

    la distribuzione ’unstable’ Questa è la versione attualmente sotto sviluppo; è aggiornata con-tinuamente. Si possono recuperare i pacchetti dall’archivio ’unstable’ (instabile) su ognisito FTP Debian e usarli per aggiornare il proprio sistema in ogni momento, ma nonbisogna aspettarsi che il sistema sia utilizzabile e/o stabile come prima - ecco perché èchiamata ’instabile’!

    Si veda ‘Quante distribuzioni Debian ci sono nella directory dists?’ a pagina 19 per maggioriinformazioni.

    2.2 Dove/come si possono trovare i dischi di installazione Debian?

    Si possono ottenere i dischi d’installazione scaricando i file appropriati da uno dei mirrorDebian (http://www.debian.org/mirror/list).

    I file del sistema di installazione sono separati in sottodirectory della directory dists/stable/main ed i nomi di queste sottodirectory corrispondono alla propria architettura in questo

    http://www.debian.org/mirror/list

  • Capitolo 2. Ottenere ed installare Debian GNU/Linux 6

    modo: disks-arch (arch è “i386”, “sparc”, ecc, si controlli il sito per una lista esatta). Inognuna di queste sottodirectory di architetture ci possono essere diverse directory, ognuna peruna versione del sistema di installazione e quello usato attualmente è nella directory ’current’(è un link simbolico).

    Si veda il file README.txt in quella directory per maggiori informazioni.

    2.3 Come si fa ad installare Debian dai CD-ROM?

    Linux supporta il file system ISO 9660 (CD-ROM) con le estensioni Rock Ridge (formalmen-te conosciuto come “High Sierra”). Diversi distributori (http://www.debian.org/CD/vendors/) forniscono Debian GNU/Linux in questo formato.

    Attenzione: Quando si installa da CD-ROM, non è solitamente una buona idea scegliere comemetodo di accesso di dselect il cdrom. Questo metodo è generalmente molto lento. I metodimountable e apt, per esempio, sono molto migliori per l’installazione da CD-ROM (si veda‘dpkg-mountable’ a pagina 44 e ‘APT’ a pagina 42).

    2.4 Avendo un masterizzatore, ci sono delle immagini dei CDDebian disponibili da qualche parte?

    Sì. Per fare in modo che i fornitori forniscano dischi di alta qualità, forniamo le Immaginiufficiali dei CD (http://cdimage.debian.org/).

    2.5 Si può installare Debian da una serie di floppy disk?

    Prima di tutto, un avvertimento: l’intera Debian GNU/Linux è troppo grande per essere in-stallata da un dispositivo di memorizzazione così piccolo come un floppy disk standard da1.44MB - si potrebbe trovare l’installazione da floppy disk un’esperienza non molto piacevole.

    Si copino i pacchetti Debian in floppy disk formattati. Tutti i formati DOS, “ext2” nativo diLinux o il formato “minix” saranno supportati; si deve solo dare il comando di montaggioappropriato per il floppy che si sta usando.

    Usare i floppy disk ha le seguenti complicazioni:

    • Nomi dei file in MS-DOS corti: Se si sta tentando di mettere pacchetti Debian in dischiformattati MS-DOS, si scoprirà che i loro nomi sono generalmente troppo lunghi e nonconformi alla limitazione 8.3 del nome del file in MS-DOS. Per ovviare a questo si do-vrebbero utilizzare dischi formattati VFAT, in quanto VFAT supporta nomi di file piùlunghi.

    http://www.debian.org/CD/vendors/http://www.debian.org/CD/vendors/http://cdimage.debian.org/

  • Capitolo 2. Ottenere ed installare Debian GNU/Linux 7

    • Grandi dimensioni dei file: Alcuni pacchetti sono più grandi di 1.44 MByte e non pos-sono stare in un singolo floppy disk. Per risolvere questo problema si usi lo strumentodpkg-split (si veda ‘dpkg-split’ a pagina 39), disponibile nella directory tools sui mirrorDebian (http://www.debian.org/mirror/list).

    Per poter leggere e scrivere su floppy disk è necessario avere il supporto per i floppy disknel kernel; la maggior parte dei kernel vengono forniti con il supporto per il drive floppy giàincluso al loro interno.

    Per montare un floppy disk sotto il punto di montaggio /floppy (una directory che dovrebbeessere stata creata durante l’installazione), si usi:

    • mount -t msdos /dev/fd0 /floppy/

    se il floppy disk è nel drive A: ed ha un file system MS-DOS,

    • mount -t msdos /dev/fd1 /floppy/

    se il floppy disk è nel drive B: ed ha un file system MS-DOS,

    • mount -t ext2 /dev/fd0 /floppy/

    se il floppy disk è nel drive A: ed ha un file system ext2 (ovvero un comune Linux).

    2.6 È possibile ottenere ed installare Debian direttamente da un sitoInternet remoto?

    Sì. Si può avviare il sistema di installazione Debian da una serie di file che si possono prelevaredal nostro sito FTP e dai suoi mirror.

    Si può scaricare una piccola immagine di CD, creare da essa un cd avviabile, installare daesso il sistema di base ed il resto dalla rete. Per maggiori informazioni si veda http://www.debian.org/CD/netinst/.

    Si possono anche scaricare dei file immagine di floppy disk ancora più piccoli, creare da essi deidischetti avviabili, avviare la procedura di installazione ed ottenere il resto di Debian dalla rete.Per maggiori informazioni si veda http://www.debian.org/distrib/floppyinst.

    http://www.debian.org/mirror/listhttp://www.debian.org/CD/netinst/http://www.debian.org/CD/netinst/http://www.debian.org/distrib/floppyinst

  • Capitolo 2. Ottenere ed installare Debian GNU/Linux 8

  • 9

    Capitolo 3

    Questioni di compatibilità

    3.1 Su quali architetture e/o sistemi hardware funziona DebianGNU/Linux?

    Debian GNU/Linux include il codice sorgente per tutti i programmi inclusi, così dovrebbefunzionare su tutti i sistemi che sono supportati dal kernel Linux; si veda la Linux FAQ (http://en.tldp.org/FAQ/Linux-FAQ/intro.html#DOES-LINUX-RUN-ON-MY-COMPUTER)per i dettagli.

    L’attuale release Debian GNU/Linux 4.0 contiene una distribuzione binaria completa per leseguenti architetture:

    i386: questa comprende i PC basati su processori Intel e compatibili, inclusi gli Intel 386, 486,Pentium, Pentium Pro, Pentium II (sia Klamath che Celeron) e Pentium III e la maggior partedei processori compatibili di AMD, Cyryx ed altri.

    m68k: questa comprende computer Amiga e Atari con processori Motorola 680x0 (con x>=2)con MMU.

    alpha: sistemi Alpha Compaq/Digital.

    sparc: questa comprende i sistemi SPARC della Sun e la maggior parte dei sistemi UltraSPARC.

    powerpc: questa comprende alcune macchine PowerPC IBM/Motorola, incluse le macchineCHRP, PoverMac e PReP.

    arm: macchine ARM e StrongARM.

    mips: sistemi MIPS big-endian della SGI, Indy e Indigo2; mipsel: macchine MIPS little-endian,Digital DECstations.

    hppa: macchine PA-RISC della Hewlett-Packard (712, C3000, L2000, A500).

    ia64: computer Intel IA-64 (“Itanium”).

    s390: sistemi mainframe IBM S/390.

    http://en.tldp.org/FAQ/Linux-FAQ/intro.html#DOES-LINUX-RUN-ON-MY-COMPUTERhttp://en.tldp.org/FAQ/Linux-FAQ/intro.html#DOES-LINUX-RUN-ON-MY-COMPUTER

  • Capitolo 3. Questioni di compatibilità 10

    Lo sviluppo di distribuzioni binarie di Debian per architetture Sparc64 (UltraSPARC nativo) èattualmente in corso.

    Per ulteriori informazioni su come fare il boot, partizionare il proprio drive, abilitare i dispositi-vi PCMCIA (PC Card) e per questioni simili si seguano le istruzioni date nel manuale di instal-lazione, che è disponibile dal nostro sito WWW su http://www.debian.org/releases/stable/installmanual.

    3.2 Com’è compatibile Debian con le altre distribuzioni Linux?

    Gli sviluppatori Debian comunicano con i produttori delle altre distribuzioni Linux per faredi tutto per mantenere la compatibilità binaria attraverso le distribuzioni. La maggior partedei prodotti commerciali per Linux funziona bene sotto Debian come sul sistema su cui è statacompilati.

    Debian GNU/Linux aderisce al Linux Filesystem Hierarchy Standard (http://www.pathname.com/fhs/) (Standard per la Gerarchia del Filesystem Linux). Comunque, c’è lapossibilità di interpretare alcune regole all’interno di questo standard, così ci possono esseredifferenze tra un sistema Debian e gli altri sistemi Linux.

    3.3 In che modo Debian è compatibile con altri sistemi Unix a livellodi codice sorgente?

    Per la maggior parte delle applicazioni il codice sorgente di Linux è compatibile con altri siste-mi Unix. Supporta quasi qualsiasi cosa che sia disponibile per i sistemi Unix basati su SystemV ed i sistemi liberi e commerciali derivati da BSD. Comunque nel mondo Unix una tale affer-mazione non ha quasi nessun valore perché non c’è modo di provarla. Nell’area di sviluppodel software è richiesta una completa compatibilità piuttosto della compatibilità nella “quasimaggioranza” dei casi. Così, anni fa, è sorta la necessità della presenza di standard e al giornod’oggi POSIX.1 (IEEE Standard 1003.1-1990) è uno dei maggiori standard per la compatibilitàdel codice sorgente nei sistemi operativi Unix-like.

    Linux si propone di aderire al POSIX.1, ma gli standard POSIX hanno un costo elevato e lacertificazione di POSIX.1 (e FIPS 151-2) è abbastanza costosa; questo crea molte difficoltà aglisviluppatori Linux a lavorare per una completa conformità a POSIX. Il costo della certificazionerende improbabile che Debian fornisca una certificazione di conformità ufficiale anche se hacompletamente superato la validation suite. (La validation suite è ora liberamente disponibile,così è previsto che più persone lavoreranno sui problemi di POSIX.1.)

    L’Unifix GmbH (Braunschweig, Germania) ha sviluppato un sistema Linux che è stato certifi-cato come conforme al FIPS 151-2 (un superset di POSIX.1). Questa tecnologia era disponibilenella distribuzione di Unifix chiamata Unifix Linux 2.0 e nel Linux-FT della Lasermoon.

    http://www.debian.org/releases/stable/installmanualhttp://www.debian.org/releases/stable/installmanualhttp://www.pathname.com/fhs/http://www.pathname.com/fhs/

  • Capitolo 3. Questioni di compatibilità 11

    3.4 Si possono usare i pacchetti debian (file “.deb”) sul proprio si-stema Linux RedHat/Slackware/. . . ? Si possono usare i pacchettiRedHat (file “.rpm”) sul proprio sistema Debian GNU/Linux?

    Differenti distribuzioni Linux usano differenti formati dei pacchetti e differenti programmi digestione dei pacchetti.

    Probabilmente si può: È disponibile un programma per spacchettare un pacchetto Debian al-l’interno di un sistema Linux in cui è stata installata una distribuzione ’straniera’, e ge-neralmente funzionerà, nel senso che quei file verranno spacchettati. Anche l’inverso èprobabilmente vero, cioè, un programma che apre un pacchetto RedHat o Slackware sudi un sistema basato su Debian GNU/Linux probabilmente riuscirà a spacchettare il pac-chetto e a mettere la maggior parte dei file nelle directory di destinazione appropriate.Questo è in gran parte una conseguenza dell’esistenza del (e spiccata aderenza al) LinuxFilesystem Hierarchy Standard.

    Probabilmente non si vuole: La maggior parte dei gestori dei pacchetti scrive alcuni file diamministrazione quando vengono usati per spacchettare un archivio. Questi file di am-ministrazione sono generalmente non standardizzati. Quindi, l’effetto di aprire un pac-chetto Debian su un sistema ’straniero’ avrà risultati imprevedibili (certamente non utili)sul gestore dei pacchetti su quel sistema. Similmente, le utilità di un’altra distribuzionepossono riuscire ad aprire i loro archivi su sistemi Debian, ma probabilmente causerannodei guasti al sistema di gestione dei pacchetti Debian al momento di aggiornare o rimuo-vere alcuni pacchetti, o anche semplicemente nel riportare esattamente che pacchetti sonopresenti sul sistema.

    Un metodo migliore: Il Linux File System Standard (e quindi Debian GNU/Linux) richiedeche le sottodirectory che si trovano sotto /usr/local/ siano interamente sottopostealla discrezione dell’utente. Quindi, gli utenti possono spacchettare pacchetti ’stranieri’dentro queste directory e poi possono gestire individualmente la loro configurazione,aggiornamento e rimozione.

    3.5 Debian può avviare i miei vecchi programmi “a.out”?

    Avete ancora un programma del genere? :-)

    Per eseguire un programma il cui binario è in formato a.out (i.e., QMAGIC o ZMAGIC),

    • Ci si assicuri che il proprio kernel abbia il supporto per a.out compilato alsuo interno, direttamente (CONFIG_BINFMT_AOUT=y) o come un modulo (CON-FIG_BINFMT_AOUT=m). (Il pacchetto kernel-image di Debian contiene il modulobinfmt_aout.)

    Se il proprio kernel ha il supporto dei binari a.out come modulo, ci si assicuri poi cheil modulo binfmt_aout sia caricato. Si può fare questo all’avvio aggiungendo la riga

  • Capitolo 3. Questioni di compatibilità 12

    binfmt_aout nel file /etc/modules. Lo si può fare da riga di comando eseguendoil comando insmod DIRNAME/binfmt_aout.o dove DIRNAME è il nome della direc-tory dove sono memorizzati i moduli che sono stati compilati per la versione del kernelche è ora in esecuzione. Su un sistema con la versione 2.2.17 del kernel, DIRNAME èprobabilmente /lib/modules/2.2.17/fs/.

    • Si installi il pacchetto libc4, che si può trovare in una delle release precedenti alla 2.0(perché in questo momento abbiamo rimosso il pacchetto). Si può vedere in un vecchioCD-ROM Debian (Debian 1.3.1 ha ancora questo pacchetto), o si veda ftp://archive.debian.org/debian-archive/ su Internet.

    • Se il programma che si vuole eseguire è un client X nel formato a.out, allora si installi ilpacchetto xcompat (si veda sotto per la disponibilità).

    Se si ha un’applicazione commerciale nel formato a.out, ora sarebbe il momento buono perchiedere l’invio dell’aggiornamento a ELF.

    3.6 Debian è in grado di eseguire i miei vecchi programmi in libc5?

    Sì. Basta installare le librerie libc5 richieste, dalla sezione oldlibs (contenente vecchipacchetti inclusi per la compatibilità con altre applicazioni).

    3.7 Debian può essere usata per compilare programmi in libc5?

    Sì. Si installino i pacchetti libc5-altdev e altgcc (dalla sezione oldlibs).Si possono trovare gli appropriati gcc e g++ compilati con libc5 nella directory/usr/i486-linuxlibc1/bin. Li si metta nella propria variabile $PATH per fare in modoche make e altri programmi li eseguano per primi.

    Se si ha bisogno di compilare dei client X basati su libc5, si installino i pacchetti xlib6 exlib6-altdev.

    Si faccia attenzione che l’ambiente basato su libc5 non è più pienamente supportato dagli altrinostri pacchetti.

    3.8 Come dovrei installare un programma non-Debian?

    I file sotto la directory /usr/local/ non sono sotto il controllo del sistema di gestione deipacchetti Debian. Quindi, è buona abitudine mettere il codice sorgente del proprio program-ma in /usr/local/src/. Per esempio, si potrebbe estrarre i file da un pacchetto che si chiama“foo.tar” dentro la directory /usr/local/src/foo. Dopo averli compilati, si mettano i filebinari in /usr/local/bin/, le librerie in /usr/local/lib/ e i file di configurazione in/usr/local/etc/.

    ftp://archive.debian.org/debian-archive/ftp://archive.debian.org/debian-archive/

  • Capitolo 3. Questioni di compatibilità 13

    Se i propri programmi e/o file devono essere realmente messi in altre directory, si potreb-be ancora memorizzarli in /usr/local/ e creare i link simbolici appropriati dalla locazionerichiesta alla loro locazione in /usr/local/, p.e., si potrebbe creare il link

    ln -s /usr/local/bin/foo /usr/bin/foo

    In ogni caso, se si ottiene un pacchetto il cui copyright permette la redistribuzione, si dovrebbeconsiderare di trasformarlo in un pacchetto Debian e caricarlo per il sistema Debian. Le lineeguida per iniziare a sviluppare un pacchetto sono incluse nel Debian Policy manual (si veda‘Quale altra documentazione esiste su e per un sistema Debian?’ a pagina 57).

    3.9 Perché ottengo l’errore “Can’t find libX11.so.6” quando tento dieseguire foo?

    Questo messaggio d’errore potrebbe significare che il programma è stato linkato con la versio-ne libc5 delle librerie X11. In questo caso è necessario installare il pacchetto xlib6, dallasezione oldlibs.

    Si possono ottenere messaggi d’errore simili che si riferiscono al file libXpm.so.4, in tal caso ènecessario installare la versione di libc5 della libreria XPM, dal pacchetto xpm4.7, anch’essonella sezione oldlibs.

    3.10 Perché non posso compilare programmi che richiedonolibtermcap?

    Debian usa il database terminfo e la libreria di interfaccia a terminale ncurses, piuttostodel database termcap e della libreria termcap. Gli utenti che stanno compilando dei pro-grammi che richiedono alcune conoscenze sulle interfacce dei terminali dovrebbero sostituirei riferimenti a libtermcap con i riferimenti a libncurses.

    Per supportare i file binari che sono già stati linkati con la libreria termcap e per i quali non siha il sorgente, Debian fornisce un pacchetto chiamato termcap-compat. Questo fornisce siala libtermcap.so.2 che /etc/termcap. Si installi questo pacchetto se il programma nonriesce ad avviarsi con il messaggio d’errore “can’t load library ’libtermcap.so.2”’, o reclama lamancanza del file /etc/termcap file.

    3.11 Perché non posso installare AccelX?

    AccelX usa la libreria termcap per l’installazione. Si veda ‘Perché non posso compilareprogrammi che richiedono libtermcap?’ in questa pagina sopra.

  • Capitolo 3. Questioni di compatibilità 14

    3.12 Perché le mie vecchie applicazioni Motif per XFree 2.1 vanno incrash?

    È necessario installare il pacchetto motifnls, che fornisce i file di configurazione di XFree-2.1necessari a permettere che le applicazioni Motif, compilate sotto XFree-2.1, possano funzionareanche sotto XFree-3.1.

    Senza questi file, alcune applicazioni Motif compilate su altre macchine (come Netscape) pos-sono andare in crash nel tentativo di copiare o incollare da o a un campo di testo, e si possonopresentare anche altri problemi.

  • 15

    Capitolo 4

    Software disponibile nel sistemaDebian

    4.1 Quali tipi di applicazioni e software di sviluppo sonodisponibili per Debian GNU/Linux?

    Come molte distribuzioni Linux, Debian GNU/Linux fornisce:

    • le maggiori applicazioni GNU per lo sviluppo del software, manipolazione dei file edelaborazione testi, inclusi gcc, g++, make, texinfo, Emacs, la shell Bash e numerose utilitàUnix aggiornate,

    • Perl, Python, Tcl/Tk e vari programmi correlati, moduli e librerie per ognuno di essi,

    • TeX (LaTeX) e Lyx, dvips, Ghostscript,

    • il Sistema X Window, che fornisce un’interfaccia grafica orientata alla rete per Linux edinnumerevoli applicazioni per X incluso GNOME,

    • una completa suite di applicazioni per la rete, inclusi server per protocolli Internet comeHTTP (WWW), FTP, NNTP (news), SMTP e POP (mail) e name server; fornisce anchebrowser web e strumenti per lo sviluppo.

    Sono inclusi nella distribuzione più di 18040 pacchetti che spaziano dai server e lettori per lenews al supporto per il suono, programmi per FAX, programmi per database e fogli di calcolo,programmi per l’elaborazione delle immagini, comunicazioni, rete e utilità per la posta elettro-nica, server Web e persino programmi ham-radio. Altre 560 suite di software sono disponibilicome pacchetti Debian, ma non fanno formalmente parte di Debian a causa di restrizioni dellelicenze.

  • Capitolo 4. Software disponibile nel sistema Debian 16

    4.2 Chi ha scritto tutto questo software?

    Per ogni pacchetto gli autori del programma (o dei programmi) sono menzionati nel file/usr/doc/PACKAGE/copyright, dove PACKAGE è da sostituire con il nome del pacchetto.

    I Manutentori che impacchettano questo software per il sistema Debian GNU/Linux sono elen-cati nel file di controllo Debian (si veda ‘Cos’è un file di controllo Debian?’ a pagina 27) che èfornito con ogni pacchetto.

    4.3 Come si può ottenere una lista aggiornata dei programmi chesono stati impacchettati per Debian?

    Una lista completa è disponibile in due parti:

    la lista dei pacchetti che possono essere distribuiti ovunque da ognuno dei mirror Debian(http://www.debian.org/distrib/ftplist), nel file indices/Maintainers.Quel file contiene i nomi dei pacchetti e i nomi e le e-mail dei rispettivi manutentori.

    la lista dei pacchetti che non possono essere esportati dagli Stati Uniti da ognuno dei mir-ror non-US Debian (http://www.debian.org/misc/README.non-US), nel fileindices-non-US/Maintainers. Quel file contiene i nomi dei pacchetti e i nomi ele e-mail dei rispettivi manutentori.

    L’interfaccia WWW ai pacchetti Debian (http://packages.debian.org/) riassumeconvenientemente i pacchetti in ognuna delle circa venti “sezioni” dell’archivio Debian.

    4.4 Cosa manca da Debian GNU/Linux?

    Esiste una lista di pacchetti che sono ancora da impacchettare per Debian, la Work-Needingand Prospective Packages list (http://www.debian.org/devel/wnpp/).

    Per maggiori dettagli sull’aggiunta di cose mancanti, si veda ‘Come posso diventare unosviluppatore di software Debian?’ a pagina 63.

    4.5 Perché ricevo il messaggio “ld: cannot find -lfoo” quando compi-lo i programmi? Perché non ci sono i file libfoo.so nei pacchettodelle librerie Debian?

    La Debian Policy richiede che un tale link simbolico (a libfoo.so.x.y.z o simile) sia posto in unpacchetto di sviluppo separato. Questi pacchetti di solito sono chiamati libfoo-dev o libfooX-dev (presumendo che il pacchetto libreria si chiami libfooX, e X sia un numero intero).

    http://www.debian.org/distrib/ftplisthttp://www.debian.org/misc/README.non-UShttp://packages.debian.org/http://www.debian.org/devel/wnpp/

  • Capitolo 4. Software disponibile nel sistema Debian 17

    4.6 Debian supporta Java? (E come?)

    Poiché il Java Development kit ufficiale della Sun Microsystems è software non-libero, non puòessere incluso nella Debian vera e propria. Comunque, sia il JDK che diverse implementazionilibere della tecnologia Java sono disponibili come pacchetti Debian. Si possono scrivere, faredebug ed eseguire programmi Java usando Debian.

    Il funzionamento di applet Java richiede un browser web con la capacità di riconoscerle edeseguirle. Diversi browser web disponibili in Debian, come Mozilla o Konqueror, supportano iplug-in Java che abilitano l’esecuzione di applet Java. Netscape Navigator, sebbene non-libero,è comunque disponibile come pacchetto Debian e può eseguire applet Java,

    Si faccia riferimento alla Java FAQ Debian (http://www.debian.org/doc/manuals/debian-java-faq/) per maggiori informazioni.

    4.7 Come si può verificare che si sta usando un sistema Debian e cheversione è?

    Per assicurarsi che il proprio sistema sia stato installato da una reale distribuzione di dischi dibase Debian si verifichi l’esistenza del file /etc/debian_version, che contiene una singolariga che fornisce il numero di versione della release, come definito dal pacchetto base-files.

    L’esistenza del programma dpkg mostra che si dovrebbe essere in grado di installare pacchettiDebian sul proprio sistema, ma siccome il programma è stato portato su molti altri sistemioperativi ed architetture, non è più un metodo fidato per determinare se è un sistema DebianGNU/Linux.

    Gli utenti dovrebbero comunque essere consci che il sistema Debian consiste di molte parti,ognuna delle quali può essere aggiornata (quasi) indipendentemente. Ogni “release” Debianè formata da un contenuto ben definito e invariato. Gli aggiornamenti sono disponibili sepa-ratamente. Per una descrizione su un’unica riga dello stato di installazione del pacchetto foo,si usi il comando dpkg --list foo. Per vedere la versione di tutti i pacchetti installati, siesegua:

    dpkg -l

    Per una descrizione più accurata, si usi:

    dpkg --status foo

    4.8 Come fa Debian a supportare lingue non-inglesi?

    • Debian GNU/Linux è distribuita con keymap per almeno due dozzine di tastiere e conutilità (nel pacchetto kbd) per installare, vedere e modificare le tabelle dei caratteri.

    L’installazione chiederà all’utente di specificare la tastiera che userà.

    http://www.debian.org/doc/manuals/debian-java-faq/http://www.debian.org/doc/manuals/debian-java-faq/

  • Capitolo 4. Software disponibile nel sistema Debian 18

    • Una vasta maggioranza del software impacchettato supporta interamente i caratteri non-US-ASCII usati in altri linguaggi Latin (p.e. ISO-8859-1 o ISO-8859-2) ed un certo numerodi programmi supporta linguaggi multi-byte come il giapponese o il cinese.

    • Correntemente è disponibile il supporto per le pagine di manuale nelle seguenti lingue:tedesco, spagnolo, finlandese, francese, ungherese, italiano, giapponese, coreano e polac-co attraverso i pacchetti manpages-LANG (dove LANG è il codice ISO a due lettere dellostato). Per accedere alla pagina di un manuale NLS, l’utente deve impostare la variabileLC_MESSAGES della shell alla stringa appropriata.

    Per esempio, nel caso delle pagine di manuale in lingua italiana, LC_MESSAGES deveessere impostato a ’italian’. Il programma man cercherà poi le pagine del manuale initaliano sotto la directory /usr/share/man/it/.

    4.9 A proposito delle regole statunitensi sulla limitazione dell’e-sportazione?

    Le leggi statunitensi pongono delle restrizioni sull’esportazione di articoli per la difesa, in-clusi alcuni tipi di software crittografici. PGP e ssh, assieme ad altri, appartengono a questacategoria.

    Per prevenire chiunque da rischi legali non necessari, alcuni pacchetti Debian GNU/Linuxsono disponibili solo da un sito non-US ftp://non-US.debian.org/debian-non-US/.Ci sono numerosi siti mirror anche fuori dagli Stati Uniti, si veda ftp://non-US.debian.org/debian-non-US/README.non-US per una lista completa.

    4.10 Dov’è pine?

    A causa della sua licenza restrittiva, è nell’area non-free. Inoltre, poiché la licenza non permettenemmeno ai binari modificati di essere distribuiti, si deve compilarlo da soli dai sorgenti e dallepatch Debian.

    Il nome del pacchetto dei sorgenti è pine. Si può usare il pacchetto pine-tracker per essereavvisati su quando sarà necessario aggiornare.

    Si noti che ci sono molti sostituti sia per pine che per pico, come mutt e nano, che si trovanonella sezione main.

    ftp://non-US.debian.org/debian-non-US/ftp://non-US.debian.org/debian-non-US/README.non-USftp://non-US.debian.org/debian-non-US/README.non-US

  • 19

    Capitolo 5

    Gli archivi FTP Debian

    5.1 Cosa sono tutte quelle directory negli archivi FTP Debian?

    Il software che è stato impacchettato per Debian GNU/Linux è disponibile in uno dei diversialberi di directory in ogni sito mirror Debian.

    La directory dists è l’abbreviazione di “distribuzioni” (distributions) ed è il percorsocanonico per accedere alle release (e pre-release) Debian attualmente disponibili.

    La directory pool contiene gli attuali pacchetti, si veda ‘Cosa c’è nella directory pool?’ apagina 24.

    Ci sono queste directory aggiuntive:

    /tools/: Utilità DOS per creare dischi di avvio, partizionare il proprio disco, comprime-re/decomprimere file e avviare Linux.

    /doc/: La documentazione di base di Debian, come la FAQ, le istruzioni del sistema disegnalazione dei bachi, ecc.

    /indices/: Il file dei Manutentori e i file override.

    /project/: per la maggior parte materiale solo per gli sviluppatori, come:

    project/experimental/: Questa directory contiene pacchetti e strumenti che sono ancorain via di sviluppo e sono ancora allo stadio alpha di controllo. Gli utenti non do-vrebbero usare i pacchetti provenienti da qui, perché possono essere pericolosi edannosi anche per le persone con più esperienza.

    5.2 Quante distribuzioni Debian ci sono nella directory dists?

    Normalmente ci sono tre distribuzioni, la distribuzione “stable” (stabile), la distribuzione “te-sting” (in test) e la distribuzione “unstable” (instabile). Qualche volta c’è anche la distribuzione“frozen” (congelata, si veda ‘A proposito di “frozen”?’ a pagina 21).

  • Capitolo 5. Gli archivi FTP Debian 20

    5.3 Cosa sono tutti quei nomi come slink, potato, ecc.?

    Sono solo “nomi in codice”. Quando una distribuzione Debian è in fase di sviluppo non haun numero di versione ma un nome in codice. Lo scopo di questi nomi in codice è di renderepiù semplice la creazione di mirror delle distribuzioni Debian (se una directory reale comeunstable cambia improvvisamente il nome in stable, una certa quantità di software dovrànecessariamente essere scaricata nuovamente).

    Attualmente, stable è un link simbolico a woody (ovvero Debian GNU/Linux 4.0) etesting è un link simbolico a sarge. Questo significa che woody è la distribuzioneattualmente stabile e che sarge è la distribuzione attualmente in testing.

    unstable è un link simbolico permanente a sid, dato che sid è sempre la distribuzioneinstabile (si veda ‘A proposito di “sid”?’ nella pagina successiva).

    5.3.1 Quali altri nomi in codice sono stati usati in passato?

    Altri nomi in codice che sono già stati usati sono: buzz per la release 1.1, rex per la release 1.2,bo per la release 1.3.x, hamm per la release 2.0, slink per la release 2.1 e potato per la release2.2.

    5.3.2 Da dove derivano questi nomi in codice?

    Finora sono stati presi dai nomi dei personaggi del film “Toy Story” della Pixar.

    • buzz (Buzz Lightyear) era l’astronauta,

    • rex era il tirannosauro,

    • bo (Bo Peep) era la bambina che si prese cura della pecora,

    • hamm era il salvadanaio a porcellino,

    • slink (Slinky Dog (R)) era il cane giocattolo,

    • potato era, ovviamente, Mr. Potato (R),

    • woody era il cowboy.

    • sarge era il sergente dell’Armata Verde,

    • etch era la lavagna giocattolo (Etch-a-Sketch (R)).

    • sid era il bambino vicino di casa che distruggeva i giocattoli.

  • Capitolo 5. Gli archivi FTP Debian 21

    5.4 A proposito di “frozen”?

    Quando la distribuzione “testing” è matura abbastanza, il responsabile della release inizia a’congelarla’. I normali ritardi di diffusione vengono aumentati per assicurare che il minornumero di bachi possibile da “unstable” entri in “testing”.

    Dopo un po’, la distribuzione “testing” diventa realmente ’frozen’ (congelata). Questo significache tutti i nuovi pacchetti da mettere in “testing” sono rimandati indietro, a meno che nonincludano fissaggi per bachi release-critical. La distribuzione “testing” può anche rimanere inuno stato di “congelamento profondo” durante i cosiddetti ’test cycles’ (cicli di test), quando ilrilascio è imminente.

    Teniamo una registrazione dei bachi nella distribuzione “testing” che possono impedire ad unpacchetto di essere rilasciato, o dei bachi che possono impedire il rilascio dell’intera release.Una volta che il numero dei bachi è più basso del valore massimo accettabile, la distribuzione“frozen” viene dichiarata “stable” e rilasciata con un numero di versione.

    Con ogni nuova release, la precedente distribuzione “stable” diventa obsoleta e viene sposta-ta in archivio. Per maggiori informazioni si veda l’archivio Debian (http://www.debian.org/distrib/archive).

    5.5 A proposito di “sid”?

    sid o unstable è il posto in cui la maggior parte dei pacchetti viene inizialmente caricata. Nonsarà mai direttamente rilasciata, perché i pacchetti che stanno per essere rilasciati dovrannoprima essere inclusi in testing, per poter essere rilasciati in stable più tardi. sid contiene pacchettisia per architetture rilasciate che non.

    Anche il nome “sid” proviene dal film d’animazione “Toy Story”: Sid era il bambino vicino dicasa che distruggeva i giocattoli :-)

    5.5.1 Note storiche su “sid”

    Quando l’attuale sid non esisteva, l’organizzazione del sito FTP aveva un problema principa-le: c’era l’assunto che quando un’architettura veniva creata nell’attuale unstable, sarebbe statarilasciata quando quella distribuzione diventava la nuova stable. Per molte architetture que-sto non è il caso, con il risultato che quelle directory dovevano essere mosse al momento delrilascio. Poco pratico, poiché lo spostamento avrebbe divorato grosse quantità di banda.

    Gli amministratori dell’archivio hanno evitato questo problema per diversi anni collocandoi binari delle architetture non ancora rilasciate in una directory speciale chiamata “sid”. Perquelle architetture non ancora rilasciate, al primo rilascio c’era un link da stable a sid e daquel momento in poi essa veniva creata all’interno dell’albero unstable di norma. Tutto ciò eramotivo di confusione per gli utenti.

    Con l’avvento dei pacchetti pools (letteralmente “vasche” - si veda ‘Cosa c’è nella directorypool?’ a pagina 24), i pacchetti binari cominciarono ad essere immagazzinati in una locazione

    http://www.debian.org/distrib/archivehttp://www.debian.org/distrib/archive

  • Capitolo 5. Gli archivi FTP Debian 22

    canonica nella “vasca”, indipendentemente dalla distribuzione, così il rilascio di una distribu-zione non determina più grande dispendio di banda sui mirror (c’è, ovviamente, un notevolegraduale consumo di banda durante la fase di sviluppo).

    5.6 Cosa contiene la directory stable?

    • stable/main/: Questa directory contiene i pacchetti che costituiscono formalmente larelease più recente del sistema Debian GNU/Linux.

    Tutti questi pacchetti sono conformi alle Debian Free Software Guidelines (http://www.debian.org/social_contract#guidelines) (Linee Guida del SoftwareLibero Debian) e sono tutti liberamente utilizzabili e distribuibili.

    • stable/non-free/: Questa directory contiene i pacchetti la cui distribuzione è ristretta inun modo tale da richiedere ai distributori delle cautele dovute ai loro requisiti specificidi copyright.

    Per esempio, alcuni pacchetti hanno licenze che ne vietano la distribuzione commerciale.Altri possono essere redistribuiti, ma sono di fatto shareware e non freeware. Le licenzedi ognuno di questi pacchetti devono essere studiate e possibilmente negoziate prima chetali pacchetti possano essere inclusi in qualsiasi redistribuzione (p.e., in un CD-ROM).

    • stable/contrib/: Questa directory contiene i pacchetti che sono DFSG-free e liberamentedistribuibili da soli, ma dipendono in qualche modo da un pacchetto che non è liberamentedistribuibile ed è quindi disponibile solo nella sezione non-free.

    5.7 Cosa contiene la directory testing?

    I pacchetti vengono inseriti nella directory ’testing’ dopo aver subito un periodo di test in un-stable. Devono essere sincronizzati in tutte le architetture per le quali sono stati compilati e nondevono mostrare dipendenze tali da renderli non installabili; devono inoltre avere meno bachirelease-critical delle versioni sotto test al momento. In questo modo, si auspica che ’testing’ siasempre vicina ad essere candidata al rilascio.

    Maggiori informazioni sullo stato del “testing” in generale e dei singoli pacchetti è disponibilesu http://www.debian.org/devel/testing

    5.8 Cosa contiene la directory unstable?

    La directory ’unstable’ contiene un’immagine del sistema correntemente in via di sviluppo.Gli utenti sono i benvenuti ad usare e testare questi pacchetti, ma sono avvisati riguardo illoro stato di preparazione. Il vantaggio di usare la distribuzione ’unstable’ è che si è sempreaggiornati con la più recente industria di software in GNU/Linux, ma se non funzionasse: vitoccherà tenere entrambe le parti :-)

    http://www.debian.org/social_contract#guidelineshttp://www.debian.org/social_contract#guidelineshttp://www.debian.org/devel/testing

  • Capitolo 5. Gli archivi FTP Debian 23

    In ’unstable’ ci sono anche le sottodirectory main, contrib e non-free, separate con lo stessocriterio adottato in ’stable’.

    5.9 Cosa sono tutte quelle directory dentro a dists/stable/main?

    All’interno dei maggiori alberi di directory (dists/stable/main,dists/stable/contrib, dists/stable/non-free e dists/unstable/main/,ecc.), i pacchetti binari risiedono in sottodirectory i cui nomi indicano l’architettura dei chipper i quali sono stati compilati:

    • binary-all/, per pacchetti che sono indipendenti dall’architettura. Questi includono, peresempio, script Perl o pura documentazione.

    • binary-i386/, per pacchetti che funzionano su macchine PC 80x86.

    • binary-m68k/, per pacchetti che funzionano su macchine basate su uno dei processoriMotorola 680x0. Attualmente questo è fatto principalmente per computer Atari e Amigae per alcune schede industriali standard basate su VME.

    • binary-sparc/, per pacchetti che funzionano su Sun SPARCStation.

    • binary-alpha/, per pacchetti che funzionano su macchine DEC Alpha.

    • binary-powerpc/, per pacchetti che funzionano su macchine PowerPC.

    • binary-arm/, per pacchetti che funzionano su macchine ARM.

    Si noti che gli attuali pacchetti binari per woody e release successive non risiedono più in questedirectory, ma nella directory pool al livello superiore. I file di indice (Packages e Packages.gz)sono stati tenuti, comunque, per compatibilità con il passato.

    Si veda ‘Su quali architetture e/o sistemi hardware funziona Debian GNU/Linux?’ a pagina 9per maggiori informazioni.

    5.10 Dov’è il codice sorgente?

    Il codice sorgente è incluso per qualsiasi cosa nel sistema Debian. Inoltre, i termini di licen-za della maggior parte dei programmi richiedono che il codice venga distribuito insieme aiprogrammi o che un’offerta di fornitura del codice sorgente li accompagni.

    Normalmente il codice sorgente viene distribuito nelle directory “source”, che sono in paralleloa tutte le directory dei binari specifici per l’architettura o più recentemente nella directory pool(si veda ‘Cosa c’è nella directory pool?’ nella pagina seguente). Per ottenere il codice sorgentesenza la necessità di essere familiari con la struttura dell’archivio FTP Debian, si provi uncomando come apt-get source nomedelmiopacchetto.

  • Capitolo 5. Gli archivi FTP Debian 24

    Alcuni pacchetti sono distribuiti solo come codice sorgente a causa delle restrizioni nelle lorolicenze. In particolare, uno di questi pacchetti è pine, si veda ‘Dov’è pine?’ a pagina 18 permaggiori informazioni.

    Il codice sorgente potrebbe essere disponibile o non esserlo per i pacchetti nelle directory“contrib” e “non-free”, che non sono formalmente parte del sistema Debian.

    5.11 Cosa c’è nella directory pool?

    Storicamente, i pacchetti erano tenuti nella sottodirectory di dists corrispondente alla distri-buzione di cui facevano parte. Questo causava vari problemi, come un grosso consumo dibanda dei mirror ogni volta che venivano fatti dei cambiamenti di grossa portata.

    Ora i pacchetti vengono tenuti in una grossa ’vasca’ (pool), strutturata in accordo con il no-me del pacchetto sorgente. Per rendere il tutto maneggevole, la vasca è suddivisa in sezioni(’main’, ’contrib’ e ’non-free’) e secondo la prima lettera del nome del pacchetto sorgente. Que-ste directory contengono diversi file: i binari per ciascuna architettura e i pacchetti sorgente dacui sono stati generati i pacchetti binari.

    Si può sapere dove ciascun pacchetto è situato eseguendo un comando come apt-cacheshowsrc nomedelmiopacchetto e vedendo la riga ’Directory:’. Per esempio, i pacchettiapache sono immagazzinati in pool/main/a/apache/. Poiché ci sono così tanti pacchettilib*, questi vengono trattati in maniera particolare: per esempio, i pacchetti libpaper sonoimmagazzinati in pool/main/libp/libpaper/.

    Le directory dists vengono ancora utilizzate per i file indice usati da programmi come apt.Inoltre, al momento della scrittura di questo documento, le vecchie distribuzioni non sono stateconvertite per usare le vasche, per cui si troveranno i percorsi contenenti distribuzioni comepotato o woody nel campo Filename dell’intestazione.

    Normalmente, non ci sarà da preoccuparsi di tutto questo, dato che apt e probabilmentedpkg-ftp (si veda ‘Come posso mantenere il mio sistema Debian recente?’ a pagina 42)gestiranno la cosa senza problemi.

    5.12 Cos’è “incoming”?

    Dopo che uno sviluppatore carica un pacchetto, questo resta per un po’ nella directory“incoming” prima che ne venga controllata la genuinità e che venga accettato nell’archivio.

    Di solito nessuno dovrebbe installare cose da questo posto. Comunque, in alcuni rari casidi emergenza, la directory incoming è disponibile su http://incoming.debian.org/. Sipossono scaricare i pacchetti manualmente, controllare la firma GPG e gli MD5sum nei file.changes e .dsc, e poi installarli.

    http://incoming.debian.org/

  • 25

    Capitolo 6

    Fondamenti sul sistema di gestione deipacchetti Debian

    6.1 Cos’è un pacchetto Debian?

    I pacchetti generalmente contengono tutti quei file necessari a implementare una serie dicomandi o funzionalità. Ci sono due tipi di pacchetti Debian:

    • Pacchetti binari, che contengono eseguibili, file di configurazione, pagine man/info, infor-mazioni sul copyright ed altra documentazione. Questi pacchetti sono distribuiti in unformato archivio specifico di Debian (si veda ‘Qual è il formato di un pacchetto binarioDebian?’ nella pagina successiva); sono solitamente caratterizzati dall’estensione ’.deb’.I pacchetti binari possono essere spacchettati usando l’utilità Debian dpkg; i dettaglivengono forniti nella sua pagina di manuale.

    • Pacchetti sorgente, che consistono in un file .dsc che descrive il pacchetto sorgente (inclu-si i nomi dei file seguenti), un file .orig.tar.gz che contiene il sorgente originale nonmodificato nel formato tar compresso con gzip e solitamente un file .diff.gz che con-tiene le modifiche specifiche di Debian fatte al sorgente originale. L’utilità dpkg-sourcepacchetta e spacchetta gli archivi sorgente Debian; i dettagli vengono forniti nella suapagina di manuale.

    L’installazione di software attraverso il sistema dei pacchetti usa “dipendenze” che vengonoprogettate con cura dai manutentori dei pacchetti. Queste dipendenze sono documentate nelfile control associato ad ogni pacchetto. Per esempio, il pacchetto contenente il compilatoreC della GNU (gcc) “dipende” dal pacchetto binutils che include il linker e l’assemblatore.Se un utente tentasse di installare gcc senza avere prima installato binutils, il sistema digestione dei pacchetti (dpkg) invierà un messaggio di errore avvertendo che necessita anche dibinutils, e fermerà l’installazione di gcc. (Comunque, questa funzione può essere superatadall’utente tenace, si veda dpkg(8).) Si veda di più su ‘Cosa significa dire che un pacchettoDipende da, Raccomanda, Suggerisce, Va in conflitto con, Sostituisce o Fornisce un altro pacchetto?’a pagina 30 sotto.

  • Capitolo 6. Fondamenti sul sistema di gestione dei pacchetti Debian 26

    Gli strumenti Debian per la gestione dei pacchetti possono essere usati per:

    • manipolare e gestire pacchetti o parti di pacchetti,

    • aiutare l’utente nella divisione di pacchetti che devono essere trasmessi attraverso mezzidi dimensioni limitate come i floppy disk,

    • aiutare gli sviluppatori nella costruzione degli archivi dei pacchetti e

    • aiutare gli utenti nell’installazione di pacchetti residenti su un sito FTP remoto.

    6.2 Qual è il formato di un pacchetto binario Debian?

    Un “pacchetto” Debian, od un file archivio Debian, contiene i file eseguibili, le librerie e ladocumentazione associati ad un gruppo o suite di programmi correlati. Normalmente, un filearchivio Debian ha un nome che termina in .deb.

    L’interno di questi pacchetti binari Debian è descritto nella pagina di manuale deb(5). Que-sto formato interno è soggetto a modifiche (tra una release maggiore di Debian GNU/Linux),quindi per favore si usi sempre dpkg-deb(1) per manipolare file .deb.

    6.3 Perché i nomi dei pacchetti Debian sono così lunghi?

    Il nome dei pacchetti binari Debian è conforme alla seguente convenzione:_-.deb

    Si noti che si suppone che foo sia il nome del pacchetto. Come verifica, si può conoscereil nome del pacchetto associato ad un particolare archivio Debian (file.deb) in uno di questimodi:

    • esaminando il file “Packages” nella directory dove era stato archiviato su un archivio FTPDebian. Questo file contiene una sezione che descrive ogni pacchetto; il primo campo inogni sezione è il nome formale del pacchetto.

    • utilizzando il comando dpkg --info foo_VVV-RRR.deb (dove VVV e RRR sono ri-spettivamente la versione e la revisione del pacchetto in questione). Questo mostra, trale altre cose, il nome del pacchetto corrispondente al file archivio spacchettato.

    La componente VVV è il numero di versione specificato dallo sviluppatore. Non ci sonostandard qui, per cui il numero di versione può avere formati differenti come “19990513” e“1.3.8pre1”.

    La componente RRR è il numero di revisione Debian e viene specificata dallo sviluppatoreDebian (o un singolo utente se sceglie di costruirsi il pacchetto da sé). Questo numero corri-sponde al livello di revisione del pacchetto Debian, quindi un nuovo livello di revisione signi-fica solitamente modifiche nel Makefile Debian (debian/rules), nel file di controllo Debian

  • Capitolo 6. Fondamenti sul sistema di gestione dei pacchetti Debian 27

    (debian/control), negli script di installazione o rimozione (debian/p*) oppure nei file diconfigurazione utilizzati con il pacchetto.

    6.4 Cos’è un file di controllo Debian?

    Le specifiche riguardanti il contenuto di un file di controllo Debian sono fornite nel “DebianPackaging manual”, capitolo 4, si veda ‘Quale altra documentazione esiste su e per un sistemaDebian?’ a pagina 57.

    Brevemente, un esempio di file di controllo è mostrato di seguito per il pacchetto Debian hello:

    Package: helloPriority: optionalSection: develInstalled-Size: 45Maintainer: Adam Heath Architecture: i386Version: 1.3-16Depends: libc6 (>= 2.1)Description: The classic greeting, and a good exampleThe GNU hello program produces a familiar, friendly greeting. Itallows nonprogrammers to use a classic computer science tool whichwould otherwise be unavailable to them..Seriously, though: this is an example of how to do a Debian package.It is the Debian version of the GNU Project’s ‘hello world’ program(which is itself an example for the GNU Project).

    Il campo Package fornisce il nome del pacchetto. Questo è il nome attraverso il quale il pac-chetto può essere manipolato con gli strumenti dei pacchetti ed è solitamente simile ma nonnecessariamente lo stesso rispetto alla prima componente della stringa nel nome dell’archivioDebian.

    Il campo Version fornisce sia il numero della versione dello sviluppatore, che (nell’ultima com-ponente) il livello di revisione del pacchetto Debian di questo programma, come spiegato in‘Perché i nomi dei pacchetti Debian sono così lunghi?’ a fronte.

    Il campo Architecture specifica il chip per il quale questo particolare binario è stato compilato.

    Il campo Depends fornisce una lista di pacchetti che devono essere installati per poter installarequesto pacchetto con successo.

    Installed-Size indica quanto spazio su disco occuperà il pacchetto installato. È progettatoper essere usato dai front-end di installazione per poter mostrare se c’è abbastanza spaziodisponibile su disco per installare il programma.

    La riga Section fornisce la sezione dove questo pacchetto Debian è archiviato presso i siti FTPDebian. Questo è il nome di una sottodirectory (all’interno di una delle directory principali, si

  • Capitolo 6. Fondamenti sul sistema di gestione dei pacchetti Debian 28

    veda ‘Cosa sono tutte quelle directory negli archivi FTP Debian?’ a pagina 19) dove è archiviatoil pacchetto.

    Priority indica quanto è importante questo pacchetto per l’installazione, così che i softwaresemi-intelligenti come dselect o apt possano ordinare il pacchetto dentro una categoria di pac-chetti opzionali già installati per esempio. Si veda ‘Cosa sono i pacchetti Required, Important,Standard, Optional, o Extra?’ a fronte.

    Il campo Maintainer fornisce l’indirizzo e-mail della persona che è attualmente responsabileper la manutenzione di questo pacchetto.

    Il campo Description fornisce un breve riassunto delle funzionalità del pacchetto.

    Per ulteriori informazioni riguardo tutti i campi possibili che può avere un pacchetto, si vedail Debian Packaging Manual, sezione 4., “Control files and their fields”.

    6.5 Cos’è un conffile Debian?

    Conffiles è una lista di file di configurazione (solitamente situata in /etc) che il sistema digestione dei pacchetti non sovrascriverà quando il pacchetto viene aggiornato. Questo assicurache i valori locali per il contenuto di questi file vengano conservati, ed è una caratteristicacritica che permette l’aggiornamento di pacchetti su un sistema in esecuzione.

    Per determinare esattamente quali file sono conservati durante un aggiornamento, si esegua:

    dpkg --status pacchetto

    E si guardi sotto “Conffiles:”.

    6.6 Cosa sono gli script preinst, postinst, prerm e postrm di Debian?

    Questi file sono script eseguibili che vengono automaticamente eseguiti prima o dopo che unpacchetto viene installato. Insieme ad un file chiamato control, tutti questi file sono partedella sezione “control” di un file Debian.

    I singoli file sono:

    preinst Questo script viene eseguito prima che il pacchetto venga spacchettato dall’archivioDebian (“.deb”). Molti script ’preinst’ interrompono i servizi per i pacchetti che devonoessere aggiornati fino a che la loro installazione o aggiornamento non sono completati (aseguito dell’esecuzione con successo dello script ’postinst’).

    postinst Questo script tipicamente completa ogni configurazione richiesta dal pacchetto foouna volta che foo è stato spacchettato dal suo archivio Debian (“.deb”). Spesso gli script’postinst’ richiedono all’utente degli input e/o lo avvertono che se accetta le impostazioni

  • Capitolo 6. Fondamenti sul sistema di gestione dei pacchetti Debian 29

    predefinite deve ricordarsi di tornare indietro e riconfigurare il pacchetto se la situazionelo richiede. Molti script ’postinst’ eseguono poi tutti i comandi necessari ad avviare oriavviare un servizio una volta che il pacchetto è stato installato o aggiornato.

    prerm Questo script tipicamente ferma tutti i demoni associati ad un pacchetto. Viene eseguitoprima della rimozione di file associati al pacchetto.

    postrm Questo script tipicamente modifica i collegamenti (link) od altri file associati a foo,e/o rimuove i file creati da quel pacchetto. (Si veda anche ‘Cos’è un pacchetto virtuale?’nella pagina successiva.)

    Attualmente tutti i file di controllo si possono trovare nella directory /var/lib/dpkg/info.I file attinenti al pacchetto foo iniziano con il nome “foo” ed hanno le estensioni “preinst”,“postinst”, ecc., a seconda della funzione. Il file foo.list nella stessa directory elenca tutti ifile installati con il pacchetto foo. (Si noti che la localizzazione di questi file è propria di dpkg;non ci si dovrebbe fare affidamento.)

    6.7 Cosa sono i pacchetti Required, Important, Standard, Optional, oExtra?

    Ad ogni pacchetto Debian viene assegnata una priorità dai manutentori della distribuzione,come aiuto al sistema di gestione dei pacchetti. Le priorità sono:

    • Required (Richiesto): pacchetti necessari al corretto funzionamento del sistema.

    Comprende tutti gli strumenti necessari alla riparazione di difetti di sistema. Non sirimuovano questi pacchetti o il proprio sistema potrebbe diventare completamente nonfunzionante e probabilmente non si riuscirebbe nemmeno ad usare dpkg per rimettere lecose a posto. I sistemi con solo i pacchetti Required sono probabilmente inutilizzabili, mahanno abbastanza funzionalità per permettere all’amministratore di sistema di avviareed installare altri programmi.

    • Important (Importante): pacchetti che si dovrebbero trovare su di un qualsiasi sistemasimile a Unix (Unix-like).

    Altri pacchetti necessari ad un corretto funzionamento del sistema, senza i quali nonsarebbe utilizzabile. Tra questi NON sono inclusi Emacs o X11 o TeX o qualsiasi altragrossa applicazione. Questi pacchetti costituiscono solo l’infrastruttura di base.

    • Standard: pacchetti comuni su qualsiasi sistema Linux, compreso un ragionevolmentepiccolo ma nemmeno troppo limitato sistema a caratteri.

    Questo è quello che viene installato di base se l’utente non seleziona nient’altro. Noninclude molte grosse applicazioni, ma include Emacs (che è più un pezzo di infrastrutturache un’applicazione) ed un ragionevole sottogruppo di TeX e LaTeX (se risulta possibilesenza X).

  • Capitolo 6. Fondamenti sul sistema di gestione dei pacchetti Debian 30

    • Optional (Opzionale): pacchetti che comprendono tutto quello che si può voler installaresenza nemmeno sapere cos’è, o se non si hanno delle necessità particolari.

    Comprende X11, una distribuzione completa di TeX e molte applicazioni.

    • Extra: pacchetti che o entrano in conflitto con altri di priorità più alta, probabilmente utilise già si sa a cosa servono, oppure hanno requisiti speciali che li rendono non adatti come“Optional”.

    6.8 Cos’è un pacchetto virtuale?

    Un pacchetto virtuale è un nome generico che si applica ad ognuno di un gruppo di pacchetti,che fornisce simili funzionalità di base. Per esempio, entrambi i programmi tin e trn sononews reader, e dovrebbero quindi soddisfare qualsiasi dipendenza di un programma che ri-chiede un news reader su di un sistema per poter lavorare o essere utile. Si dice quindi cheentrambi forniscono il “pacchetto virtuale” chiamato news-reader.

    Similmente, smail e sendmail forniscono entrambi la funzionalità di agente di trasportoposta (mail transport agent). Si dice quindi che fornisco il pacchetto virtuale “mail transportagent”. Se uno dei due è installato, allora ogni pacchetto che dipende dall’installazione di unmail-transport-agent vedrà le proprie dipendenze soddisfatte dall’esistenza di questopacchetto virtuale.

    Debian fornisce un meccanismo che, se più di un pacchetto che fornisce lo stesso pacchetto vir-tuale è installato su di un sistema, allora l’amministratore di sistema può impostarne uno comepacchetto preferito. Il relativo comando è update-alternatives, ed è maggiormente de-scritto su ‘Ad alcuni utenti piace mawk, ad altri piace gawk; ad alcuni piace vim, ad altri piaceelvis; ad alcuni piace trn, ad altri piace tin; come supporta Debian le diversità?’ a pagina 55.

    6.9 Cosa significa dire che un pacchetto Dipende da, Raccomanda,Suggerisce, Va in conflitto con, Sostituisce o Fornisce un altropacchetto?

    Il sistema dei pacchetti Debian ha una serie di “dipendenze” dei pacchetti che sono pensate perindicare (con un singolo termine) il livello con cui un determinato Programma A può operareindipendentemente dall’esistenza di un Programma B su un dato sistema:

    • Il pacchetto A dipende dal Pacchetto B se B deve essere assolutamente installato per ese-guire A. In alcuni casi, A dipende non solo da B, ma da una versione di B. In questo casola dipendenza dalla versione è solitamente un limite minore, nel senso che A dipende daqualsiasi versione di B più recente di quella specificata.

    • Il pacchetto A raccomanda il Pacchetto B se il manutentore del pacchetto giudica che lamaggior parte degli utenti non vorrebbe A senza le funzionalità fornite da B.

  • Capitolo 6. Fondamenti sul sistema di gestione dei pacchetti Debian 31

    • Il pacchetto A suggerisce il Pacchetto B se B contiene file attinenti alle funzioni di A (e chesolitamente le migliorano).

    • Il pacchetto A va in conflitto con il Pacchetto B quando A non è in grado di funzionare seB è installato sul sistema. Molto spesso i conflitti si hanno quando A contiene dei file cherappresentano dei miglioramenti di quelli in B. Spesso “va in conflitto” è combinato con“sostituisce”.

    • Il pacchetto A sostituisce il Pacchetto B quando i file installati da B vengono rimossi e (inalcuni casi) sovrascritti dai file di A.

    • Il pacchetto A fornisce il Pacchetto B quando tutti i file e le funzionalità di B sono incor-porate in A. Questo meccanismo permette agli utenti con limitato spazio su disco rigidodi avere solo la parte del pacchetto A realmente necessaria.

    Informazioni più dettagliate sull’utilizzo di ognuno di questi termini possono essere trovatenel Packaging manual e nel Policy manual.

    6.10 Cosa significa Pre-Depends?

    “Pre-Depends” è una dipendenza speciale. Con la maggior parte dei pacchetti, dpkg spac-chetterà il file di archivio (ovvero il suo file .deb) indipendentemente dal fatto che i file da cuidipende siano o meno sul sistema. Semplificando, spacchettare vuol dire che dpkg estrarrài file da installare dall’archivio e li metterà al loro posto. Se quei pacchetti dipendono dall’e-sistenza di qualche altro pacchetto sul sistema, dpkg si rifiuterà di completare l’installazione(eseguendo l’azione “configura”), finché gli altri pacchetti non saranno installati.

    Tuttavia, per alcuni pacchetti, dpkg si rifiuterà persino di spacchettarli finché certe dipendenzenon vengono risolte. Tali pacchetti si dice che “Pre-dipendono” dalla presenza di altri pacchet-ti. Il progetto Debian forniva questo meccanismo per supportare un aggiornamento sicuro disistemi dal formato a.out al formato ELF, dove l’ordine in cui i pacchetti venivano spacchet-tati era critico. Esistono altre situazioni di aggiornamenti estesi in cui questo metodo è utile,per esempio pacchetti con priorità richiesta e dipendenza da libC.

    Come sopra, informazioni più dettagliate al riguardo possono essere reperite nel Packagingmanual.

    6.11 Cosa significa sconosciuto, installa, rimuovi, elimina e mantieninello stato di un pacchetto?

    Queste etichette “voglio” indicano il volere dell’utente riguardo ad un pacchetto (come in-dicato dalle azioni dell’utente nella sezione “Seleziona” di dselect o dal richiamo direttodell’utente di dpkg).

    I loro significati sono:

  • Capitolo 6. Fondamenti sul sistema di gestione dei pacchetti Debian 32

    • sconosciuto - l’utente non ha mai indicato se vuole il pacchetto

    • installa - l’utente vuole il pacchetto installato od aggiornato

    • rimuovi - l’utente vuole che il pacchetto sia rimosso, ma non i file di configurazioneesistenti.

    • elimina - l’utente vuole il pacchetto completamente rimosso, compresi i file diconfigurazione.

    • mantieni - l’utente non vuole che il pacchetto sia processato, ovvero vuole mantenere laversione attuale con lo stato corrente, qualunque essi siano.

    6.12 Come mantengo un pacchetto?

    Esistono due maniere per mantenere (hold) pacchetti, con dpkg o con dselect.

    Con dpkg, si deve solo esportare la lista delle selezioni dei pacchetti con:

    dpkg --get-selections \* > selections.txt

    Poi modificare il file risultante selections.txt, modificare la riga contenente il pacchettoche si desidera mantenere, p.e. libc6, da questo:

    libc6 install

    a questo:

    libc6 hold

    Salvare il file e ricaricarlo dentro il database di dpkg con:

    dpkg --set-selections < selections.txt

    Con dselect, si deve solo entrare nella schermata [S]eleziona ([S]elect, trovare il pacchetto chesi desidera mantenere al suo stato attuale e premere il tasto ’=’ (o ’H’). Le modifiche diverrannoattive immediatamente dopo che si è usciti dalla schermata [S]eleziona.

  • Capitolo 6. Fondamenti sul sistema di gestione dei pacchetti Debian 33

    6.13 Come si installa un pacchetto sorgente?

    I pacchetti sorgente Debian non possono realmente venire “installati”, vengono solospacchettati in qualsiasi directory si voglia per compilare i pacchetti binari che producono.

    I pacchetti sorgente sono distribuiti sulla maggior parte dei mirror dove si possono ottenerei pacchetti binari. Se si imposta il proprio sources.list(5) di APT per includere le ri-ghe “deb-src” appropriate, si sarà in grado di scaricare facilmente qualsiasi pacchetto sorgenteeseguendo

    apt-get source foo

    Per aiutare nella reale compilazione del pacchetto sorgente, il pacchetto sorgente Debian for-nisce il cosiddetto meccanismo di d