|
|
Riga 1: |
Riga 1: |
| ==Stable, Testing e Unstable== | | ==Introduzione== |
| | Il repository è a tutti gli effetti un archivio ordinato dove sono raccolti i pacchetti Debian (siano essi pacchetti binari o sorgenti) in modo ben organizzato e costantemente aggiornato. In ogni sistema debian i repository utilizzati vengono indicati nel file <tt>/etc/apt/sources.list</tt>. |
|
| |
|
| Debian ha un sistema di sviluppo particolare quanto unico: � infatti la sola ad avere tre rami diversi divisi in base alle caratteristiche di stabilit�: Stable, Testing, Unstable ed un repository Experimental. | | ===La Struttura=== |
| | Un repository è suddivisibile, grossomodo, in due sezioni: |
| | * '''dists''' in questo ramo sono contenuti i file di controllo, che permettono il funzionamento del sistema di pacchettizzazione. Infatti sono presenti i file che descrivono i pacchetti presenti nell'archivio (divisi per la release di appartenenza); |
| | * '''doc''' raccoglie la documentazione di base per Debian (segnalazioni di Bug, Faq, il Contratto Sociale ed altro) |
| | * '''indices''' contiene l'indice di tutti i file contenuti in tutti i pacchetti. Queste informazioni sono usate da [[Apt-file: ricerca all'interno dei pacchetti|<tt>apt-file</tt>]]. |
| | * '''non-US''' a causa di problemi legali dovuti al divieto di esportazione di matariale per la difesa (tra cui materiale crittografici, utilizzati anche in PGP e SSH). Per ovviare a questi problemi, i pacchetti sono stati posti in una sezione a parte, la cui distribuzione è legata a server non Statunitensi. |
| | * '''pool''' questo è l'archivio vero e proprio, dove sono contenuti i pacchetti, raggruppati per lettera iniziale; |
| | * '''project''' contiene materiale per sviluppatori. Degne di nota la direcotory experimetal, che contiene i pacchetti in fase di sviluppo e perfezionamento;<br/> |
| | * '''tools''' contiene degli strumenti Dos per la creazione di dischetti di boot, partizionamento e lancio di Linux. |
|
| |
|
| ==Stable == | | ===La Suddivisione del repository=== |
| Stable � la release '''stabile''' di Debian. Nello sviluppo Debian, una release viene dichiarata stabile quando i bug ad essa associati prima del rilascio sono quasi inesistenti.
| | Navigando un po' tra gli archivi Debian, si nota subito una particolare suddivisione: i repository, infatti, sono divisi in '''main''', '''contrib''', '''non-free''' e '''non-US''', nel modo seguente:<br/> |
|
| | * '''main''' è la sezione principale, che contiene il 90% dei pacchetti presenti in Debian<br/> |
| Una volta rilasciata, viene aperto un repository speciale: '''security''', che ha lo scopo di raccogliere gli aggiornamenti dei pacchetti presenti nella Stable corrente, per quanto riguarda il fattore sicurezza. Questi aggiornamenti, per�, non riguardano la versione del pacchetto: infatti non ci saranno nuove versioni dei programmi disponibili, ma solo aggiornamenti di sicurezza (quindi applicazioni di patch, in linea di massima).
| | * '''contrib''' raccoglie i pacchetti coerenti con la DFSG5.6, ma che dipendono da pacchetti che non la rispettano<br/> |
| | * '''non-free''' contiene dei pacchetti che possiedono delle limitazioni nella distribuzione (ad esempio perchè non utilizzabili in ambito commerciale o perchè dipendenti da applicazioni o pacchetti che non rispettano la Debian Free Software Guideline)<br/> |
|
| |
|
| Anche se la cosa pu� sembrare inutile, non lo �: supponiamo di avere un sistema produttivo, basato su l'ultima Stable... L'aggiornamento di un programma alla versione successiva potrebbe comportare un po' di problemi: <br/>
| | ==Sources.list== |
| * la struttura e/o la sintassi dei file di configurazione potrebbe subire dei cambiamenti, creando delle incompatibilit� con le configurazioni valide per versioni precedenti;<br/>
| | ===Il ruolo fondamentale=== |
| * potrebbero essere presenti dei cambiamenti sostanziali alla struttura del pacchetto o del programma;
| | Il file '''/etc/apt/sources.list''' è forse il più importante file di configurazione del sistema di gestione dei pacchetti Debian. Esso, infatti, contiene l'elenco e gli indirizzi dei repository a cui apt accede. |
| * potrebbero presentarsi dei bug non segnalati, a causa della 'giovane et�' del pacchetto. <br/>
| |
|
| |
|
| Anche se i punti sopra citati sembrano banali, non � cos�: una macchina di produzione deve essere solida e stabile, e visto che molto spesso � una ottima pratica avere in cron le operazioni di aggiornamento, la probabilit� che un aggiornamento automatico possa creare situazioni di instabilit� o non funzionamento di un servizio non pu� essere accettato.
| | ===Ordine di Inserimento=== |
| Questo � un motivo per cui, nella release Stable, ci sono solo aggiornamenti riguardantii bugfix.
| | È importante inserire i repository con un giusto ordine: i primi in elenco, infatti, sono i più importanti (o favoriti). Per migliorare le performance, è consigliabile ordinarli per velocità (Es. prima il cdrom, poi la rete locale, poi internet, ...). |
|
| |
| ===I Nomi delle Release=== | |
| Una domanda diffusa tra gli utenti alle prime armi con Debian riguarda i nomi delle release; a prima vista, infatti, possono sembrare strani, ma la spiegazione � molto semplice: sono tutti nomi dei personaggi del film [http://www.pixar.com/feature/toystory/toystory.html ToyStory].<br>
| |
| Questa simpatica tradizione � stata iniziata da [http://perens.com/ Bruce Perens] con il rilascio di Debian 1.1 nel 1996. Perens, all' epoca [http://www.debian.org/devel/leader Debian Project Leader], lavorava anche per [http://www.pixar.com Pixar].
| |
| Ecco l'elenco dei nomi delle Stable fino ad ora rilasciate:
| |
|
| |
|
| <br/>
| | ===Sintassi=== |
| <div align="center">
| | Ogni riga che descrive un repository ha una ben determinata sintassi: |
| <table border="1" cellpadding="3" cellspacing="0">
| | <pre> |
| <tr><td align="center">Versione</td>
| | deb uri distribution [component..] |
| <td align="center">Nome</td>
| | </pre> |
| <td align="center">Anno</td>
| |
| <td align="center">Significato</td>
| |
| </tr>
| |
| <tr><td align="center">1.1</td>
| |
| <td align="center">Buzz</td>
| |
| <td align="center">1996/06/17</td>
| |
| <td align="center">(Buzz Lightyear) l'astronauta</td>
| |
| </tr>
| |
| <tr><td align="center">1.2</td>
| |
| <td align="center">Rex</td>
| |
| <td align="center">1996/12/12</td>
| |
| <td align="center">Il tirannosauro</td>
| |
| </tr>
| |
| <tr><td align="center">1.3</td>
| |
| <td align="center">Bo</td>
| |
| <td align="center">1997/06/05</td>
| |
| <td align="center">(Bo Peep) la bambina che si prese cura della
| |
| pecorella</td>
| |
| </tr> | |
| <tr><td align="center">2.0</td>
| |
| <td align="center">Hamm</td>
| |
| <td align="center">1998/07/23</td>
| |
| <td align="center">il porcellino salvadanaio</td>
| |
| </tr>
| |
| <tr><td align="center">2.1</td>
| |
| <td align="center">Slink</td>
| |
| <td align="center">1999/03/09</td>
| |
| <td align="center">(Slinky Dog) il cane giocattolo</td>
| |
| </tr>
| |
| <tr><td align="center">2.2</td>
| |
| <td align="center">Potato</td>
| |
| <td align="center">2000/08/15</td>
| |
| <td align="center">Mr. Potato</td>
| |
| </tr>
| |
| <tr><td align="center">3.0</td>
| |
| <td align="center">Woody</td>
| |
| <td align="center">2002/07/19</td>
| |
| <td align="center">il cowboy</td>
| |
| </tr>
| |
| <tr><td align="center">3.1</td>
| |
| <td align="center">Sarge</td>
| |
| <td align="center">testing</td>
| |
| <td align="center">il
| |
| "leader of The Green Plastic Army Men"</td>
| |
| </tr>
| |
| <tr><td align="center">??</td>
| |
| <td align="center">Etch</td>
| |
| <td align="center">testing</td>
| |
| <td align="center">(Etch-a-Sketch) la lavagna</td>
| |
| </tr>
| |
| <tr><td align="center">N.D.</td>
| |
| <td align="center">Sid</td>
| |
| <td align="center">unstable</td>
| |
| <td align="center">il bambino della porta accanto che rompeva i giocattoli.</td>
| |
| </tr>
| |
| </table>
| |
| </div> | |
|
| |
|
| ==Testing ==
| | Analizziamo i singoli componenti: |
| La release Testing � quella pi� utilizzata in ambito Desktop, visto che rappresenta il miglior compromesso tra stabilit� � aggiornamento di pacchetti.
| | * '''deb o deb-src''' serve ad indicare se il repository indicato contiene pacchetti binari o pacchetti sorgenti (se li contiene entrambi, è necessario specificarlo usando due righe diverse).<br/> |
| | ** '''uri''' indica l'indirizzo a cui è possibile trovare il repository; è possibile specificare uno schema da utilizzare per il download:<br/> |
| | ** '''file''' permette di inserire un repository presente sull'Hard Disk del computer;<br/> |
| | ** '''cdrom''' permette di inserire un repository persnte su un cd-rom;<br/> |
| | ** '''http''' permette di accedere ad un repository tramite il protocollo http (se è impostata una variabile di ambiente '''http_proxy''' col formato '''http://server:port/''' verranno usate queste opzioni per accedere al repository; in caso di necessità di autenticazione, è possibile specificare l'inidirizzo del proxy, nella variabile d'ambiente '''http_proxy''', nel seguente modo: '''http://user:pass@server:port/''', anche se risulta non essere un modo sicuro di autenticazione);<br/> |
| | ** '''ftp''' permette di eccedere ad un repository tramite il protocollo ftp; è possibile specificare un proxy nell stesso modo indicato per http al punto precedente, sostuendo alla variabile '''http_proxy''' '''ftp_proxy''';<br/> |
| | ** '''copy''' è idendico a file, ma i file utilizzati vengono salvati nella cache di apt; utile nel caso di supporti removibili quali Usb-drive, Floppy, Zip, ...;<br/> |
| | ** '''rsh, ssh''' permette di accedere ad un repository tramite il protocollo ssh. Non è possibile, però, effettuare alcuna autenticazione interativa, ma solo tramite lo scambio di chiavi RSA.<br/> |
| | * '''distribution''' indica la distribuzione (o release) utilizzata... è possibile usare il nome in codice (woody, sarge, sid) o il nome generico (stable, testing, unstable);<br/> |
| | *'''component''' indica la sezione (non-free, main, contrib...) del repository da inserire; sono possibili scelte multiple.<br/> |
|
| |
|
| ===Il percorso dei pacchetti=== | | ===Alcuni esempi=== |
| I pacchetti, prima di entrare nella release di Testing compiono un tragitto per raggiungere un buon grado di maturit�. Quando vengono creati, possono essere inseriti in Experimental, se hanno bisogno di test approfonditi e non sono considerati completamente stabili dall'autore, oppure possono essere inseriti in Unstable, pronti per essere testati dagli sviluppatori4.7. Il pacchetto viene incluso in Testing (sostituendo eventualmente quello pi� vecchio) se: <br/>
| | Non c'è niente di meglio, per capire la sintassi del file sources.list, si un po' di esempi: |
| * Deve essere stato in unstable per 10, 5 o 2 giorni, in funzione dell'urgenza dell'upload; <br/>
| | <pre> |
| * Deve essere stato compilato e deve essere aggiornato su tutte le architetture su cui sia stato compilato in unstable; <br/>
| | deb http://ftp.it.debian.org/debian/ stable main non-free contrib |
| * Deve avere meno bug release-critical, o lo stesso numero, della versione corrente in "testing" (si veda sotto per maggiori informazioni); <br/>
| | deb-src http://ftp.it.debian.org/debian/ stable main non-free contrib |
| * Tutte le sue dipendenze devono o essere soddisfatte dai pacchetti gi� in "testing", o essere soddisfatte dall'insieme di pacchetti che verranno installati nel contempo; <br/>
| | </pre> |
| * L'operazione di installazione del pacchetto in "testing" non dovr� danneggiare alcun pacchetto che sia gi� in "testing". <br/>
| | I repository ufficiali (binari e sorgenti) presi da un mirror italiano. |
|
| |
|
| ===Da Testing a Stable===
| | <pre> |
| Quando la versione di Testing raggiunge un buon grado di maturit�, avviene il passaggio da Testing a Stable. Prima di tutto viene dicharata una situazione di freeze, in cui non � pi� possibile inserire nuove versioni di un pacchetto (a meno che non sia fondamentale per la correzione di qualche bug) ma solo correggere i bug riscontrati. Quando la versione di Testing verr� valutata come sufficientemente stabile, verr� rilasciata come Stable. Dopo il rilascio della Stable, la nuova Testing verr� ricreata secondo le normali regole a partire da Unstable.
| | deb file:/var/cache/apt-build/repository apt-build main |
| | </pre> |
| | Il repository di apt-build (Rif. 7.1 Pag. [*]) |
|
| |
|
| ==Unstable==
| | <pre> |
| Unstable � la distribuzione per gli sviluppatori, come indicato sul sito ufficiale Debian, e l'uso di questa release in ambito lavorativo (o comunque produttivo) pu� portare a degli inconvenienti o instabilit�. � possibile, infatti, che a causa di qualche aggiornamento vengano introdotti dei bug che possano compromettere il normale funzionamento di qualche applicazione.
| | deb http://non-us.debian.org/debian-non-US sid/non-US main contrib non-free |
| | deb-src http://non-us.debian.org/debian-non-US sid/non-US main contrib non-free |
| | </pre> |
| | I repository ufficiali del repository non-US; interessante l'indicazione della directory non-US presente nella directory dists/sid/ |
|
| |
|
| E' inoltre possibile che, a causa dell'aggiornamento di alcune librerie o set di programmi, si possano creare delle situazioni di dipendenze non risolte che potrebbero rendere impossibile l'aggiornamento e/o l'instalazione di alcuni pacchetti. Il mio consiglio � di non utilizzarla, a meno di non avere una certa dimestichezza e familiarit� con il sistema Debian.<br>
| | <pre> |
| | deb http://repos.debianizzati.org ./ |
| | </pre> |
| | Un repository 'artigianale' accessibile tramite un webserver |
|
| |
|
| E' divertente notare che la versione '''unstable''' di Debian mantiene sempre il medesimo nome e cio� Sid, il ragazzaccio!
| | <pre> |
| | | deb file:/home/maxer/repos ./ |
| ==Experimental==
| | </pre> |
| Experimental � un repository (e non una release) che contiene i pacchetti che in fase di testing da parte dei Debian Developer e che necessitano di lavoro prima di essere pronti per entrare in Unstable.
| | Un repository situato nella home dell'utente maxer, creato con dpkg-scanpackages. |
|
| |
|
|
| |
|
| ---- [[User:MaXeR|MaXeR]] | | ---- [[User:MaXeR|MaXeR]] |
| | [[Categoria:Apt]] |
| | [[Categoria:Repository]] |