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 5.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 5.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 5.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/' sono solo link simbolici agli script in `/etc/init.d/'. Comunque, i _nomi_ dei file in ognuna delle directory `/etc/rcN.d/' sono selezionati per indicare il _modo_ in cui gli script in `/etc/init.d/' verranno eseguiti. Specificatamente, prima di entrare in ogni runlevel, tutti gli script che iniziano con 'K' sono eseguiti; questi script uccidono i servizi. Poi vengono eseguiti tutti gli script che iniziano con 'S'; questi script avviano i servizi. Il numero a due cifre che segue la 'K' o la 'S' indica l'ordine in cui lo script sarà eseguito. Gli script con un numero minore sono eseguiti prima. Questo approccio funziona perché tutti gli script dentro a `/etc/init.d/' accettano un argomento che può essere 'start, 'stop', 'reload', 'restart' o 'force-reload' e svolgeranno poi il compito indicato dall'argomento. Questi script possono essere usati anche dopo che un sistema è stato avviato, per controllare vari processi. Per esempio, con l'argomento 'reload' il comando /etc/init.d/sendmail reload invia al demone sendmail un segnale di rileggere il suo file di configurazione. 10.6. Sembra che Debian non usi `rc.local' per personalizzare il processo di avvio; che facilitazioni vengono fornite? ---------------------------------------------------------------------------- Si supponga che un sistema necessiti di eseguire lo script `foo' all'avvio o all'ingresso di un particolare runlevel (System V). Allora l'amministratore di sistema dovrebbe: * Mettere lo script `foo' nella directory `/etc/init.d/'. * Eseguire il comando Debian `update-rc.d' con gli argomenti appropriati, per impostare i link tra le directory (specificate da riga di comando) rc?.d e `/etc/init.d/foo'. Qui, '?' è un numero da 0 a 6 e corrisponde ad ognuno dei runlevel System V. * Riavviare il sistema. Il comando `update-rc.d' imposterà i link tra i file nelle directory rc?.d e lo script in `/etc/init.d/'. Ogni link inizierà con una 'S' o una 'K', seguita da un numero, seguito dal nome dello script. Gli script in `/etc/rcN.d/' che iniziano con 'S' vengono eseguiti quando si entra nel runlevel `N'. Gli script che iniziano con 'K' sono eseguiti quando si lascia il runlevel `N'. Si può, per esempio, fare in modo che lo script `foo' venga eseguito all'avvio, mettendolo in `/etc/init.d/' ed installando i link con `update-rc.d foo defaults 19'. L'argomento 'defaults' fa riferimento ai runlevel predefiniti, che sono dal 2 al 5. L'argomento '19' assicura che `foo' sia chiamato prima di qualunque script contenente il numero 20 o superiore. 10.7. Come si occupa il sistema di manutenzione dei pacchetti dei pacchetti che contengono file di configurazione per altri pacchetti? ---------------------------------------------------------------------------- Alcuni utenti desiderano creare, per esempio, un nuovo server installando un gruppo di pacchetti Debian ed un pacchetto generato localmente che consiste di file di configurazione. Questa non è generalmente una buona idea, perché `dpkg' non conoscerà quei file di configurazione se sono in un pacchetto differente, e può scrivere configurazioni in conflitto quando uno dei paccheti del "gruppo" iniziale viene aggiornato. Piuttosto, si crei un pacchetto locale che modifichi i file di configurazione del "gruppo" di pacchetti Debian che interessano. Poi `dpkg' e il resto del sistema di gestione pacchetti vedrà che i file sono stati modificati dal "sysadmin" locale e non cercherà di sovrascriverli quando quei pacchetti verranno aggiornati. 10.8. Come sovrascrivo un file installato da un pacchetto in modo che ne venga usata una versione differente? ---------------------------------------------------------------------------- Si supponga che l'amministratore o un utente locale desideri usare un programma "login-local" piuttosto del programma "login" fornito dal pacchetto `login' di Debian. _Non_: * Si sovrascriva `/bin/login' con `login-local'. Il sistema di manutenzione pacchetti non saprà di questo cambiamento e semplicemente sovrascriverà il proprio `/bin/login' personale ogni volta che `login' (o qualsiasi altro pacchetto che fornisce `/bin/login') verrà installato o aggiornato. Invece, * Si esegua: dpkg-divert --divert /bin/login.debian /bin/login in modo che tutte le future installazioni del pacchetto `login' di Debian scrivano, al posto del file `/bin/login', `/bin/login.debian'. * Poi si esegua: cp login-local /bin/login per muovere il proprio programma al suo posto. I dettagli sono forniti nella pagina di manuale dpkg-divert(8). 10.9. Come posso avere il mio pacchetto generato localmente nella lista dei pacchetti disponibili che il sistema di gestione dei pacchetti conosce? ---------------------------------------------------------------------------- Si esegua il comando: dpkg-scanpackages BIN_DIR OVERRIDE_FILE [PATHPREFIX] > my_Packages dove: * BIN-DIR è la directory dove i file di archivio Debian (che solitamente hanno estensione ".deb") sono situati. * OVERRIDE_FILE è il file che viene modificato dal manutentore della distribuzione ed è solitamente situato su un archivio FTP Debian su `indices/override.main.gz' per i pacchetti Debian nella distribuzione "main". Può essere ignorato per pacchetti locali. * PATHPREFIX è una stringa _opzionale_ che può precedere il file `my_Packages'. [NdT: precede il nome del pacchetto nel campo Filename del file my_Packages creato] Una volta che si è creato il file `my_Packages', lo si dica al sistema di manutenzione pacchetti usando il comando: dpkg --merge-avail my_Packages Se si sta usando APT, si può anche aggiungere il deposito locale al proprio file sources.list(5). 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à? ---------------------------------------------------------------------------- Ci sono diversi casi in cui due pacchetti forniscono due versioni differenti di un programma, i quali forniscono entrambi le stesse funzionalità fondamentali. Gli utenti possono preferire l'uno rispetto all'altro per abitudine o perché l'interfaccia utente di un pacchetto è in qualche modo più piacevole di quella di un altro. Altri utenti sullo stesso sistema possono fare una scelta differente. Debian usa un sistema di pacchetti "virtuali" per permettere agli amministratori di sistema di scegliere (o lasciare che gli utenti scelgano) i propri strumenti preferiti quando ce ne sono due o più che forniscono la stessa funzionalità di base e che ancora soddisfano i requisiti delle dipendenze senza specificare un particolare pacchetto. Per esempio, potrebbero esistere due differenti versioni di lettori di news su un sistema. Il pacchetto del server delle news potrebbe 'raccomandare' che esistano _alcuni_ lettori di news sul sistema, ma la scelta di `tin' o `trn' è lasciata all'utente. Ciò è realizzato avendo entrambi i pacchetti `tin' e `trn' che forniscono il pacchetto virtuale `news-reader'. _Quale_ programma viene richiamato è determinato da un link che punta dal file con il nome del pacchetto virtuale `/etc/alternatives/news-reader' al file selezionato, p.e., `/usr/bin/trn'. Un solo link è insufficiente per supportare pienamente l'uso di un programma alternativo; normalmente, le pagine di manuale e possibilmente anche altri file di supporto devono essere selezionati. Lo script Perl `update-alternatives' fornisce un mezzo per assicurarsi che tutti i file associati con uno specifico pacchetto siano selezionati come un default di sistema. Per esempio, per verificare quale eseguibile fornisce 'x-window-manager', si esegua: update-alternatives --display x-window-manager Se lo si vuole cambiare, si esegua: update-alternatives --config x-window-manager E si seguano le istruzioni sullo schermo (sostanzialmente, si prema il numero vicino alla voce che si preferisce). Se, per alcune ragioni, un pacchetto non si registra da solo come un window manager (si riporti il baco se c'è un errore) o se si usa un window manager dalla directory /usr/local, le selezioni sullo schermo non conterranno la propria voce preferita. Si può aggiornare il link attraverso opzioni da riga di comando, così: update-alternatives --install /usr/bin/x-window-manager \ x-window-manager /usr/local/bin/wmaker-cvs 50 Il primo argomento dell'opzione '--install' è il link simbolico che punta a /etc/alternatives/NAME, dove NAME è il secondo argomento. Il terzo argomento è il programma al quale /etc/alternatives/NAME dovrebbe puntare e il quarto argomento è la priorità (un grande valore significa che l'alternativa sarà ottenuta più probabilmente automaticamente). Per rimuovere un'alternativa che si è aggiunta si esegua semplicemente: update-alternatives --remove x-window-manager /usr/local/bin/wmaker-cvs ------------------------------------------------------------------------------- 11. Ottenere supporto per Debian GNU/Linux ------------------------------------------ 11.1. Quale altra documentazione esiste su e per un sistema Debian? ------------------------------------------------------------------- * Istruzioni per l'installazione per l'attuale release: si veda http://www.debian.org/releases/stable/installmanual. * Il "Packaging Manual" è la documentazione primaria sugli aspetti tecnici della creazione di pacchetti binari e sorgenti Debian. Lo si può trovare nel pacchetto `packaging-manual' o su ftp://ftp.debian.org/debian/doc/package-developer/packaging.html.tar.gz. * Il "Policy Manual" documenta i requisiti delle linee guida della distribuzione, ovvero la struttura e il contenuto dell'archivio Debian, varie specifiche sulla progettazione del sistema operativo, così come i requisiti tecnici che ogni pacchetto deve soddisfare per essere incluso nella distribuzione. Lo si prelevi dal pacchetto `debian-policy' o su http://www.debian.org/doc/devel-manuals#policy. * La documentazione sui pacchetti Debian installati: La maggior parte dei pacchetti ha dei file che vengono estratti in `/usr/doc/PACKAGE'. * La documentazione sul Linux project: Il pacchetto Debian `doc-linux' installa tutte le più recenti versioni degli HOWTO e mini-HOWTO dal Linux Documentation Project (http://www.tldp.org/). * Le pagine di manuale in stile Unix: La maggior parte dei comandi ha le pagine di manuale scritte nello stile dei file 'man' originali di Unix. Si riferiscono alle sezioni delle directory 'man' dove essi risiedono: p.e., foo(3) si riferisce alla pagina di manuale che risiede in /usr/share/man3/ e può essere richiamata eseguendo il comando: `man 3 foo' o solo `man foo' se la sezione 3 è la prima contenente una pagina su `foo'. Si può conoscere quale directory di `/usr/share/man/' contiene una certa pagina di manuale eseguendo `man -w foo'. I nuovi utenti Debian dovrebbero notare che le pagine 'man' di molti comandi generici di sistema non sono disponibili finché non si installano questi pacchetti: * `man-db', che contiene il programma `man' ed altri programmi per manipolare le pagine di manuale. * `manpages', che contiene le pagine di manuale di sistema. (si veda Sezione 4.8, `Come fa Debian a supportare lingue non-inglesi?'). * Le pagine 'info' in stile GNU: La documentazione utente per molti comandi, in particolare per strumenti GNU, non è disponibile nelle pagine di manuale, ma nei file 'info' che possono essere letti dallo strumento GNU `info', eseguendo `M-x info' all'interno di GNU Emacs o con qualche altro visualizzatore di pagine Info. Il principale vantaggio rispetto alle originali pagine di manuale è che viene usato un sistema ad ipertesto. Comunque, _non_ richiede il WWW; `info' può essere eseguito da una console testuale. È stato progettato da Richard Stallman ed ha preceduto il WWW. Si noti che si può accedere a molta documentazione presente nel proprio sistema utilizzando un browser WWW, attraverso i comandi 'dwww' o 'dhelp', che si trovano nei rispettivi pacchetti. 11.2. Ci sono risorse on-line dove discutere su Debian? ------------------------------------------------------- Sì. Infatti, il metodo principale con cui Debian fornisce supporto ai nostri utenti è via email. 11.2.1. Liste di messaggi (Mailing list) ---------------------------------------- Ci sono molte liste di messaggi relative a Debian (http://www.debian.org/MailingLists/). Su di un sistema con il pacchetto `doc-debian' installato c'è una lista completa di liste di messaggi in `/usr/share/doc/debian/mailing-lists.txt'. Le liste di messaggi Debian sono denominate seguendo il modello debian-. Esempi sono debian-announce, debian-user, debian-news. Per iscriversi a qualsiasi lista debian-, si invii una mail a debian--request@lists.debian.org con la parola "subscribe" nell'intestazione Subject:. Ci si assicuri di ricordare di aggiungere _-request_ all'indirizzo email quando si utilizza questo metodo per iscriversi o disiscriversi. Altrimenti la vostra email andrà alla lista stessa, il che potrebbe essere imbarazzante o fastidioso, dipende dal proprio punto di vista. Se si ha un browser World Wide Web che supporta le form, ci si può iscrivere alle liste di messaggi utilizzando la form WWW (http://www.debian.org/MailingLists/subscribe). Ci si può anche disiscrivere utilizzando una form WWW (http://www.debian.org/MailingLists/unsubscribe). L'indirizzo e-mail dell'amministratore della lista è , nel caso si abbia qualsiasi problema. Gli archivi delle liste di messaggi Debian sono disponibili via WWW su http://lists.debian.org/. 11.2.1.1. Qual è il codice di condotta per le liste di messaggi? ---------------------------------------------------------------- Quando si usano le liste di messaggi Debian, per favore si seguano queste regole: * Non inviare spam. Si veda il Regolamento Debian per la pubblicità sulle liste di messaggi (http://www.debian.org/MailingLists/#ads). * Evitare i flame; non è educato. Le persone che sviluppano Debian sono tutte volontarie, che donano il proprio tempo, energia e denaro nel tentativo di portare avanti il progetto Debian insieme. * Non usare un linguaggio volgare; inoltre alcune persone ricevono le liste tramite pacchetti radio, dove imprecare è illegale. * Assicurarsi di utilizzare la lista corretta. _Mai_ inviare la propria richiesta di (dis)iscrizione alla lista di messaggi stessa. [1] * Si veda la sezione Sezione 11.5, `Come segnalo un baco in Debian?' per le note sulla segnalazione di bachi. [1] Si utilizzi l'indirizzo debian--REQUEST@lists.debian.org per quello. 11.2.2. Manutentori ------------------- Gli utenti possono rivolgere domande ai manutentori dei singoli pacchetti usando l'email. Per raggiungere un manutentore di un pacchetto chiamato xyz, si invii un'email a _xyz@packages.debian.org_. 11.2.3. Gruppi di discussione (newsgroup) Usenet ------------------------------------------------ Gli utenti dovrebbero rivolgere domande non relative a Debian ad uno dei gruppi USENET, che si chiamano comp.os.linux.* o linux.* [NdT: in italiano it.comp.os.linux.*]. Ci sono diverse liste di gruppi di discussione Usenet Linux ed altre risorse correlate sul WWW, p.e. sui siti di Linux Online (http://www.linux.org/docs/usenet.html) e di LinuxJournal (http://www.linuxjournal.com/helpdesk.php). 11.3. C'è un modo rapido per cercare informazioni su Debian GNU/Linux? ---------------------------------------------------------------------- C'è una varietà di motori di ricerca che fornisce documentazione relativa a Debian: * Sito WWW di ricerca Debian (http://search.debian.org/). * Gruppi Google (http://groups.google.com/): un motore di ricerca per gruppi di discussione. Per esempio, per trovare che esperienze ha avuto la gente nel trovare dei driver per i controller Promise sotto Debian, si provi a cercare l'espressione `Promise Linux driver'. Questo mostrerà tutti i messaggi che contengono queste stringe, ovvero quelli dove la gente ha discusso questi argomenti. Se si aggiunge `Debian' a quelle stringhe di ricerca, si avranno inoltre i messaggi attinenti specificatamente a Debian. * Ognuno dei motori di ricerca sul web, come AltaVista (http://www.altavista.com/) o Google (http://www.google.com/), purché si usino i termini di ricerca corretti. Per esempio, cercare la stringa "cgi-perl" fornisce una spiegazione più dettagliata di questo pacchetto rispetto alla breve descrizione nel suo control file. 11.4. Ci sono log di bachi conosciuti? -------------------------------------- La distribuzione Debian GNU/Linux ha un sistema di tracciamento bachi (bug tracking system, BTS) che registra i dettagli dei bachi riportati da utenti e sviluppatori. Ad ogni baco viene assegnato un numero e viene mantenuto finché non viene gestito e marcato come tale. Copie di questa informazione sono disponibili su http://www.debian.org/Bugs/. Un server di posta fornisce accesso al database del sistema di tracciamento bachi via e-mail. Per ottenere le istruzioni si invii un'e-mail a request@bugs.debian.org con "help" nel corpo del messaggio. 11.5. Come segnalo un baco in Debian? ------------------------------------- Se si è trovato un baco in Debian per favore si leggano le istruzioni per segnalare un baco. Queste istruzioni possono essere ottenute in uno di vari modi: * Da FTP anonimo. I siti mirror Debian contengono le istruzioni nel file `doc/bug-reporting.txt'. * Dal WWW. Una copia delle istruzioni è esposta su http://www.debian.org/Bugs/Reporting. * Su qualsiasi sistema Debian con il pacchetto `doc-debian' installato. Le istruzioni sono nel file `/usr/doc/debian/bug-reporting.txt'. Si possono usare i pacchetti `bug' o `reportbug' che guideranno l'utente attraverso il processo di segnalazione e spediranno il messaggio all'indirizzo corretto, con alcuni dettagli in più sul proprio sistema aggiunti automaticamente. Se si vuole spedire la segnalazione con un programma di posta elettronica si invii un messaggio a . La prima riga del messaggio deve essere simile a Package: nome-pacchetto (si sostituisca con il nome del pacchetto). La riga seguente dovrebbe riferirsi al numero di versione del pacchetto in un modo simile: Version: numero-versione Il numero di versione per ogni pacchetto installato sul proprio sistema può essere ottenuto usando la riga di comando dpkg -s Ci si riferisce a questa sezione come alla pseudo-intestazione. Il resto del messaggio dovrebbe contenere la descrizione del baco (per favore la si faccia moderatamente dettagliata), la release Debian che si sta usando e le versioni di altri pacchetti rilevanti. Il numero di release Debian verrà visualizzato con il comando cat /etc/debian_version Si aspetti di ricevere un riconoscimento automatico della propria segnalazione. A questa verrà anche assegnato un numero di tracciamento bachi, verrà immessa nel log dei bachi ed inoltrata alla lista di messaggi debian-bugs-dist. Se si identifica un baco che è comune a molti programmi, allora piuttosto che addentrarsi in dozzine di segnalazioni molto simili di bachi, si può preferire inviare i singoli bachi a (invece dell'indirizzo submit@...) per raggiungere solo i rispettivi manutentori del pacchetto, e poi inviare una segnalazione concisa alle liste di messaggi debian-devel e/o debian-bugs-dist. In aggiunta, esiste un pacchetto Debian controllore, chiamato Lintian (http://www.debian.org/lintian/), che è progettato per controllare meccanicamente i pacchetti Debian per violazioni della policy ed errori comuni di pacchettamento. Pertanto, se si scopre un baco in un pacchetto che sembra apparire anche in altri pacchetti, sarebbe meglio mettersi in contatto con i manutentori di Lintian a così che venga scritto un nuovo controllo per Lintian invece di segnalare il baco direttamente. Questo impedirà che il baco appaia ancora in versioni future del pacchetto o in qualsiasi altro pacchetto della distribuzione. Si può anche usare per inviare segnalazioni di bachi al solo BTS senza inviarli anche a debian-bugs-dist o al manutentore. Questo indirizzo 'quiet' (calmo) viene usato molto raramente, p.e. quando si vuole inviare qualche informazione minore per la propria segnalazione, che dovrebbe essere registrata solo nel log, o quando si vuole registrare qualcosa nel log del BTS ma lo si è già inviato al manutentore. ------------------------------------------------------------------------------- 12. Contribuire al Progetto Debian ---------------------------------- Donazioni di tempo (per sviluppare nuovi pacchetti, mantenere pacchetti esistenti o fornire supporto agli utenti), risorse (fare da mirror agli archivi FTP e WWW) e denaro (pagare per nuovi test come pure hardware per gli archivi) possono aiutare il progetto. 12.1. Come posso diventare uno sviluppatore di software Debian? --------------------------------------------------------------- Lo sviluppo di Debian è aperto a tutti e nuovi utenti con le giuste capacità e/o con buona volontà sono necessari per mantenere pacchetti già esistenti resi "orfani" dai loro precedenti manutentori, sviluppare nuovi pacchetti e fornire supporto agli utenti. La descrizione su come diventare sviluppatore Debian può essere trovata all'Angolo del Nuovo Manutentore (http://www.debian.org/devel/join/newmaint) sul sito web Debian. 12.2. Come posso fornire risorse al progetto Debian? ---------------------------------------------------- Dato che il progetto mira a creare una quantità sostanziale di software accessibile rapidamente e facilmente attraverso tutto il mondo, i mirror sono urgentemente necessari. È desiderabile, ma non assolutamente necessario, fare il mirror di tutto l'archivio. Si visiti la pagina Dimensione del mirror Debian (http://www.debian.org/mirror/size) per informazioni sui requisiti di spazio su disco. La maggior parte del "mirroring" è realizzata interamente in modo automatico da degli script senza alcuna interazione. Comunque, accadono occasionali errori o modifiche di sistema che richiedono l'intervento umano. Se si possiedono una connessione ad Internet ad alta velocità, i mezzi per fare il mirror di tutta o di parte della distribuzione e si è disposti a dedicare tempo (o a trovare qualcuno) per poter fornire una regolare manutenzione al sistema, allora per favore si contatti . 12.3. Come posso contribuire finanziariamente al progetto Debian? ----------------------------------------------------------------- Chiunque può fare donazioni individuali ad una delle due organizzazioni che che si trovano in situazioni critiche per lo sviluppo del progetto Debian. 12.3.1. Software in the Public Interest --------------------------------------- Software in the Public Interest (SPI) è un'organizzazione IRS 501(c)(3) senza fini di lucro, formata quando la FSF ritirò il proprio appoggio a Debian. Lo scopo dell'organizzazione è quello di sviluppare e distribuire software libero. I nostri obiettivi sono molto simili a quelli della FSF e incoraggiamo i programmatori a usare la licenza GNU General Public License sui loro programmi. Comunque, abbiamo un obiettivo leggermente differente in quanto stiamo realizzando e distribuendo un sistema Linux che differisce in molti dettagli tecnici dal sistema GNU progettato dalla FSF. Comunichiamo ancora con la FSF e cooperiamo con loro inviando i cambiamenti apportati al software GNU e chiedendo ai nostri utenti di fare donazioni alla FSF e al progetto GNU. SPI può essere raggiunta su: http://www.spi-inc.org/. 12.3.2. Free Software Foundation -------------------------------- In questo momento non c'è nessuna connessione formale tra Debian e la Free Software Foundation. Comunque, la Free Software Foundation è responsabile di alcuni dei più importanti componenti software in Debian, inclusi il compilatore C di GNU, GNU Emacs e gran parte della libreria run-time di C che è usata da tutti i programmi sul sistema. La FSF è stata pioniera di molto di quello che il software libero è attualmente: ha scritto la General Public License che è usata su gran parte del software Debian ed ha inventato il progetto "GNU" per creare un sistema Unix interamente libero. Debian dovrebbe essere considerata come un discendente del sistema GNU. FSF può essere raggiunta su: http://www.fsf.org/. ------------------------------------------------------------------------------- 13. Redistribuire Debian GNU/Linux come prodotto commerciale ------------------------------------------------------------ 13.1. Posso creare e vendere CD Debian? --------------------------------------- Certamente. Non è necessario il permesso per distribuire qualcosa che abbiamo _rilasciato_, quindi ci si può copiare il proprio CD appena finisce il beta-test. Non si deve pagare niente. Ovvio che tutti i produttori di CD devono accettare le licenze dei programmi in Debian. Per esempio, molti dei programmi sono sotto licenza GPL, che richiede che si redistribuisca il loro codice sorgente Inoltre, pubblicheremo una lista dei produttori di CD che donano denaro, software, e tempo al progetto Debian, e incoraggeremo gli utenti a comperare dai produttori che donano, quindi fare donazioni è una buona pubblicità. 13.2. Debian può essere impacchettata con software non-libero? -------------------------------------------------------------- Sì. Mentre tutti i componenti principali di Debian sono software libero, forniamo una directory non-free per programmi che non sono liberamente redistribuibili. I produttori di CD _possono_ essere in grado di distribuire i programmi che abbiamo collocato in quella directory, dipende dai termini delle licenze o dai loro accordi privati con i produttori di quei pacchetti software. I produttori di CD possono inoltre distribuire il software non-libero che ricevono da altri sorgenti sullo stesso CD. Non è niente di nuovo: software libero e commerciale sono distribuiti sullo stesso CD dai produttori ora. Ovvio che incoraggiamo gli autori del software a rilasciare i programmi che scrivono come software 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? ---------------------------------------------------------------------------- Sì. Per esempio, una persona sta costruendo una distribuzione "Linux for Hams", con programmi specializzati per Radio Amatori. Sta partendo con Debian come "sistema base" e aggiungendo programmi per controllare il trasmettitore, seguire satelliti, ecc. Tutti i programmi che aggiunge sono impacchettati con il sistema di pacchetti Debian così i suoi utenti potranno aggiornare facilmente quando rilascerà i successivi CD. Ci sono diverse altre distribuzioni derivate da Debian già sul mercato, come Corel Linux e Storm Linux, che sono indirizzate ad un differente tipo di pubblico rispetto all'originale Debian GNU/Linux, ma usano la maggior parte dei nostri componenti nei loro prodotti. Debian fornisce inoltre un meccanismo che permette agli sviluppatori e agli amministratori di sistema di installare versioni locali dei file selezionati in modo che non vengano sovrascritti quando altri pacchetti vengono aggiornati. Questo è discusso meglio nella domanda su Sezione 10.8, `Come sovrascrivo un file installato da un pacchetto in modo che ne venga usata una versione differente?'. 13.4. Posso mettere il mio programma commerciale in un "pacchetto" Debian cosicché si possa installare senza fatica su ogni sistema Debian? ---------------------------------------------------------------------------- Certamente. Lo strumento per i pacchetti è software libero; i pacchetti possono essere o meno software libero, li può installare tutti. ------------------------------------------------------------------------------- 14. Cambiamenti aspettati nella prossima major release di Debian ---------------------------------------------------------------- 14.1. Aumento della sicurezza ----------------------------- Debian contiene il supporto per le password shadow fin dalla release 1.3. Inoltre, è disponibile la libreria Linux dei Pluggable Authentication Modules (a.k.a. libpam (http://www.kernel.org/pub/linux/libs/pam/)) che permette agli amministratori di sistema di scegliere i modi di autorizzazione sulle basi di un'applicazione specifica, ed inizialmente è impostato per autenticare attraverso le password shadow. È incluso il totale supporto per i metodi di autenticazione avanzati come Kerberos, RSBAC ed altri in via di sviluppo. 14.2. Supporto esteso per gli utenti non-inglesi ------------------------------------------------ Debian ha già del supporto per utenti non-inglesi, si veda Sezione 4.8, `Come fa Debian a supportare lingue non-inglesi?'. Speriamo di trovare persone che forniscano supporto anche per più lingue, e che traducano. Alcuni programmi supportano già l'internazionalizzazione, così abbiamo bisogno di traduttori dei cataloghi dei messaggi. Rimangono ancora molti programmi che devono essere proriamente internazionalizzati. Il Progetto Traduzione della GNU (GNU Translation Project) ftp://ftp.gnu.org/pub/gnu/ABOUT-NLS lavora sull'internazionalizazione dei programmi GNU. 14.3. Più architetture ---------------------- Un sistema Debian completo su altre architetture come SPARC64 e SuperH sarà pronto presto. 14.4. Più kernel ---------------- In aggiunta a Debian GNU/Hurd, Debian sta facendo il port verso diversi kernel BSD, vale a dire quelli di NetBSD, FreeBSD e OpenBSD. ------------------------------------------------------------------------------- 15. Informazioni generali sulla FAQ ----------------------------------- 15.1. Autori ------------ La prima edizione di questa FAQ era fatta e mantenuta da J.H.M. Dassen (Ray) e Chuck Stickelman. Gli autori della Debian GNU/Linux FAQ riscritta sono Susan G. Kleinmann e Sven Rudolph. Dopo di loro, la FAQ è stata mantenuta da Santiago Vila. L'attuale manutentore è Josip Rodin. Parti di informazioni vengono da: * L'annuncio del rilascio di Debian-1.1, di Bruce Perens (http://www.perens.com/). * La Linux FAQ, di Ian Jackson (http://www.chiark.greenend.org.uk/~ijackson/). * Archivi delle Mailing List Debian (http://lists.debian.org/), * il dpkg programmers' manual e il Debian Policy manual (si veda Sezione 11.1, `Quale altra documentazione esiste su e per un sistema Debian?') * molti sviluppatori, volontari e beta tester e * la memoria traballante dei suoi autori. :-) Gli autori desiderano ringraziare tutti coloro che hanno aiutato a rendere possibile questo documento. Non esistono garanzie. Tutti i marchi registrati appartengono ai rispettivi proprietari. 15.2. Feedback -------------- Commenti ed aggiunte a questo documento sono sempre i benvenuti. Mandate un'e-mail a o inviate un bug report di tipo wishlist sul pacchetto `doc-debian (http://bugs.debian.org/doc-debian)'. 15.3. Reperibilità ------------------ L'ultima versione di questo documento la si può vedere sulle pagine WWW Debian su http://www.debian.org/doc/FAQ/. È anche disponibile per il download nei formati testo puro, HTML, PostScript e PDF su http://www.debian.org/doc/user-manuals#faq. Inoltre, ci sono diverse traduzioni. I file SGML originali usati per creare questo documento sono inoltre disponibili nel pacchetto sorgente `doc-debian' o nel CVS su: `:pserver:anonymous@cvs.debian.org:/cvs/debian-doc/ddp/manuals.sgml/faq' 15.4. Formato del documento --------------------------- Questo documento è stato scritto usando il DebianDoc SGML DTD (riscritto da LinuxDoc SGML). I sistemi DebianDoc SGML ci permettono di creare file in una varietà di formati da uno sorgente, p.e. questo documento può essere visto come HTML, testo puro, TeX DVI, PostScript, PDF e GNU info. Le utility di conversione per DebianDoc SGML sono disponibili nel pacchetto Debian `debiandoc-sgml'. ------------------------------------------------------------------------------- The Debian GNU/Linux FAQ Autori della FAQ Debian versione 4.0.3, 26 June 2008