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. Avviso di Copyright ------------------- Copyright (C) 1996-2003 by Software in the Public Interest Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this document into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. Traduzione italiana a cura di Hugh Hartmann e Claudio Cattazzo . ------------------------------------------------------------------------------- Contenuti --------- 1. Definizioni e panoramica 1.1. Cos'è Debian GNU/Linux? 1.2. OK, ora so che cos'è Debian... cos'è Linux?! 1.3. Cos'è questa nuova cosa, "Hurd"? 1.4. Qual è la differenza tra Debian GNU/Linux e altre distribuzioni Linux? Perché dovrei scegliere Debian piuttosto di qualche altra distribuzione? 1.5. Come fa il progetto Debian ad adattarsi o confrontarsi con il progetto GNU della Free Software Foundation? 1.6. Come si pronuncia Debian e cosa significa questa parola? 2. Ottenere ed installare Debian GNU/Linux 2.1. Qual è la versione più recente di Debian? 2.2. Dove/come si possono trovare i dischi di installazione Debian? 2.3. Come si fa ad installare Debian dai CD-ROM? 2.4. Avendo un masterizzatore, ci sono delle immagini dei CD Debian disponibili da qualche parte? 2.5. Si può installare Debian da una serie di floppy disk? 2.6. È possibile ottenere ed installare Debian direttamente da un sito Internet remoto? 3. Questioni di compatibilità 3.1. Su quali architetture e/o sistemi hardware funziona Debian GNU/Linux? 3.2. Com'è compatibile Debian con le altre distribuzioni Linux? 3.3. In che modo Debian è compatibile con altri sistemi Unix a livello di codice sorgente? 3.4. Si possono usare i pacchetti debian (file ".deb") sul proprio sistema Linux RedHat/Slackware/...? Si possono usare i pacchetti RedHat (file ".rpm") sul proprio sistema Debian GNU/Linux? 3.5. Debian può avviare i miei vecchi programmi "a.out"? 3.6. Debian è in grado di eseguire i miei vecchi programmi in libc5? 3.7. Debian può essere usata per compilare programmi in libc5? 3.8. Come dovrei installare un programma non-Debian? 3.9. Perché ottengo l'errore "Can't find libX11.so.6" quando tento di eseguire `foo'? 3.10. Perché non posso compilare programmi che richiedono libtermcap? 3.11. Perché non posso installare AccelX? 3.12. Perché le mie vecchie applicazioni Motif per XFree 2.1 vanno in crash? 4. Software disponibile nel sistema Debian 4.1. Quali tipi di applicazioni e software di sviluppo sono disponibili per Debian GNU/Linux? 4.2. Chi ha scritto tutto questo software? 4.3. Come si può ottenere una lista aggiornata dei programmi che sono stati impacchettati per Debian? 4.4. Cosa manca da Debian GNU/Linux? 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? 4.6. Debian supporta Java? (E come?) 4.7. Come si può verificare che si sta usando un sistema Debian e che versione è? 4.8. Come fa Debian a supportare lingue non-inglesi? 4.9. A proposito delle regole statunitensi sulla limitazione dell'esportazione? 4.10. Dov'è pine? 5. Gli archivi FTP Debian 5.1. Cosa sono tutte quelle directory negli archivi FTP Debian? 5.2. Quante distribuzioni Debian ci sono nella directory `dists'? 5.3. Cosa sono tutti quei nomi come slink, potato, ecc.? 5.3.1. Quali altri nomi in codice sono stati usati in passato? 5.3.2. Da dove derivano questi nomi in codice? 5.4. A proposito di "frozen"? 5.5. A proposito di "sid"? 5.5.1. Note storiche su "sid" 5.6. Cosa contiene la directory stable? 5.7. Cosa contiene la directory testing? 5.8. Cosa contiene la directory unstable? 5.9. Cosa sono tutte quelle directory dentro a `dists/stable/main'? 5.10. Dov'è il codice sorgente? 5.11. Cosa c'è nella directory `pool'? 5.12. Cos'è "incoming"? 6. Fondamenti sul sistema di gestione dei pacchetti Debian 6.1. Cos'è un pacchetto Debian? 6.2. Qual è il formato di un pacchetto binario Debian? 6.3. Perché i nomi dei pacchetti Debian sono così lunghi? 6.4. Cos'è un file di controllo Debian? 6.5. Cos'è un conffile Debian? 6.6. Cosa sono gli script preinst, postinst, prerm e postrm di Debian? 6.7. Cosa sono i pacchetti _Required_, _Important_, _Standard_, _Optional_, o _Extra_? 6.8. Cos'è un pacchetto virtuale? 6.9. Cosa significa dire che un pacchetto _Dipende_ da, _Raccomanda_, _Suggerisce_, _Va in conflitto_ con, _Sostituisce_ o _Fornisce_ un altro pacchetto? 6.10. Cosa significa Pre-Depends? 6.11. Cosa significa _sconosciuto_, _installa_, _rimuovi_, _elimina_ e _mantieni_ nello stato di un pacchetto? 6.12. Come mantengo un pacchetto? 6.13. Come si installa un pacchetto sorgente? 6.14. Come si compilano pacchetti binari da un pacchetto sorgente? 6.15. Come ci si crea pacchetti Debian da sé? 7. Gli strumenti di gestione dei pacchetti Debian 7.1. Quali programmi fornisce Debian per gestire i suoi pacchetti? 7.1.1. dpkg 7.1.2. dselect 7.1.3. dpkg-deb 7.1.4. apt-get 7.1.5. dpkg-split 7.2. Debian afferma di essere in grado di aggiornare un programma in esecuzione; come viene effettuato? 7.3. Come posso sapere quali pacchetti sono già installati su un sistema Debian? 7.4. Come posso scoprire quale pacchetto ha prodotto un particolare file? 8. Mantenere il proprio sistema Debian aggiornato 8.1. Come posso aggiornare la mia distribuzione Debian 1.3.1 (o precedente), basata sulla libc5, alla 2.0 (o successiva), basata sulla libc6? 8.2. Come posso mantenere il mio sistema Debian recente? 8.2.1. APT 8.2.2. dpkg-ftp 8.2.3. mirror 8.2.4. dpkg-mountable 8.3. Devo entrare in modalità singolo-utente per aggiornare un pacchetto? 8.4. Devo tenere tutti questi file di archivio .deb sul mio disco? 8.5. Come posso tenere un log dei pacchetti che ho aggiunto al sistema? 9. Debian e il kernel 9.1. Posso installare e compilare un kernel senza alcun adattamento specifico per Debian? 9.2. Quali strumenti fornisce Debian per costruire kernel personalizzati? 9.3. Come posso creare un floppy di avvio personalizzato? 9.4. Quali strumenti speciali fornisce Debian per lavorare con i moduli? 9.5. Posso disinstallare con sicurezza un vecchio pacchetto kernel e, se sì, come? 10. Personalizzare la propria installazione di Debian GNU/Linux 10.1. Come posso assicurarmi che tutti i programmi usino lo stesso formato carta? 10.2. Come posso fornire accesso alle periferiche hardware senza compromettere la sicurezza? 10.3. Come carico un font di console all'avvio nel modo Debian? 10.4. Come posso configurare i default di un'applicazione del programma X11? 10.5. Ogni distribuzione sembra avere un metodo di avvio differente. Parlatemi di quello di Debian. 10.6. Sembra che Debian non usi `rc.local' per personalizzare il processo di avvio; che facilitazioni vengono fornite? 10.7. Come si occupa il sistema di manutenzione dei pacchetti dei pacchetti che contengono file di configurazione per altri pacchetti? 10.8. Come sovrascrivo un file installato da un pacchetto in modo che ne venga usata una versione differente? 10.9. Come posso avere il mio pacchetto generato localmente nella lista dei pacchetti disponibili che il sistema di gestione dei pacchetti conosce? 10.10. Ad alcuni utenti piace mawk, ad altri piace gawk; ad alcuni piace vim, ad altri piace elvis; ad alcuni piace trn, ad altri piace tin; come supporta Debian le diversità? 11. Ottenere supporto per Debian GNU/Linux 11.1. Quale altra documentazione esiste su e per un sistema Debian? 11.2. Ci sono risorse on-line dove discutere su Debian? 11.2.1. Liste di messaggi (Mailing list) 11.2.2. Manutentori 11.2.3. Gruppi di discussione (newsgroup) Usenet 11.3. C'è un modo rapido per cercare informazioni su Debian GNU/Linux? 11.4. Ci sono log di bachi conosciuti? 11.5. Come segnalo un baco in Debian? 12. Contribuire al Progetto Debian 12.1. Come posso diventare uno sviluppatore di software Debian? 12.2. Come posso fornire risorse al progetto Debian? 12.3. Come posso contribuire finanziariamente al progetto Debian? 12.3.1. Software in the Public Interest 12.3.2. Free Software Foundation 13. Redistribuire Debian GNU/Linux come prodotto commerciale 13.1. Posso creare e vendere CD Debian? 13.2. Debian può essere impacchettata con software non-libero? 13.3. Sto creando una speciale distribuzione Linux per un "mercato verticale". Posso usare Debian GNU/Linux come nucleo di un sistema Linux e aggiungere le mie applicazioni su di esso? 13.4. Posso mettere il mio programma commerciale in un "pacchetto" Debian cosicché si possa installare senza fatica su ogni sistema Debian? 14. Cambiamenti aspettati nella prossima major release di Debian 14.1. Aumento della sicurezza 14.2. Supporto esteso per gli utenti non-inglesi 14.3. Più architetture 14.4. Più kernel 15. Informazioni generali sulla FAQ 15.1. Autori 15.2. Feedback 15.3. Reperibilità 15.4. Formato del documento ------------------------------------------------------------------------------- 1. Definizioni e panoramica --------------------------- 1.1. Cos'è Debian GNU/Linux? ---------------------------- Debian GNU/Linux è una particolare _distribuzione_ del sistema operativo Linux e di numerosi pacchetti funzionanti su di esso. Una volta, gli utenti potevano ottenere il kernel Linux da Internet o da qualche altra parte e lo compilavano loro stessi. Poi, nello stesso modo, potevano ottenere il codice sorgente di molte applicazioni, compilare i programmi e installarli nel proprio sistema. Per programmi complessi questo processo può essere non solo un dispendio di tempo, ma può anche comportare degli errori. Per evitare questo, gli utenti spesso scelgono di ottenere il sistema operativo ed i pacchetti delle applicazioni da uno dei distributori Linux. Quello che distingue i vari distributori Linux è il software, i protocolli ed i procedimenti usati per impacchettare, installare e monitorare i pacchetti applicativi sui sistemi degli utenti, abbinati a strumenti di installazione e manutenzione, documentazione ed altri servizi. Debian GNU/Linux è il risultato di uno sforzo di volontari per creare un sistema operativo compatibile con Unix, di alta qualità, libero, completato da un insieme di applicazioni. L'idea di un sistema operativo Unix-like libero ha origine dal progetto GNU e molte applicazioni che rendono 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 software 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 lo si desidera, che si può cambiare il software o usare parte di esso in nuovi programmi liberi; e che si sappia che si possono fare queste cose. Il Progetto Debian è stato creato da Ian Murdock nel 1993, inizialmente sotto la sponsorizzazione del progetto GNU della Free Software Foundation. Oggi, gli sviluppatori Debian lo vedono come un diretto discendente del progetto GNU. Debian GNU/Linux è: * _pienamente funzionale_: Debian al momento include più di 18200 pacchetti software. Gli utenti possono selezionare quali pacchetti installare; Debian fornisce uno strumento per questo. Si può cercare una lista e le descrizioni dei pacchetti che sono attualmente disponibili 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 pagamento richiesto per partecipare alla sua distribuzione e sviluppo. Tutti i pacchetti che sono formalmente parte di Debian GNU/Linux sono liberamente redistribuibili, di solito sotto i 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 inclusi in ogni pacchetto. * _dinamica_: Con circa 1060 volontari che contribuiscono costantemente ad un codice nuovo e migliorato, Debian si sta evolvendo rapidamente. Le nuove release sono pianificate per 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 possono essere costruite distribuzioni di Linux dal valore aggiunto. Fornendo un sistema di base sicuro e pienamente funzionale, Debian fornisce agli utenti Linux una compatibilità crescente e permette ai creatori di distribuzioni Linux di eliminare il raddoppiamento degli sforzi e mette in evidenza le caratteristiche che rendono speciale la propria distribuzione. Si veda Sezione 13.3, `Sto creando una speciale distribuzione Linux per un "mercato verticale". Posso usare Debian GNU/Linux come nucleo di un sistema Linux e aggiungere le mie applicazioni su di esso?' per maggiori informazioni. 1.2. OK, ora so che cos'è Debian... cos'è Linux?! ------------------------------------------------- In breve, Linux è il kernel di un sistema operativo Unix-like. È stato originariamente progettato per 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 GNU e dalla Free Software Foundation. La combinazione del kernel Linux, del file system, delle utilità della GNU e della FSF e delle altre utilità è stata progettata per raggiungere la compatibilità con lo standard POSIX (IEEE 1003.1); si veda Sezione 3.3, `In che modo Debian è compatibile con altri sistemi Unix a livello di codice sorgente?'. 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 la Meta-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. Insieme costituiscono il sistema di base per il sistema operativo GNU. Attualmente, Debian è disponibile solo per Linux, ma con Debian GNU/Hurd abbiamo iniziato ad offrire l'Hurd anche come piattaforma di sviluppo, server e desktop. Comunque, Debian GNU/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 riguardo GNU/Hurd in generale, e http://www.debian.org/ports/hurd/ per ulteriori informazioni su Debian GNU/Hurd. 1.4. Qual è la differenza tra Debian GNU/Linux e altre distribuzioni Linux? Perché dovrei scegliere Debian piuttosto di qualche altra distribuzione? ---------------------------------------------------------------------------- Queste caratteristiche chiave distinguono Debian dalle altre distribuzioni Linux: Il sistema di manutenzione dei pacchetti Debian: L'intero sistema, o qualsiasi sua componente individuale, può essere aggiornata senza riformattare, senza perdere i propri file di configurazione e (nella maggior parte dei casi) senza riavviare il sistema. La maggior parte delle distribuzioni Linux disponibili attualmente hanno qualche tipo di sistema di manutenzione dei pacchetti; il sistema di manutenzione dei pacchetti Debian è unico e particolarmente robusto. (si veda Capitolo 6, `Fondamenti sul sistema di gestione dei pacchetti Debian') 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 stesso spirito di Linux ed altro software libero. Più di 1060 volontari che mantengono i pacchetti stanno lavorando su più di 18200 pacchetti migliorando Debian GNU/Linux. Gli sviluppatori Debian contribuiscono al progetto non solo scrivendo nuove applicazioni (nella maggior parte dei casi), ma impacchettando software già esistente in accordo con gli standard del progetto, comunicando notizie sui bachi agli sviluppatori e fornendo supporto agli utenti. Si vedano anche le informazioni aggiuntive su come diventare un contributore su Sezione 12.1, `Come posso diventare uno sviluppatore di software Debian?'. Il Sistema di Tracciamento Bachi: La dispersione geografica degli sviluppatori Debian richiede degli strumenti sofisticati ed una comunicazione rapida dei bachi e dei fissaggi per accelerare lo sviluppo del sistema. Gli utenti sono incoraggiati a inviare i bachi in uno stile formale, che sia rapidamente accessibile attraverso gli archivi WWW o via e-mail. Si vedano le informazioni aggiuntive in questa FAQ sulla gestione dei log dei bachi su Sezione 11.4, `Ci sono log di bachi conosciuti?'. 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 vengono mantenuti i pacchetti Debian. Per ulteriori informazioni su questo si veda la nostra pagina web circa le ragioni per scegliere Debian (http://www.debian.org/intro/why_debian). 1.5. Come fa il progetto Debian ad adattarsi o confrontarsi con il progetto GNU della Free Software Foundation? ---------------------------------------------------------------------------- Il sistema Debian è costruito sugli ideali del software libero prima campionato dalla Free Software 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 le applicazioni della FSF sono anche una parte chiave del sistema Debian. Il Progetto Debian è un'entità separata dalla FSF, comunque comunichiamo regolarmente e cooperiamo 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 chiamato GNU basato su Hurd (http://www.gnu.org/software/hurd/). Debian sta lavorando 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 prima sillaba. Questa parola è una contrazione dei nomi di Debra e Ian Murdock, che fondarono il progetto. (I dizionari sembrano offrire alcune ambiguità sulla pronuncia di Ian (!), ma Ian preferisce i'-an.) ------------------------------------------------------------------------------- 2. Ottenere ed installare Debian GNU/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 se vengono incorporati fissaggi di sicurezza e usabilità. _la distribuzione 'testing'_ Qui è dove vengono messi i pacchetti che saranno rilasciati come la prossima 'stable'; hanno subito alcuni test in unstable ma possono non essere ancora adatti 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 continuamente. Si possono recuperare i pacchetti dall'archivio 'unstable' (instabile) su ogni sito FTP Debian e usarli per aggiornare il proprio sistema in ogni momento, ma non bisogna aspettarsi che il sistema sia utilizzabile e/o stabile come prima - ecco perché è chiamata '_instabile_'! Si veda Sezione 5.2, `Quante distribuzioni Debian ci sono nella directory `dists'?' per maggiori informazioni. 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 mirror Debian (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 modo: `disks-' ( è "i386", "sparc", ecc, si controlli il sito per una lista esatta). In ognuna di queste sottodirectory di architetture ci possono essere diverse directory, ognuna per una 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 (formalmente 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 come metodo di accesso di dselect il `cdrom'. Questo metodo è generalmente molto lento. I metodi `mountable' e `apt', per esempio, sono molto migliori per l'installazione da CD-ROM (si veda Sezione 8.2.4, `dpkg-mountable' e Sezione 8.2.1, `APT'). 2.4. Avendo un masterizzatore, ci sono delle immagini dei CD Debian disponibili da qualche parte? ---------------------------------------------------------------------------- Sì. Per fare in modo che i fornitori forniscano dischi di alta qualità, forniamo le Immagini ufficiali 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 installata da un dispositivo di memorizzazione così piccolo come un floppy disk standard da 1.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 di Linux o il formato "minix" saranno supportati; si deve solo dare il comando di montaggio appropriato 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 dischi formattati MS-DOS, si scoprirà che i loro nomi sono generalmente troppo lunghi e non conformi alla limitazione 8.3 del nome del file in MS-DOS. Per ovviare a questo si dovrebbero utilizzare dischi formattati VFAT, in quanto VFAT supporta nomi di file più lunghi. * Grandi dimensioni dei file: Alcuni pacchetti sono più grandi di 1.44 MByte e non possono stare in un singolo floppy disk. Per risolvere questo problema si usi lo strumento dpkg-split (si veda Sezione 7.1.5, `dpkg-split'), disponibile nella directory `tools' sui mirror Debian (http://www.debian.org/mirror/list). Per poter leggere e scrivere su floppy disk è necessario avere il supporto per i floppy disk nel 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 dovrebbe essere 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 sito Internet remoto? ---------------------------------------------------------------------------- Sì. Si può avviare il sistema di installazione Debian da una serie di file che si possono prelevare dal nostro sito FTP e dai suoi mirror. Si può scaricare una piccola immagine di CD, creare da essa un cd avviabile, installare da esso 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 dei dischetti 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. ------------------------------------------------------------------------------- 3. Questioni di compatibilità ----------------------------- 3.1. Su quali architetture e/o sistemi hardware funziona Debian GNU/Linux? -------------------------------------------------------------------------- Debian GNU/Linux include il codice sorgente per tutti i programmi inclusi, così dovrebbe funzionare 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 le seguenti 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 parte dei 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 macchine CHRP, 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. 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 dispositivi PCMCIA (PC Card) e per questioni simili si seguano le istruzioni date nel manuale di installazione, 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 fare di tutto per mantenere la compatibilità binaria attraverso le distribuzioni. La maggior parte dei prodotti commerciali per Linux funziona bene sotto Debian come sul sistema su cui è stata compilati. Debian GNU/Linux aderisce al Linux Filesystem Hierarchy Standard (http://www.pathname.com/fhs/) (Standard per la Gerarchia del Filesystem Linux). Comunque, c'è la possibilità di interpretare alcune regole all'interno di questo standard, così ci possono essere differenze tra un sistema Debian e gli altri sistemi Linux. 3.3. In che modo Debian è compatibile con altri sistemi Unix a livello di codice sorgente? ---------------------------------------------------------------------------- Per la maggior parte delle applicazioni il codice sorgente di Linux è compatibile con altri sistemi Unix. Supporta quasi qualsiasi cosa che sia disponibile per i sistemi Unix basati su System V ed i sistemi liberi e commerciali derivati da BSD. Comunque nel mondo Unix una tale affermazione non ha quasi nessun valore perché non c'è modo di provarla. Nell'area di sviluppo del software è richiesta una completa compatibilità piuttosto della compatibilità nella "quasi maggioranza" dei casi. Così, anni fa, è sorta la necessità della presenza di standard e al giorno d'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 la certificazione di POSIX.1 (e FIPS 151-2) è abbastanza costosa; questo crea molte difficoltà agli sviluppatori Linux a lavorare per una completa conformità a POSIX. Il costo della certificazione rende improbabile che Debian fornisca una certificazione di conformità ufficiale anche se ha completamente 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 certificato come conforme al FIPS 151-2 (un superset di POSIX.1). Questa tecnologia era disponibile nella distribuzione di Unifix chiamata Unifix Linux 2.0 e nel Linux-FT della Lasermoon. 3.4. Si possono usare i pacchetti debian (file ".deb") sul proprio sistema Linux RedHat/Slackware/...? Si possono usare i pacchetti RedHat (file ".rpm") sul proprio sistema Debian GNU/Linux? ---------------------------------------------------------------------------- Differenti distribuzioni Linux usano differenti formati dei pacchetti e differenti programmi di gestione dei pacchetti. _Probabilmente si può:_ È disponibile un programma per spacchettare un pacchetto Debian all'interno di un sistema Linux in cui è stata installata una distribuzione 'straniera', e generalmente funzionerà, nel senso che quei file verranno spacchettati. Anche l'inverso è probabilmente vero, cioè, un programma che apre un pacchetto RedHat o Slackware su di un sistema basato su Debian GNU/Linux probabilmente riuscirà a spacchettare il pacchetto 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) Linux Filesystem Hierarchy Standard. _Probabilmente non si vuole:_ La maggior parte dei gestori dei pacchetti scrive alcuni file di amministrazione quando vengono usati per spacchettare un archivio. Questi file di amministrazione sono generalmente non standardizzati. Quindi, l'effetto di aprire un pacchetto Debian su un sistema 'straniero' avrà risultati imprevedibili (certamente non utili) sul gestore dei pacchetti su quel sistema. Similmente, le utilità di un'altra distribuzione possono riuscire ad aprire i loro archivi su sistemi Debian, ma probabilmente causeranno dei guasti al sistema di gestione dei pacchetti Debian al momento di aggiornare o rimuovere alcuni pacchetti, o anche semplicemente nel riportare esattamente che pacchetti sono presenti sul sistema. _Un metodo migliore:_ Il Linux File System Standard (e quindi Debian GNU/Linux) richiede che le sottodirectory che si trovano sotto `/usr/local/' siano interamente sottoposte alla 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 al suo interno, direttamente (CONFIG_BINFMT_AOUT=y) o come un modulo (CONFIG_BINFMT_AOUT=m). (Il pacchetto kernel-image di Debian contiene il modulo `binfmt_aout'.) Se il proprio kernel ha il supporto dei binari `a.out' come modulo, ci si assicuri poi che il modulo `binfmt_aout' sia caricato. Si può fare questo all'avvio aggiungendo la riga `binfmt_aout' nel file `/etc/modules'. Lo si può fare da riga di comando eseguendo il comando `insmod DIRNAME/binfmt_aout.o' dove `DIRNAME' è il nome della directory dove sono memorizzati i moduli che sono stati compilati per la versione del kernel che è 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 vecchio CD-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 il pacchetto `xcompat' (si veda sotto per la disponibilità). Se si ha un'applicazione commerciale nel formato `a.out', ora sarebbe il momento buono per chiedere 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 vecchi pacchetti 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 modo che `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' e `xlib6-altdev'. Si faccia attenzione che l'ambiente basato su libc5 non è più pienamente supportato dagli altri nostri 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 dei pacchetti Debian. Quindi, è buona abitudine mettere il codice sorgente del proprio programma 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 file binari in `/usr/local/bin/', le librerie in `/usr/local/lib/' e i file di configurazione in `/usr/local/etc/'. Se i propri programmi e/o file devono essere realmente messi in altre directory, si potrebbe ancora memorizzarli in `/usr/local/' e creare i link simbolici appropriati dalla locazione richiesta 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 dovrebbe considerare di trasformarlo in un pacchetto Debian e caricarlo per il sistema Debian. Le linee guida per iniziare a sviluppare un pacchetto sono incluse nel Debian Policy manual (si veda Sezione 11.1, `Quale altra documentazione esiste su e per un sistema Debian?'). 3.9. Perché ottengo l'errore "Can't find libX11.so.6" quando tento di eseguire `foo'? ---------------------------------------------------------------------------- Questo messaggio d'errore potrebbe significare che il programma è stato linkato con la versione `libc5' delle librerie X11. In questo caso è necessario installare il pacchetto `xlib6', dalla sezione `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'esso nella sezione `oldlibs'. 3.10. Perché non posso compilare programmi che richiedono libtermcap? --------------------------------------------------------------------- Debian usa il database `terminfo' e la libreria di interfaccia a terminale `ncurses', piuttosto del database `termcap' e della libreria `termcap'. Gli utenti che stanno compilando dei programmi che richiedono alcune conoscenze sulle interfacce dei terminali dovrebbero sostituire i 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 si ha il sorgente, Debian fornisce un pacchetto chiamato `termcap-compat'. Questo fornisce sia la `libtermcap.so.2' che `/etc/termcap'. Si installi questo pacchetto se il programma non riesce ad avviarsi con il messaggio d'errore "can't load library 'libtermcap.so.2'", o reclama la mancanza del file `/etc/termcap' file. 3.11. Perché non posso installare AccelX? ----------------------------------------- AccelX usa la libreria `termcap' per l'installazione. Si veda Sezione 3.10, `Perché non posso compilare programmi che richiedono libtermcap?' sopra. 3.12. Perché le mie vecchie applicazioni Motif per XFree 2.1 vanno in crash? ---------------------------------------------------------------------------- È necessario installare il pacchetto `motifnls', che fornisce i file di configurazione di XFree-2.1 necessari a permettere che le applicazioni Motif, compilate sotto XFree-2.1, possano funzionare anche sotto XFree-3.1. Senza questi file, alcune applicazioni Motif compilate su altre macchine (come Netscape) possono andare in crash nel tentativo di copiare o incollare da o a un campo di testo, e si possono presentare anche altri problemi. ------------------------------------------------------------------------------- 4. Software disponibile nel sistema Debian ------------------------------------------ 4.1. Quali tipi di applicazioni e software di sviluppo sono disponibili per Debian GNU/Linux? ---------------------------------------------------------------------------- Come molte distribuzioni Linux, Debian GNU/Linux fornisce: * le maggiori applicazioni GNU per lo sviluppo del software, manipolazione dei file ed elaborazione 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 ed innumerevoli applicazioni per X incluso GNOME, * una completa suite di applicazioni per la rete, inclusi server per protocolli Internet come HTTP (WWW), FTP, NNTP (news), SMTP e POP (mail) e name server; fornisce anche browser web e strumenti per lo sviluppo. Sono inclusi nella distribuzione più di 18040 pacchetti che spaziano dai server e lettori per le news 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 elettronica, server Web e persino programmi ham-radio. Altre 560 suite di software sono disponibili come pacchetti Debian, ma non fanno formalmente parte di Debian a causa di restrizioni delle licenze. 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 elencati nel file di controllo Debian (si veda Sezione 6.4, `Cos'è un file di controllo Debian?') che è fornito con ogni pacchetto. 4.3. Come si può ottenere una lista aggiornata dei programmi che sono 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 mirror non-US Debian (http://www.debian.org/misc/README.non-US), nel file `indices-non-US/Maintainers'. Quel file contiene i nomi dei pacchetti e i nomi e le e-mail dei rispettivi manutentori. L'interfaccia WWW ai pacchetti Debian (http://packages.debian.org/) riassume convenientemente 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-Needing and Prospective Packages list (http://www.debian.org/devel/wnpp/). Per maggiori dettagli sull'aggiunta di cose mancanti, si veda Sezione 12.1, `Come posso diventare uno sviluppatore di software Debian?'. 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? ---------------------------------------------------------------------------- La Debian Policy richiede che un tale link simbolico (a libfoo.so.x.y.z o simile) sia posto in un pacchetto 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). 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 implementazioni _libere_ della tecnologia Java sono disponibili come pacchetti Debian. Si possono scrivere, fare debug ed eseguire programmi Java usando Debian. Il funzionamento di applet Java richiede un browser web con la capacità di riconoscerle ed eseguirle. Diversi browser web disponibili in Debian, come Mozilla o Konqueror, supportano i plug-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 che versione è? ---------------------------------------------------------------------------- Per assicurarsi che il proprio sistema sia stato installato da una reale distribuzione di dischi di base Debian si verifichi l'esistenza del file `/etc/debian_version', che contiene una singola riga 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 pacchetti Debian sul proprio sistema, ma siccome il programma è stato portato su molti altri sistemi operativi ed architetture, non è più un metodo fidato per determinare se è un sistema Debian GNU/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 separatamente. 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, si esegua: 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 con utilità (nel pacchetto `kbd') per installare, vedere e modificare le tabelle dei caratteri. L'installazione chiederà all'utente di specificare la tastiera che userà. * 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 numero di 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 polacco attraverso i pacchetti `manpages-LANG' (dove LANG è il codice ISO a due lettere dello stato). Per accedere alla pagina di un manuale NLS, l'utente deve impostare la variabile LC_MESSAGES della shell alla stringa appropriata. Per esempio, nel caso delle pagine di manuale in lingua italiana, LC_MESSAGES deve essere impostato a 'italian'. Il programma `man' cercherà poi le pagine del manuale in italiano sotto la directory `/usr/share/man/it/'. 4.9. A proposito delle regole statunitensi sulla limitazione dell'esportazione? ---------------------------------------------------------------------------- Le leggi statunitensi pongono delle restrizioni sull'esportazione di articoli per la difesa, inclusi alcuni tipi di software crittografici. PGP e ssh, assieme ad altri, appartengono a questa categoria. Per prevenire chiunque da rischi legali non necessari, alcuni pacchetti Debian GNU/Linux sono 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 permette nemmeno ai binari modificati di essere distribuiti, si deve compilarlo da soli dai sorgenti e dalle patch Debian. Il nome del pacchetto dei sorgenti è `pine'. Si può usare il pacchetto `pine-tracker' per essere avvisati su quando sarà necessario aggiornare. Si noti che ci sono molti sostituti sia per pine che per pico, come `mutt' e `nano', che si trovano nella sezione main. ------------------------------------------------------------------------------- 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 diversi alberi di directory in ogni sito mirror Debian. La directory `dists' è l'abbreviazione di "distribuzioni" (distributions) ed è il percorso canonico per accedere alle release (e pre-release) Debian attualmente disponibili. La directory `pool' contiene gli attuali pacchetti, si veda Sezione 5.11, `Cosa c'è nella directory `pool'?'. Ci sono queste directory aggiuntive: _/tools/_: Utilità DOS per creare dischi di avvio, partizionare il proprio disco, comprimere/decomprimere file e avviare Linux. _/doc/_: La documentazione di base di Debian, come la FAQ, le istruzioni del sistema di segnalazione 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 ancora in via di sviluppo e sono ancora allo stadio alpha di controllo. Gli utenti non dovrebbero usare i pacchetti provenienti da qui, perché possono essere pericolosi e dannosi 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 "testing" (in test) e la distribuzione "unstable" (instabile). Qualche volta c'è anche la distribuzione "frozen" (congelata, si veda Sezione 5.4, `A proposito di "frozen"?'). 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 ha un numero di versione ma un nome in codice. Lo scopo di questi nomi in codice è di rendere più semplice la creazione di mirror delle distribuzioni Debian (se una directory reale come `unstable' 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) e `testing' è un link simbolico a `sarge'. Questo significa che `woody' è la distribuzione attualmente stabile e che `sarge' è la distribuzione attualmente in testing. `unstable' è un link simbolico permanente a `sid', dato che `sid' è sempre la distribuzione instabile (si veda Sezione 5.5, `A proposito di "sid"?'). 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 release 2.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. 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 minor numero di bachi possibile da "unstable" entri in "testing". Dopo un po', la distribuzione "testing" diventa realmente 'frozen' (congelata). Questo significa che tutti i nuovi pacchetti da mettere in "testing" sono rimandati indietro, a meno che non includano fissaggi per bachi release-critical. La distribuzione "testing" può anche rimanere in uno stato di "congelamento profondo" durante i cosiddetti 'test cycles' (cicli di test), quando il rilascio è imminente. Teniamo una registrazione dei bachi nella distribuzione "testing" che possono impedire ad un pacchetto 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 spostata 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. Non sarà mai direttamente rilasciata, perché i pacchetti che stanno per essere rilasciati dovranno prima essere inclusi in _testing_, per poter essere rilasciati in _stable_ più tardi. sid contiene pacchetti sia per architetture rilasciate che non. Anche il nome "sid" proviene dal film d'animazione "Toy Story": Sid era il bambino vicino di casa 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 principale: c'era l'assunto che quando un'architettura veniva creata nell'attuale unstable, sarebbe stata rilasciata quando quella distribuzione diventava la nuova stable. Per molte architetture questo non è il caso, con il risultato che quelle directory dovevano essere mosse al momento del rilascio. Poco pratico, poiché lo spostamento avrebbe divorato grosse quantità di banda. Gli amministratori dell'archivio hanno evitato questo problema per diversi anni collocando i binari delle architetture non ancora rilasciate in una directory speciale chiamata "sid". Per quelle architetture non ancora rilasciate, al primo rilascio c'era un link da stable a sid e da quel momento in poi essa veniva creata all'interno dell'albero unstable di norma. Tutto ciò era motivo di confusione per gli utenti. Con l'avvento dei pacchetti pools (letteralmente "vasche" - si veda Sezione 5.11, `Cosa c'è nella directory `pool'?'), i pacchetti binari cominciarono ad essere immagazzinati in una locazione canonica nella "vasca", indipendentemente dalla distribuzione, così il rilascio di una distribuzione non determina più grande dispendio di banda sui mirror (c'è, ovviamente, un notevole graduale 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 la release 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 Software Libero Debian) e sono tutti liberamente utilizzabili e distribuibili. * stable/non-free/: Questa directory contiene i pacchetti la cui distribuzione è ristretta in un modo tale da richiedere ai distributori delle cautele dovute ai loro requisiti specifici di 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 licenze di ognuno di questi pacchetti devono essere studiate e possibilmente negoziate prima che tali 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 _liberamente distribuibili_ da soli, ma dipendono in qualche modo da un pacchetto che _non_ è liberamente distribuibile 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 unstable. Devono essere sincronizzati in tutte le architetture per le quali sono stati compilati e non devono mostrare dipendenze tali da renderli non installabili; devono inoltre avere meno bachi release-critical delle versioni sotto test al momento. In questo modo, si auspica che 'testing' sia sempre vicina ad essere candidata al rilascio. Maggiori informazioni sullo stato del "testing" in generale e dei singoli pacchetti è disponibile su 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 il loro stato di preparazione. Il vantaggio di usare la distribuzione 'unstable' è che si è sempre aggiornati con la più recente industria di software in GNU/Linux, ma se non funzionasse: vi toccherà tenere entrambe le parti :-) In 'unstable' ci sono anche le sottodirectory main, contrib e non-free, separate con lo stesso criterio 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 chip per i quali sono stati compilati: * binary-all/, per pacchetti che sono indipendenti dall'architettura. Questi includono, per esempio, 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 processori Motorola 680x0. Attualmente questo è fatto principalmente per computer Atari e Amiga e 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 queste directory, 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 Sezione 3.1, `Su quali architetture e/o sistemi hardware funziona Debian GNU/Linux?' per maggiori informazioni. 5.10. Dov'è il codice sorgente? ------------------------------- Il codice sorgente è incluso per qualsiasi cosa nel sistema Debian. Inoltre, i termini di licenza della maggior parte dei programmi _richiedono_ che il codice venga distribuito insieme ai programmi o che un'offerta di fornitura del codice sorgente li accompagni. Normalmente il codice sorgente viene distribuito nelle directory "source", che sono in parallelo a tutte le directory dei binari specifici per l'architettura o più recentemente nella directory `pool' (si veda Sezione 5.11, `Cosa c'è nella directory `pool'?'). Per ottenere il codice sorgente senza la necessità di essere familiari con la struttura dell'archivio FTP Debian, si provi un comando come `apt-get source nomedelmiopacchetto'. Alcuni pacchetti sono distribuiti solo come codice sorgente a causa delle restrizioni nelle loro licenze. In particolare, uno di questi pacchetti è `pine', si veda Sezione 4.10, `Dov'è pine?' per maggiori 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 distribuzione di cui facevano parte. Questo causava vari problemi, come un grosso consumo di banda 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 nome 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. Queste directory contengono diversi file: i binari per ciascuna architettura e i pacchetti sorgente da cui sono stati generati i pacchetti binari. Si può sapere dove ciascun pacchetto è situato eseguendo un comando come `apt-cache showsrc nomedelmiopacchetto' e vedendo la riga 'Directory:'. Per esempio, i pacchetti `apache' sono immagazzinati in `pool/main/a/apache/'. Poiché ci sono così tanti pacchetti `lib*', questi vengono trattati in maniera particolare: per esempio, i pacchetti libpaper sono immagazzinati 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 state convertite per usare le vasche, per cui si troveranno i percorsi contenenti distribuzioni come potato o woody nel campo Filename dell'intestazione. Normalmente, non ci sarà da preoccuparsi di tutto questo, dato che `apt' e probabilmente `dpkg-ftp' (si veda Sezione 8.2, `Come posso mantenere il mio sistema Debian recente?') 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 casi di emergenza, la directory incoming è disponibile su http://incoming.debian.org/. Si possono scaricare i pacchetti manualmente, controllare la firma GPG e gli MD5sum nei file .changes e .dsc, e poi installarli. ------------------------------------------------------------------------------- 6. Fondamenti sul sistema di gestione dei pacchetti Debian ---------------------------------------------------------- 6.1. Cos'è un pacchetto Debian? ------------------------------- I pacchetti generalmente contengono tutti quei file necessari a implementare una serie di comandi o funzionalità. Ci sono due tipi di pacchetti Debian: * _Pacchetti binari_, che contengono eseguibili, file di configurazione, pagine man/info, informazioni sul copyright ed altra documentazione. Questi pacchetti sono distribuiti in un formato archivio specifico di Debian (si veda Sezione 6.2, `Qual è il formato di un pacchetto binario Debian?'); sono solitamente caratterizzati dall'estensione '.deb'. I pacchetti binari possono essere spacchettati usando l'utilità Debian `dpkg'; i dettagli vengono forniti nella sua pagina di manuale. * _Pacchetti sorgente_, che consistono in un file `.dsc' che descrive il pacchetto sorgente (inclusi i nomi dei file seguenti), un file `.orig.tar.gz' che contiene il sorgente originale non modificato nel formato tar compresso con gzip e solitamente un file `.diff.gz' che contiene le modifiche specifiche di Debian fatte al sorgente originale. L'utilità `dpkg-source' pacchetta e spacchetta gli archivi sorgente Debian; i dettagli vengono forniti nella sua pagina di manuale. L'installazione di software attraverso il sistema dei pacchetti usa "dipendenze" che vengono progettate con cura dai manutentori dei pacchetti. Queste dipendenze sono documentate nel file `control' associato ad ogni pacchetto. Per esempio, il pacchetto contenente il compilatore C 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 di gestione dei pacchetti (dpkg) invierà un messaggio di errore avvertendo che necessita anche di `binutils', e fermerà l'installazione di `gcc'. (Comunque, questa funzione può essere superata dall'utente tenace, si veda dpkg(8).) Si veda di più su Sezione 6.9, `Cosa significa dire che un pacchetto _Dipende_ da, _Raccomanda_, _Suggerisce_, _Va in conflitto_ con, _Sostituisce_ o _Fornisce_ un altro pacchetto?' sotto. 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 mezzi di 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 la documentazione associati ad un gruppo o suite di programmi correlati. Normalmente, un file archivio Debian ha un nome che termina in `.deb'. L'interno di questi pacchetti binari Debian è descritto nella pagina di manuale deb(5). Questo 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ò conoscere il nome del pacchetto associato ad un particolare archivio Debian (file.deb) in uno di questi modi: * esaminando il file "Packages" nella directory dove era stato archiviato su un archivio FTP Debian. Questo file contiene una sezione che descrive ogni pacchetto; il primo campo in ogni sezione è il nome formale del pacchetto. * utilizzando il comando `dpkg --info foo_VVV-RRR.deb' (dove VVV e RRR sono rispettivamente la versione e la revisione del pacchetto in questione). Questo mostra, tra le altre cose, il nome del pacchetto corrispondente al file archivio spacchettato. La componente `VVV' è il numero di versione specificato dallo sviluppatore. Non ci sono standard 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 sviluppatore Debian (o un singolo utente se sceglie di costruirsi il pacchetto da sé). Questo numero corrisponde al livello di revisione del pacchetto Debian, quindi un nuovo livello di revisione significa solitamente modifiche nel Makefile Debian (`debian/rules'), nel file di controllo Debian (`debian/control'), negli script di installazione o rimozione (`debian/p*') oppure nei file di configurazione 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 "Debian Packaging manual", capitolo 4, si veda Sezione 11.1, `Quale altra documentazione esiste su e per un sistema Debian?'. Brevemente, un esempio di file di controllo è mostrato di seguito per il pacchetto Debian hello: Package: hello Priority: optional Section: devel Installed-Size: 45 Maintainer: Adam Heath Architecture: i386 Version: 1.3-16 Depends: libc6 (>= 2.1) Description: The classic greeting, and a good example The GNU hello program produces a familiar, friendly greeting. It allows nonprogrammers to use a classic computer science tool which would 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 pacchetto può essere manipolato con gli strumenti dei pacchetti ed è solitamente simile ma non necessariamente lo stesso rispetto alla prima componente della stringa nel nome dell'archivio Debian. Il campo Version fornisce sia il numero della versione dello sviluppatore, che (nell'ultima componente) il livello di revisione del pacchetto Debian di questo programma, come spiegato in Sezione 6.3, `Perché i nomi dei pacchetti Debian sono così lunghi?'. 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 installare questo pacchetto con successo. Installed-Size indica quanto spazio su disco occuperà il pacchetto installato. È progettato per essere usato dai front-end di installazione per poter mostrare se c'è abbastanza spazio disponibile su disco per installare il programma. La riga Section fornisce la sezione dove questo pacchetto Debian è archiviato presso i siti FTP Debian. Questo è il nome di una sottodirectory (all'interno di una delle directory principali, si veda Sezione 5.1, `Cosa sono tutte quelle directory negli archivi FTP Debian?') dove è archiviato il pacchetto. Priority indica quanto è importante questo pacchetto per l'installazione, così che i software semi-intelligenti come dselect o apt possano ordinare il pacchetto dentro una categoria di pacchetti opzionali già installati per esempio. Si veda Sezione 6.7, `Cosa sono i pacchetti _Required_, _Important_, _Standard_, _Optional_, o _Extra_?'. Il campo Maintainer fornisce l'indirizzo e-mail della persona che è attualmente responsabile per 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 veda il 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 di gestione dei pacchetti non sovrascriverà quando il pacchetto viene aggiornato. Questo assicura che i valori locali per il contenuto di questi file vengano conservati, ed è una caratteristica critica 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 un pacchetto viene installato. Insieme ad un file chiamato `control', tutti questi file sono parte della sezione "control" di un file Debian. I singoli file sono: preinst Questo script viene eseguito prima che il pacchetto venga spacchettato dall'archivio Debian (".deb"). Molti script 'preinst' interrompono i servizi per i pacchetti che devono essere aggiornati fino a che la loro installazione o aggiornamento non sono completati (a seguito dell'esecuzione con successo dello script 'postinst'). postinst Questo script tipicamente completa ogni configurazione richiesta dal pacchetto `foo' una 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 predefinite deve ricordarsi di tornare indietro e riconfigurare il pacchetto se la situazione lo richiede. Molti script 'postinst' eseguono poi tutti i comandi necessari ad avviare o riavviare un servizio una volta che il pacchetto è stato installato o aggiornato. prerm Questo script tipicamente ferma tutti i demoni associati ad un pacchetto. Viene eseguito prima 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 Sezione 6.8, `Cos'è un pacchetto virtuale?'.) 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 i file 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_, o _Extra_? ---------------------------------------------------------------------------- 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 si rimuovano questi pacchetti o il proprio sistema potrebbe diventare completamente non funzionante e probabilmente non si riuscirebbe nemmeno ad usare dpkg per rimettere le cose a posto. I sistemi con solo i pacchetti Required sono probabilmente inutilizzabili, ma hanno abbastanza funzionalità per permettere all'amministratore di sistema di avviare ed installare altri programmi. * _Important (Importante)_: pacchetti che si dovrebbero trovare su di un qualsiasi sistema simile a Unix (Unix-like). Altri pacchetti necessari ad un corretto funzionamento del sistema, senza i quali non sarebbe utilizzabile. Tra questi NON sono inclusi Emacs o X11 o TeX o qualsiasi altra grossa applicazione. Questi pacchetti costituiscono solo l'infrastruttura di base. * _Standard_: pacchetti comuni su qualsiasi sistema Linux, compreso un ragionevolmente piccolo ma nemmeno troppo limitato sistema a caratteri. Questo è quello che viene installato di base se l'utente non seleziona nient'altro. Non include molte grosse applicazioni, ma include Emacs (che è più un pezzo di infrastruttura che un'applicazione) ed un ragionevole sottogruppo di TeX e LaTeX (se risulta possibile senza X). * _Optional (Opzionale)_: pacchetti che comprendono tutto quello che si può voler installare senza 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 utili se 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' sono news reader, e dovrebbero quindi soddisfare qualsiasi dipendenza di un programma che richiede un news reader su di un sistema per poter lavorare o essere utile. Si dice quindi che entrambi forniscono il "pacchetto virtuale" chiamato `news-reader'. Similmente, `smail' e `sendmail' forniscono entrambi la funzionalità di agente di trasporto posta (mail transport agent). Si dice quindi che fornisco il pacchetto virtuale "mail transport agent". Se uno dei due è installato, allora ogni pacchetto che dipende dall'installazione di un `mail-transport-agent' vedrà le proprie dipendenze soddisfatte dall'esistenza di questo pacchetto virtuale. Debian fornisce un meccanismo che, se più di un pacchetto che fornisce lo stesso pacchetto virtuale è installato su di un sistema, allora l'amministratore di sistema può impostarne uno come pacchetto preferito. Il relativo comando è `update-alternatives', ed è maggiormente descritto su Sezione 10.10, `Ad alcuni utenti piace mawk, ad altri piace gawk; ad alcuni piace vim, ad altri piace elvis; ad alcuni piace trn, ad altri piace tin; come supporta Debian le diversità?'. 6.9. Cosa significa dire che un pacchetto _Dipende_ da, _Raccomanda_, _Suggerisce_, _Va in conflitto_ con, _Sostituisce_ o _Fornisce_ un altro pacchetto? ---------------------------------------------------------------------------- Il sistema dei pacchetti Debian ha una serie di "dipendenze" dei pacchetti che sono pensate per indicare (con un singolo termine) il livello con cui un determinato Programma A può operare indipendentemente dall'esistenza di un Programma B su un dato sistema: * Il pacchetto A _dipende_ dal Pacchetto B se B deve essere assolutamente installato per eseguire A. In alcuni casi, A dipende non solo da B, ma da una versione di B. In questo caso la dipendenza dalla versione è solitamente un limite minore, nel senso che A dipende da qualsiasi versione di B più recente di quella specificata. * Il pacchetto A _raccomanda_ il Pacchetto B se il manutentore del pacchetto giudica che la maggior parte degli utenti non vorrebbe A senza le funzionalità fornite da B. * Il pacchetto A _suggerisce_ il Pacchetto B se B contiene file attinenti alle funzioni di A (e che solitamente le migliorano). * Il pacchetto A _va in conflitto_ con il Pacchetto B quando A non è in grado di funzionare se B è installato sul sistema. Molto spesso i conflitti si hanno quando A contiene dei file che rappresentano 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 (in alcuni casi) sovrascritti dai file di A. * Il pacchetto A _fornisce_ il Pacchetto B quando tutti i file e le funzionalità di B sono incorporate in A. Questo meccanismo permette agli utenti con limitato spazio su disco rigido di avere solo la parte del pacchetto A realmente necessaria. Informazioni più dettagliate sull'utilizzo di ognuno di questi termini possono essere trovate nel Packaging manual e nel Policy manual. 6.10. Cosa significa Pre-Depends? --------------------------------- "Pre-Depends" è una dipendenza speciale. Con la maggior parte dei pacchetti, `dpkg' spacchetterà il file di archivio (ovvero il suo file `.deb') indipendentemente dal fatto che i file da cui dipende 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'esistenza 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 dipendenze non vengono risolte. Tali pacchetti si dice che "Pre-dipendono" dalla presenza di altri pacchetti. Il progetto Debian forniva questo meccanismo per supportare un aggiornamento sicuro di sistemi dal formato `a.out' al formato `ELF', dove l'`ordine' in cui i pacchetti venivano spacchettati 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 Packaging manual. 6.11. Cosa significa _sconosciuto_, _installa_, _rimuovi_, _elimina_ e _mantieni_ nello stato di un pacchetto? ---------------------------------------------------------------------------- Queste etichette "voglio" indicano il volere dell'utente riguardo ad un pacchetto (come indicato dalle azioni dell'utente nella sezione "Seleziona" di `dselect' o dal richiamo diretto dell'utente di `dpkg'). I loro significati sono: * 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 configurazione esistenti. * elimina - l'utente vuole il pacchetto completamente rimosso, compresi i file di configurazione. * mantieni - l'utente non vuole che il pacchetto sia processato, ovvero vuole mantenere la versione 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 pacchetto che 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 che si desidera mantenere al suo stato attuale e premere il tasto '=' (o 'H'). Le modifiche diverranno attive immediatamente dopo che si è usciti dalla schermata [S]eleziona. 6.13. Come si installa un pacchetto sorgente? --------------------------------------------- I pacchetti sorgente Debian non possono realmente venire "installati", vengono solo spacchettati 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 ottenere i pacchetti binari. Se si imposta il proprio sources.list(5) di APT per includere le righe "deb-src" appropriate, si sarà in grado di scaricare facilmente qualsiasi pacchetto sorgente eseguendo apt-get source foo Per aiutare nella reale compilazione del pacchetto sorgente, il pacchetto sorgente Debian fornisce il cosiddetto meccanismo di dipendenze di compilazione. Significa che il manutentore del pacchetto sorgente conserva una lista di altri pacchetti che sono richiesti per compilare il proprio pacchetto. Per vedere come questo sia utile, si esegua apt-get build-dep foo prima di compilare il sorgente. 6.14. Come si compilano pacchetti binari da un pacchetto sorgente? ------------------------------------------------------------------ Si avrà bisogno di tutti i file foo_*.dsc, foo_*.tar.gz e foo_*.diff.gz per compilare il sorgente (nota: non c'è nessun .diff.gz per alcuni pacchetti nativi Debian). Una volta che li si ha (Sezione 6.13, `Come si installa un pacchetto sorgente?'), se si ha il pacchetto `dpkg-dev' installato, il seguente comando: dpkg-source -x foo_versione-revisione.dsc estrarrà il pacchetto in una directory denominata `foo-versione'. Se si vuole solo compilare il pacchetto, si può entrare nella directory `foo-versione' e lanciare il comando dpkg-buildpackage -rfakeroot -b per compilare il pacchetto (si noti che questo richiede anche il pacchetto `fakeroot'), e poi dpkg -i ../foo_versione-revisione_arch.deb per installare il pacchetto appena compilato. 6.15. Come ci si crea pacchetti Debian da sé? --------------------------------------------- Per maggiori dettagli al riguardo si legga la New Maintainers' Guide, disponibile nel pacchetto `maint-guide' o su http://www.debian.org/doc/devel-manuals#maint-guide. ------------------------------------------------------------------------------- 7. Gli strumenti di gestione dei pacchetti Debian ------------------------------------------------- 7.1. Quali programmi fornisce Debian per gestire i suoi pacchetti? ------------------------------------------------------------------ 7.1.1. dpkg ----------- Questo è il principale programma di gestione dei pacchetti. `dpkg' può essere invocato con molte opzioni. Alcuni usi comuni sono: * Scoprire tutte le opzioni: `dpkg --help'. * Stampare il file di controllo (ed altre informazioni) di un specifico pacchetto: `dpkg --info foo_VVV-RRR.deb' * Installare un pacchetto (incluso lo spacchettamento e la configurazione) nel file system dell'hard disk: `dpkg --install foo_VVV-RRR.deb'. * Spacchettare (ma non configurare) un archivio Debian sul file system dell'hard disk: `dpkg --unpack foo_VVV-RRR.deb'. Si noti che questa operazione _non_ lascia necessariamente il pacchetto in uno stato utilizzabile; alcuni file possono necessitare di ulteriori adattamenti per funzionare correttamente. Questo comando rimuove qualsiasi versione già installata del programma ed esegue lo script preinst (si veda Sezione 6.6, `Cosa sono gli script preinst, postinst, prerm e postrm di Debian?') associato al pacchetto. * Configurare un pacchetto che è già stato spacchettato: `dpkg --configure foo'. Tra le altre cose, questa azione esegue lo script postinst (si veda Sezione 6.6, `Cosa sono gli script preinst, postinst, prerm e postrm di Debian?') associato al pacchetto. Aggiorna inoltre i file elencati nel `conffiles' per il nome di questo pacchetto. Si faccia attenzione che l'operazione 'configure' prende come argomento il nome del pacchetto (p.e., foo), _non_ il nome dell'archivio Debian (p.e., foo_VVV-RRR.deb). * Estrarre un unico file chiamato "blurf" (od un gruppo di file chiamati "blurf*" da un archivio Debian: `dpkg --fsys-tarfile foo_VVV-RRR.deb | tar -xf - blurf*' * Rimuovere un pacchetto (ma non i suoi file di configurazione): `dpkg --remove foo'. * Rimuovere un pacchetto (inclusi i suoi file di configurazione): `dpkg --purge foo'. * Elencare lo stato d'installazione dei pacchetti contenenti la stringa (o l'espressione regolare) "foo*": `dpkg --list 'foo*''. 7.1.2. dselect -------------- Questo programma è un'interfaccia a menu al sistema di gestione dei pacchetti Debian. È particolarmente utile per le prime installazioni ed aggiornamenti su larga scala. `dselect' può: * guidare l'utente sulla scelta dei pacchetti da installare o rimuovere, assicurare che nessun pacchetto in conflitto con un altro venga installato e che tutti i pacchetti richiesti per far funzionare correttamente ogni pacchetto vengano installati; * avvisare l'utente a proposito di inconsistenze o incompatibilità nelle proprie selezioni; * determinare l'ordine nel quale i pacchetti devono essere installati; * effettuare automaticamente l'installazione o la rimozione e * guidare l'utente attraverso qualsiasi processo di configurazione richiesto da ogni pacchetto. `dselect' parte presentando un menu di 7 voci, ognuna delle quali rappresenta una specifica azione. L'utente può selezionare una delle azioni usando i tasti freccia per muovere la barra evidenziata, poi premendo il tasto __ per selezionare l'azione evidenziata. Cosa vede l'utente dopo dipende dall'azione che ha selezionato. Se ha selezionato qualsiasi opzione tranne `Metodo' (Access) e `Seleziona' (Select), allora `dselect' procederà semplicemente nell'esecuzione dell'azione specificata: p.e., se l'utente ha selezionato l'azione `Rimuovi' (Remove), allora dselect procederà nella rimozione di tutti i file selezionati per la rimozione quando l'utente li ha scelti nell'azione `Seleziona' (Select). Sia la voce di menu `Metodo' (Access) che la voce di menu `Seleziona' (Select) portano a menu aggiuntivi. In entrambi i casi, i menu vengono presentati come schermate divise; la schermata superiore dà una lista scorribile di scelte, mentre la schermata inferiore dà una breve spiegazione ("info") per ogni scelta. È disponibile un aiuto esteso in linea, si usi il tasto '?' per avere una schermata d'aiuto in qualsiasi momento. L'ordine nel quale le azioni sono presentate nel primo menu di `dselect' rappresenta l'ordine nel quale un utente sceglierebbe normalmente `dselect' per installare pacchetti. Comunque, un utente può selezionare qualsiasi voce del menu principale quanto spesso vuole (anche non tutte, dipende da cosa si vuole fare). * Si inizi scegliendo un _Metodo d'Accesso_. Questo è il modo in cui un utente stabilisce l'accesso ai pacchetti Debian; p.e., alcuni utenti hanno pacchetti Debian disponibili su CD-ROM, mentre altri stabiliscono di scaricarli usando FTP anonimo. Il "Metodo d'Accesso" selezionato viene memorizzato dopo che `dselect' esce, così, se non cambia, questa opzione non necessita di essere invocata nuovamente. * Si aggiorni poi con _Aggiorna_ (Update) la lista dei pacchetti disponibili. Per fare questo, `dselect' legge il file "Packages.gz" che dovrebbe essere incluso nel livello più alto della directory dove sono archiviati i pacchetti Debian da installare. (Ma se non è là, `dselect' si offrirà di crearlo.) * Si selezionino con _Seleziona_ (Select) i pacchetti da installare sul proprio sistema. Dopo aver scelto questa voce di menu, all'utente viene prima presentata una schermata completa di aiuto (a meno che non sia stata usata l'opzione da riga di comando '--expert'). Una volta che l'utente esce dalla schermata di aiuto, vedrà il menu a schermata divisa per scegliere i pacchetti da installare (o rimuovere). La parte superiore della schermata è una finestra relativamente stretta sulla lista dei 18200 pacchetti Debian; la parte inferiore della schermata contiene una descrizione del pacchetto o gruppo di pacchetti che è stato selezionato sopra. Si può specificare su quali pacchetti si dovrebbe operare evidenziando un nome di un pacchetto o di una etichetta per un gruppo di pacchetti. Dopo di questo, si possono selezionare pacchetti: da installare: Questo è effettuato premendo il tasto '+'. da eliminare: I pacchetti possono essere eliminati in due modi: * rimossi: questo rimuove la maggior parte dei file associati al pacchetto, ma preserva i file elencati come file di configurazione (si veda Sezione 6.5, `Cos'è un conffile Debian?') e le informazioni di configurazione del pacchetto. Questo lo si fa premendo il tasto '-'. * eliminati: questo rimuove _ogni_ file che è parte del pacchetto. Questo lo si fa premendo il tasto '_'. Si noti che non è possibile rimuovere "Tutti i pacchetti" ("All Packages"). Se si prova, il proprio sistema sarà invece ridotto ai pacchetti base dell'installazione iniziale. da mantenere (mettere "on hold") Lo si effettua premendo '=' e dice effettivamente a `dselect' di non aggiornare un pacchetto nemmeno se la versione correntemente installata sul proprio sistema non è recente come la versione disponibile nel deposito Debian che si sta usando (questo è stato specificato quando si è impostato il _Metodo d'Accesso_ e ottenuto quando si è usato _Aggiorna_). Così come si può mantenere un pacchetto, si può invertire questa impostazione premendo ':'. Questo dice a `dselect' che il pacchetto può essere aggiornato se una versione più recente è disponibile. Questa è l'impostazione predefinita. Si può selezionare un ordine differente per presentare i pacchetti usando il tasto 'o' per alternare varie opzioni di ordinamento dei pacchetti. L'ordine predefinito è di presentare i pacchetti in base alla Priorità; dentro ogni priorità i pacchetti vengono presentati in ordine di directory (a.k.a. sezioni) dell'archivio nel quale sono memorizzati. Dato quest'ordine, alcuni pacchetti nella sezione A possono essere presentati per primi, seguiti da alcuni pacchetti nella sezione B, seguiti da più pacchetti (con priorità minore) nella sezione A. Si possono anche espandere le etichette in cima alla schermata, usando il tasto 'v' (verbose). Questa azione spinge sulla destra molto del testo che precedentemente si adattava nel display. Per vederlo si prema la freccia a destra; per scorrere alla sinistra si prema la freccia a sinistra. Se si seleziona un pacchetto per l'installazione o la rimozione, p.e. `foo.deb', e quel pacchetto dipende da (o raccomanda) un altro pacchetto, p.e. `blurf.deb', allora `dselect' vi porterà in una sottoschermata della schermata di selezione principale. Là si potrà scegliere tra pacchetti correlati, accettando le azioni suggerite (installare o no), o rifiutandole. Per fare quest'ultima azione, si prema Shift-D; per ritornare alla prima si prema Shift-U. In ogni caso, si possono salvare le proprie selezioni e ritornare alla schermata principale di selezione premendo Shift-Q. * Gli utenti che ritornano al menu principale possono poi selezionare la voce di menu "Installa" ("Install") per spacchettare e configurare i pacchetti selezionati. Alternativamente, gli utenti che desiderano rimuovere file possono scegliere la voce di menu "Rimuovi" ("Remove"). In ogni momento, gli utenti possono scegliere "Termina" ("Quit") per uscire da dselect; le selezioni sono preservate da `dselect'. 7.1.3. dpkg-deb --------------- Questo programma manipola i file archivio Debian (`.deb'). Alcuni usi comuni sono: * Scoprire tutte le opzioni: `dpkg-deb --help'. * Determinare quali file sono contenuti in un file archivio Debian: `dpkg-deb --contents foo_VVV-RRR.deb') * Estrarre i file contenuti in un archivio Debian dentro una directory specificata dall'utente: `dpkg-deb --extract foo_VVV-RRR.deb tmp' estrae ognuno dei file dentro `foo_VVV-RRR.deb' nella directory `tmp/'. Questo è comodo per esaminare il contenuto di un pacchetto in una directory localizzata, senza installare il pacchetto nel file system di root. Si noti che ogni pacchetto che è stato semplicemente spacchettato usando `dpkg-deb --extract' non sarà installato correttamente, si dovrebbe invece usare `dpkg --install'. Maggiori informazioni sono fornite nella pagina di manuale dpkg-deb(1). 7.1.4. apt-get -------------- `apt-get' fornisce una semplice maniera per installare pacchetti da riga di comando. Diversamente da `dpkg', `apt-get' non comprende i file .deb, lavora con il nome del pacchetto e può solo installare archivi .deb da una sorgente specificata in `/etc/apt/sources.list'. Per maggiorni informazioni, si installi il pacchetto `apt' e si legga apt-get(8), sources.list(5) e `/usr/share/doc/apt/guide.html/index.html'. 7.1.5. dpkg-split ----------------- Questo programma divide un grosso pacchetto in file più piccoli (p.e., per la scrittura su una serie di floppy disk), e può anche essere usato per unire una serie di file divisi in un file singolo. Può venire usato solo su di un sistema Debian (cioè un sistema contenente il pacchetto `dpkg'), perché chiama il programma `dpkg-deb' per analizzare il pacchetto debian nei suoi componenti. Per esempio, per dividere un grosso .deb in N parti, * Si esegua il comando `dpkg-split --split foo.deb'. Questo produrrà N file ognuno approssimativamente lungo 460 KByte nella directory corrente. * Si copino gli N file su dei floppy disk. * Si copi il contenuto dei floppy disk sull'hard disk di vostra scelta sull'altra macchina. * Si uniscano le parti dei file insieme usando `dpkg-split --join "foo*"'. 7.2. Debian afferma di essere in grado di aggiornare un programma in esecuzione; come viene effettuato? ---------------------------------------------------------------------------- Il kernel (file system) nei sistemi Debian GNU/Linux supporta la sostituzione dei file anche quando sono in uso. Forniamo anche un programma chiamato `start-stop-daemon' che viene usato per avviare i demoni al boot o fermare i demoni quando il livello di esecuzione (runlevel) del kernel cambia (p.e., da multiutente a monoutente o halt). Lo stesso programma viene usato dagli script di installazione quando un nuovo pacchetto che contiene un demone viene installato, per fermare i demoni in esecuzione e riavviarli se necessario. 7.3. Come posso sapere quali pacchetti sono già installati su un sistema Debian? ---------------------------------------------------------------------------- Per conoscere lo stato di tutti i pacchetti installati su di un sistema Debian, si esegua il comando dpkg --list Questo stampa un sommario di una linea per ogni pacchetto, dando un simbolo di stato di due lettere (spiegato nell'intestazione), il nome del pacchetto, la versione _installata_ ed una breve descrizione. Per sapere lo stato dei pacchetti i cui nomi corrispondono alla stringa iniziante con "foo" si esegua il comando: dpkg --list 'foo*' Per ottenere un rapporto più prolisso per un particolare pacchetto si esegua il comando: dpkg --status nomepacchetto 7.4. Come posso scoprire quale pacchetto ha prodotto un particolare file? ------------------------------------------------------------------------- Per identificare il pacchetto che ha prodotto il file chiamato `foo' si esegua uno dei comandi: * `dpkg --search nomefile' Questo cerca `nomefile' nei pacchetti installati. (È (attualmente) equivalente a cercare tutti i file aventi `.list' come estensione del file nella directory `/var/lib/dpkg/info/' e sistemare l'output per stampare i nomi di tutti i pacchetti che lo contengono.) * `zgrep foo Contents-ARCH.gz' Questo cerca i file che contengono la sottostringa `foo' nel loro percorso completo. I file `Contents-ARCH.gz' (dove ARCH rappresenta l'architettura desiderata) risiedono nelle directory principali dei pacchetti (main, non-free, contrib) sui siti FTP Debian. Un file `Contents' si riferisce solo ai pacchetti nell'albero delle sottodirectory dove egli risiede. Quindi, un utente potrebbe dover cercare in più file `Contents' per trovare il pacchetto contenente il file `foo'. Questo metodo ha il vantaggio rispetto a `dpkg --search' di trovare i file nei pacchetti che non sono attualmente installati sul proprio sistema. ------------------------------------------------------------------------------- 8. Mantenere il proprio sistema Debian aggiornato ------------------------------------------------- Uno degli scopi di Debian è quello di fornire un consistente percorso di aggiornamento ed un sicuro processo di aggiornamento. Facciamo sempre del nostro meglio per rendere semplice l'aggiornamento a nuove release. Nel caso ci fossero alcune note importanti da aggiungere al processo di aggiornamento, i pacchetti avviseranno l'utente e spesso forniranno una soluzione ad un possibile problema. Si dovrebbero inoltre leggere le Note di Rilascio (Release Notes), documento che descrive i dettagli degli specifici aggiornamenti, reperibile su tutti i CD Debian e disponibile su http://www.debian.org/releases/stable/releasenotes. 8.1. Come posso aggiornare la mia distribuzione Debian 1.3.1 (o precedente), basata sulla libc5, alla 2.0 (o successiva), basata sulla libc6? ---------------------------------------------------------------------------- Ci sono diverse maniere per aggiornare: * Usando un semplice script di shell chiamato `autoup.sh' che aggiorna i pacchetti più importanti. Dopo che `autoup.sh' ha svolto il suo lavoro, si può usare dselect per installare i pacchetti rimanenti _in massa_. Questo probabilmente è il metodo raccomandato, ma non l'unico. Attualmente, l'ultima release di `autoup.sh' può essere trovata sui seguenti siti: * http://www.debian.org/releases/2.0/autoup/ * http://www.taz.net.au/autoup/ * http://debian.vicnet.net.au/autoup/ * Seguendo attentamente il Debian libc5 to libc6 Mini-HOWTO (http://debian.vicnet.net.au/autoup/HOWTO/libc5-libc6-Mini-HOWTO.html) ed aggiornando i più importanti pacchetti a mano. `autoup.sh' è basato su questo Mini-HOWTO, quindi questo metodo dovrebbe funzionare più o meno come utilizzando `autoup.sh'. * Usando un `apt' basato su libc5. APT sta per A Package Tool e un giorno potrebbe sostituire dselect. Attualmente, funziona solo come un'interfaccia a riga di comando o come un metodo di accesso di dselect. Si potrà trovare una versione per libc5 nella directory `dists/slink/main/upgrade-older-i386' negli archivi Debian. * Usando solo dselect, senza aggiornare nessun pacchetto a mano prima. È altamente raccomandato di NON usare questo metodo se lo si può evitare, perché dselect da solo attualmente non installa i pacchetti in un ordine ottimale. APT funziona meglio ed è più sicuro. 8.2. Come posso mantenere il mio sistema Debian recente? -------------------------------------------------------- Si può eseguire semplicemente un ftp anonimo ad un archivio Debian, poi esplorare le directory fino a quando si trova il file desiderato, poi lo si scarica e finalmente lo si installa usando `dpkg'. Si noti che `dpkg' installerà i file aggiornati al volo, anche su un sistema in esecuzione. Qualche volta, un pacchetto revisionato richiederà l'installazione di una rinnovata versione di un altro pacchetto, in questo caso l'installazione fallirà fino a quando l'altro pacchetto non sarà installato. Molta gente trova questo approccio troppo uno spreco di tempo, dato che Debian si evolve molto rapidamente -- tipicamente, sono caricati ogni settimana una dozzina o più nuovi pacchetti. Questo numero è più grande appena prima una nuova major release. Dovendosi occupare di questa valanga, molta gente preferisce usare un metodo più automatico. Sono disponibili diversi pacchetti a questo scopo: 8.2.1. APT ---------- APT è un'interfaccia avanzata al sistema di pacchettamento Debian. apt-get è lo strumento da riga di comando per gestire pacchetti, e il metodo APT dselect è un'interfaccia ad APT attraverso `dselect'. Entrambi forniscono una via più semplice, sicura per installare ed aggiornare pacchetti. Come caratteristiche di APT l'ordine di installazione, la possibilità di sorgenti multiple e diverse altre funzionalità uniche, si veda l'User's Guide su `/usr/share/doc/apt/guide.html/index.html'. Si installi il pacchetto `apt' e si modifichi il file `/etc/apt/sources.list' per configurarlo. Se si desidera aggiornare all'ultima versione stabile di Debian, si vorrà probabilmente usare una sorgente come questa: http://http.us.debian.org/debian stable main contrib non-free Si può sostituire http.us.debian.org con il nome del mirror Debian più veloce vicino a voi. Si veda la lista dei mirror su http://www.debian.org/misc/README.mirrors per maggiori informazioni. Dettagli su questo possono essere trovati nelle pagine di manuale apt-get(8) e sources.list(8), così come nella suddetta APT User's Guide, su `/usr/share/doc/apt/guide.html/index.html'. Poi si esegua apt-get update seguito da apt-get dist-upgrade Si risponda a qualsiasi domanda possa comparire, e il proprio sistema sarà aggiornato. Per usare APT con `dselect', si scelga il metodo di accesso di APT sulla schermata di selezione del metodo di dselect (opzione 0) e si specifichino poi i sorgenti che dovrebbero venire utilizzati. Il file di configurazione è `/etc/apt/sources.list' e il suo formato è descritto nella pagina di manuale sources.list(5). Se si vogliono usare dei CD per installare pacchetti, si può usare `apt-cdrom'. Per dettagli, si vedano le Note di Rilascio (Release Notes), sezione "Setting up for an upgrade from a local mirror". Si noti che quando si ottengono e si installano i pacchetti, li si ha ancora nella gerarchia di directory in /var. Per preservare la propria partizione dall'overflow, ci si ricordi di eliminare i file in più usando `apt-get clean' e `apt-get autoclean', o di spostarli in qualche altro posto (consiglio: si usi `apt-move'). 8.2.2. dpkg-ftp --------------- Questo è un metodo di accesso più vecchio per `dselect'. Può essere richiamato dall'interno di `dselect', permettendo quindi ad un utente di scaricare file ed installarli in un unico passo. Per fare ciò, si selezioni il metodo di accesso `ftp' in `dselect' (opzione 0) e si specifichi il nome dell'host remoto e la directory. `dpkg-ftp' scaricherà poi automaticamente i file che sono selezionati (in questa sessione di `dselect' oppure in una precedente). Si noti che, a differenza del programma `mirror', `dpkg-ftp' non preleva tutto da un sito mirror. Piuttosto, scarica solo quei file selezionati (al primo avvio di `dpkg-ftp') e che necessitano di essere aggiornati. `dpkg-ftp' è un qualcosa di obsoleto. Si dovrebbe invece utilizzare il metodo di accesso APT con URL ftp:// in `sources.list'. 8.2.3. mirror ------------- Questo script in Perl, e il suo (opzionale) programma di gestione chiamato `mirror-master', può essere usato per prelevare parti di alberi di directory specificate dall'utente da uno specifico host _via_ FTP anonimo. `mirror' è particolarmente utile per scaricare grandi quantità di software. Dopo che i file sono stati scaricati da un sito per la prima volta, un file chiamato `.mirrorinfo' viene memorizzato nell'host locale. Cambiamenti al file system remoto sono tracciati automaticamente da `mirror', che paragona questo file ad un file simile sul sistema remoto e scarica solo i file cambiati. Il programma `mirror' è generalmente utile per aggiornare copie locali o remote di alberi di directory. I file prelevati non hanno bisogno di essere file Debian. (Dato che `mirror' è uno script in Perl, può anche funzionare su sistemi non Unix.) Sebbene il programma `mirror' fornisca meccanismi per escludere nomi di file che corrispondono a stringhe definite dall'utente, questo programma è più utile quando l'obiettivo è scaricare interi alberi di directory, piuttosto che pacchetti selezionati. 8.2.4. dpkg-mountable --------------------- dpkg-mountable aggiunge un metodo di accesso chiamato 'mountable' alla lista di dselect, che permetterà di installare da ogni file system specificato in /etc/fstab. Per esempio, l'archivio potrebbe essere una normale partizione di un hard disk o un server NFS, che monterà e smonterà automaticamente se necessario. Possiede anche alcune caratteristiche aggiuntive non reperibili nei metodi standard di dselect, come una riserva per un albero locale di file (sia parallelo alla distribuzione principale che totalmente separato), e l'ottenimento di soli pacchetti richiesti, piuttosto che una scansione ricorsiva delle directory dispendiosa in termini di tempo, così come l'accesso di tutte le azioni di dpkg nel metodo di installazione. 8.3. Devo entrare in modalità singolo-utente per aggiornare un pacchetto? ------------------------------------------------------------------------- No. I pacchetti possono essere aggiornati al volo, anche su sistemi in esecuzione. Debian ha un programma `start-stop-daemon' che è invocato per fermare e poi riavviare processi in esecuzione se necessario durante l'aggiornamento di un pacchetto. 8.4. Devo tenere tutti questi file di archivio .deb sul mio disco? ------------------------------------------------------------------ No. Se ci si è scaricati i file nel proprio disco (il che non è assolutamente necessario, si veda sopra per la descrizione di dpkg-ftp), dopo che si sono installati questi pacchetti, li si può rimuovere dal proprio sistema. 8.5. Come posso tenere un log dei pacchetti che ho aggiunto al sistema? ----------------------------------------------------------------------- `dpkg' tiene una traccia dei pacchetti che sono stati spacchettati, configurati, rimossi e/o eliminati, ma (attualmente) non tiene un log delle operazioni del terminale che viene usato quando un pacchetto viene così manipolato. La maniera più semplice per superare questo è eseguire il proprio `dpkg'/`dselect'/`apt-get'/qualsiasi sessione all'interno del programma script(1). ------------------------------------------------------------------------------- 9. Debian e il kernel --------------------- 9.1. Posso installare e compilare un kernel senza alcun adattamento specifico per Debian? ---------------------------------------------------------------------------- Sì. C'è solo una trappola: le librerie C di Debian sono compilate con la più recente release _stabile_ degli header del _kernel_. Se capita di aver bisogno di compilare un programma con gli header del kernel più nuovi rispetto a quelli nella serie stabile allora si dovrebbe aggiornare il pacchetto contenente gli header (`libc6-dev') oppure usare i nuovi header da un albero di directory del kernel più recente. Così, se i sorgenti del kernel sono in `/usr/src/linux', si dovrebbe aggiungere `-I/usr/src/linux/include/' alla propria riga di comando quando si compila. 9.2. Quali strumenti fornisce Debian per costruire kernel personalizzati? ------------------------------------------------------------------------- Gli utenti che desiderano (o devono) costruirsi un kernel personalizzato sono incoraggiati a scaricare il pacchetto `kernel-package'. Questo pacchetto contiene lo script per costruire il pacchetto kernel e fornisce la possibilità di creare un pacchetto Debian kernel-image solo eseguendo il comando make-kpkg kernel_image nel livello più alto della directory dei sorgenti del kernel. L'aiuto è disponibile eseguendo il comando make-kpkg --help e attraverso la pagina di manuale make-kpkg(1). Gli utenti devono scaricare separatamente il codice sorgente per il kernel più recente (o il kernel di propria scelta) dall'archivio del proprio sito Linux preferito, a meno che un pacchetto kernel-source-version sia disponibile (dove "version" rappresenta la versione del kernel). Istruzioni dettagliate sull'uso del pacchetto `kernel-package' sono fornite nel file `/usr/doc/kernel-package/README.gz'. In breve, si dovrebbe: * Spacchettare i sorgenti del kernel e `cd' alla nuova directory creata. * Modificare la configurazione del kernel usando uno di questi comandi: * `make config' (per un'interfaccia tty una-riga-alla-volta). * `make menuconfig' (per un'interfaccia a menu basata su ncurses). Si noti che se si usa questa opzione, il pacchetto `libncurses5-dev' deve essere installato. * `make xconfig' (per un'interfaccia X11). Usare questa opzione richiede che pacchetti rilevanti di X e Tcl/Tk siano installati. Ognuno dei passi sopra genera un nuovo `.config' nel livello più alto della directory dei sorgenti del kernel. * Eseguire il comando: `make-kpkg -rev Custom.N kernel_image', dove N è un numero di revisione assegnato dall'utente. Il nuovo archivio Debian così formato dovrebbe avere revisione Custom.1, p.e., `kernel-image-2.2.14_Custom.1_i386.deb' per il kernel Linux 2.2.14. * Installare il pacchetto creato. * `Si esegua dpkg --install /usr/src/kernel-image-VVV_Custom.N.deb' per installare il kernel. Lo script di installazione: * eseguirà il boot loader, LILO (se è installato), * installerà il kernel personalizzato in /boot/vmlinuz_VVV-Custom.N e imposterà gli appropriati link simbolici alla versione del kernel più recente. * chiederà all'utente di fare un floppy di avvio. Questo floppy conterrà solo il kernel. Si veda Sezione 9.3, `Come posso creare un floppy di avvio personalizzato?'. * Per servirsi di boot loader secondari come `grub' o `loadlin', si copi questa immagine in altri posti (p.e., in /boot/grub o su una partizione `MS-DOS'). 9.3. Come posso creare un floppy di avvio personalizzato? --------------------------------------------------------- Questo compito è molto semplificato dal pacchetto Debian `boot-floppies', che si trova normalmente nella sezione `admin' dell'archivio FTP Debian. Gli script di shell in questo pacchetto producono floppy di boot nel formato `SYSLINUX'. Questi sono floppy formattati `MS-DOS' i cui master boot record sono stati alterati così che possano avviare direttamente Linux (o qualsiasi altro sistema operativo sia stato definito nel file syslinux.cfg sul floppy). Altri script in questo pacchetto producono dischi di root di emergenza e possono anche riprodurre i dischi base. Si troveranno maggiori informazioni su questo nel file `/usr/doc/boot-floppies/README' dopo aver installato il pacchetto `boot-floppies'. 9.4. Quali strumenti speciali fornisce Debian per lavorare con i moduli? ------------------------------------------------------------------------ Il pacchetto `modconf' di Debian fornisce uno script di shell (`/usr/sbin/modconf') che può essere usato per personalizzare la configurazione dei moduli. Questo script presenta un'interfaccia basata su menu che chiede all'utente particolari sui dispositivi driver caricabili nel suo sistema. Le risposte sono usate per personalizzare il file `/etc/modules.conf' (che elenca gli alias ed altri argomenti che devono essere usati in congiunzione con i vari moduli) attraverso i file in `/etc/modutils/' e `/etc/modules' (che elenca i moduli che devono essere caricati all'avvio). Come i (nuovi) file Configure.help sono ora disponibili per supportare la costruzione di kernel personalizzati, il pacchetto modconf nasce con una serie di file di aiuto (in `/usr/lib/modules_help/') che forniscono informazioni dettagliate sugli argomenti appropriati per ognuno dei moduli. 9.5. Posso disinstallare con sicurezza un vecchio pacchetto kernel e, se sì, come? ---------------------------------------------------------------------------- Sì. Lo script `kernel-image-NNN.prerm' verifica se il kernel che si sta correntemente usando è lo stesso kernel che si sta tentando di disinstallare. Quindi si può rimuovere il pacchetto dell'immagine del kernel che non si vuole usando questo comando: dpkg --purge --force-remove-essential kernel-image-NNN (si sostituisca "NNN" con la propria versione e numero di revisione del kernel, ovviamente) ------------------------------------------------------------------------------- 10. Personalizzare la propria installazione di Debian GNU/Linux --------------------------------------------------------------- 10.1. Come posso assicurarmi che tutti i programmi usino lo stesso formato carta? ---------------------------------------------------------------------------- Si installi il pacchetto `libpaperg' che chiederà un formato carta predefinito esteso a tutto il sistema. Questa impostazione sarà mantenuta nel file `/etc/papersize'. Gli utenti possono sovrascrivere l'impostazione del formato carta usando la variabile d'ambiente `PAPERSIZE'. Per dettagli, si veda la pagina di manuale papersize(5). 10.2. Come posso fornire accesso alle periferiche hardware senza compromettere la sicurezza? ---------------------------------------------------------------------------- Molti file di device nella directory `/dev' appartengono ad alcuni gruppi predefiniti. Per esempio, `/dev/fd0' appartiene al gruppo `floppy' e `/dev/dsp' appartiene al gruppo `audio'. Se si vuole che un certo utente abbia accesso ad uno di questi device, si aggiunga l'utente al gruppo a cui appartiene il device, cioè si faccia: adduser utente gruppo In questo modo non si dovranno cambiare i permessi dei file sul device. 10.3. Come carico un font di console all'avvio nel modo Debian? --------------------------------------------------------------- I pacchetti `kbd' e `console-tools' lo supportano, si modifichi il file `/etc/kbd/config' o `/etc/console-tools/config'. 10.4. Come posso configurare i default di un'applicazione del programma X11? ---------------------------------------------------------------------------- I programmi X di Debian installeranno le loro risorse per le applicazioni nella directory `/etc/X11/app-defaults/'. Se si vogliono personalizzare globalmente le applicazioni X, si mettano le proprie personalizzazioni in questi file. Sono marcati come file di configurazione, quindi il loro contenuto sarà preservato durante gli aggiornamenti. 10.5. Ogni distribuzione sembra avere un metodo di avvio differente. Parlatemi di quello di Debian. ---------------------------------------------------------------------------- Come tutti gli Unix, Debian si avvia eseguendo il programma `init'. Il file di configurazione per `init' (che è `/etc/inittab') specifica che il primo script da eseguire dovrebbe essere `/etc/init.d/rcS'. Questo script esegue tutti gli script in `/etc/rcS.d/' usando il comando source o generando un sottoprocesso, a seconda della loro estensione, per effettuare un'inizializzazione come verificare e montare i file system, caricare moduli, avviare i servizi di rete, impostare l'orologio ed effettuare altre inizializzazioni. Poi, per compatibilità, esegue anche i file (eccetto quelli con un '.' nel nome del file) dentro `/etc/rc.boot/'. Ogni script in quest'ultima directory è solitamente riservato all'uso da parte degli amministratori di sistema e usarli nei pacchetti è deprecabile. Dopo aver completato il processo di avvio, `init' esegue tutti gli script di avvio dentro una directory specificata dal livello di esecuzione (runlevel) predefinito (questo runlevel è dato dalla voce `id' in `/etc/inittab'). Come la maggior parte degli Unix compatibili con il System V, Linux ha 7 runlevel: * 0 (ferma il sistema), * 1 (modalità singolo-utente), * 2 fino a 5 (varie modalità multi-utente) e * 6 (riavvia il sistema). I sistemi Debian funzionano con id=2, che indica che il runlevel predefinito sarà '2' quando si entra nello stato di multi-utente, e che gli script in `/etc/rc2.d/' verranno eseguiti. Infatti, gli script in ognuna delle directory, `/etc/rcN.d