Sei sulla pagina 1di 8

Creare dei DVD dei repositories Debian (o Ubuntu)

Pubblicato su http://natonelbronx.wordpress.com/2007/09/10/creare­dei­dvd­dei­repository­debian­o­ubuntu/ da mastro

Vi spiego come fare a creare dei CD/DVD partendo dai  repositories  online di Debian, Ubuntu o di qualunque altro 


repository per APT: sistema di pacchettizzazione Debian. Se avete amici senza ADSL o voi stessi a casa non l’avete, 
questa guida fa per voi!
In particolare vedremo come creare e utilizzare i DVD del repository di Debian Lenny, Ubuntu Feisty; e i CD dei 
repository di debian­multimedia e Medibuntu.
Cambiando poche cose si può adattare la procedura per qualunque versione di Debian (testing, unstable, stable, sid, 
etch,   ecc..)   e   qualunque   versione   di   Ubuntu   (gutsy,   dapper,   ecc…).   Così   come   di   qualunque   altro   repository   non 
ufficiale.
Chi ha intenzione di usare un sistema Debian avrà bisogno dei repository Debian e di debian­multimedia; chi vorrà 
usare Ubuntu avrà bisogno dei repository Ubuntu e di Medibuntu.

Cosa serve
• Una connessione ad internet: possibilmente veloce 
• circa   40   GB   di   spazio   libero   su   Disco:   formattato   con   filesystem   che   supporta   file   da   più   di   2   GB; 
possibilmente evitate NTFS! (ext2, ext3, RaiserFS) 
• Un sistema basato su Debian (anche un Live CD può andare bene se avete il disco con i 40 GB accessibile dal 
Live CD) 
• circa 4 DVD: dipende dai repository che volete scaricare in locale. 
• Un masterizzatore di DVD 

Produrre CD e DVD del repository


Installiamo l’occorrente
da root installiamo questi pacchetti

debmirror debpartial ruby mkisofs

possiamo farlo da root con il comando
apt-get install debmirror debpartial ruby mkisofs

oppure con il sistema che preferite.

Ora vi serve uno script che è contenuto nel pacchetto debpartial: debcopy

nel mio sistema l’ho trovato in questa posizione:

/usr/share/doc/debpartial/examples/debcopy.gz

scompattiamo l’archivio Gzip e teniamoci lo script debcopy da parte, potete decomprimerlo con questo comando
gunzip /usr/share/doc/debpartial/examples/debcopy.gz

Decidere quale repository scaricare


Questa decisione spetta a voi, in questa guida userò i seguenti repository:
• ftp://it.archive.ubuntu.com/ubuntu/ — repository FTP italiano di Ubuntu

• ftp://ftp.it.debian.org/debian/ — repository FTP italiano di Debian 

• http://www.debian­multimedia.org — repository HTTP di debian­multimedia ufficiale 

• http://packages.medibuntu.org/ — repository HTTP di Medibuntu ufficiale 

Queste informazioni potete ricavarle dalla vostra source.list (/etc/apt/source.list) se volete scaricare i repository che 
state utilizzando sul vostro sistema, oppure cercando sul web.

Un altra cosa da scegliere è l’architettura di cui volete il repository: la guida utilizza l’architettura i386 di tutti i normali 
PC.
Come vedremo per alcuni repository non è possibile fare questo tipo di selezione.

Scarichiamo il repository
***IMPORTANTE***

Create una cartella sul disco con almeno 40 GB di spazio!

PRIMA di iniziare a dare i comandi, spostatevi in quella cartella perché TUTTO il contenuto della cartella potrebbe 
venir cancellato! Se per esempio date il comando mentre vi trovate nella vostra “Home directory” eliminerete tutti i 
vostri file e le vostre impostazioni personali…

Il comando debmirror scarica tutto il contenuto di un repository debian, quindi elimina qualunque altro file presente 
nella cartella dove avete scaricato il contenuto.
Io vi ho avvertito! Attenti a quel che fate…
per spostarvi nella cartella:
cd /percorso/della/cartella/che/avete/creato

e verificate di trovarvi in quella cartella con il comando pwd.

*********************
Iniziamo spostandoci nella cartella vuota (!) appena creata, quindi diamo questo comando per il repository di Debian:
debmirror --nosource -m --passive --host=ftp.it.debian.org --
root=debian/ --method=ftp --progress --dist=lenny --
section=main,contrib,non-free --arch=i386 mirror-debian/ --ignore-
release-gpg

oppure, per il repository di Ubuntu:
debmirror --nosource -m --passive --host=it.archive.ubuntu.com --
root=ubuntu/ --method=ftp --progress --dist=feisty --
section=main,multiverse,universe,restricted --arch=i386 mirror-ubuntu/
--ignore-release-gpg

ora vediamo il significato delle singole opzioni:
• --nosource  » non scaricare i sorgenti, se volete anche i sorgenti nei vostri DVD (o nel vostro repository 
locale) rimuovete questa opzione, considerate che la dimensione del repository sarà più del doppio. I sorgenti 
servono   solo   se   avete   intenzione   di   visionare   il   codice   dei   programmi   che   installate   o   volete   compilarli 
manualmente 
• -m » verifica che tutti i file siano stati scaricati correttamente: il tutto è più lento ma vi assicura di non avere 
dei file corrotti 
• --passive » scarica in modalità passiva: lasciatelo se non sapete cosa sia 
• --host=<indirizzo> » indica l’indirizzo del repository da voi scelto: senza “http://” o “ftp://” davanti e 
senza una directory successiva (es. ftp://ftp.it.debian.org/debian/ ­> ftp.it.debian.org) 
• --root=<directory-remota> » indica la directory remota del server: se non presente potete rimuovere 
l’opzione o dare come directory “/” (es. ftp://ftp.it.debian.org/debian/ ­> debian/) 
• --method=<protocollo-da-usare> » ftp o http. Dipende dal repository che avete scelto: in genere è 
preferibile il protocollo ftp per grossi trasferimenti di file; cercate di scegliere dei repository che supportino ftp 
se possibile (es. ftp://ftp.it.debian.org/debian/ ­> ftp) 
• --progress » mostra una barra di avanzamento durante lo scaricamento di ogni file 
• --dist=<distro-scelta> » qui ci dovete mettere il nome della distribuzione scelta: per debian sarge, 
etch, lenny, sid, testing, stable, unstable; per ubuntu dapper, feisty, gutsy, ecc… È lo stesso nome che si mette 
nel file source.list (es. deb ftp://ftp.it.debian.org/debian/ lenny main contrib non­free ­> lenny) 
• --section=<lista-sezioni> » spesso i repository sono suddivisi in sezioni: qui dovete scrivere la lista 
delle sezioni che volete scaricare separate da virgola (es. deb ftp://ftp.it.debian.org/debian/ lenny main contrib 
non­free ­> main,contrib,non­free) 
• --arch=<architettura> » dipende dall’installazione che volete fare e su quale macchina vi trovate: se 
avete installato Ubuntu versione “normale” allora i repository saranno i386; se avete la versione a 64bit allora 
sarà amd64;  se avete la versione per MAC sarà powerpc e così via… Se volete scaricare più  architetture 
separatele da virgole 
• mirror-<qualcosa>/ » è il nome che diamo alla cartella dove verrà scaricato tutto il repository: potete 
decidere il nome che preferite o lasciare quello che vi ho consigliato. ATTENZIONE il contenuto della cartella 
qui indicata estraneo ai file che debmirror scarica verrà completamente eliminato! 
• --ignore-release-gpg  »   se   il   file   release.gpg   non   viene   trovato   il   procedimento   non   fallisce   ma 
continua 
Come abbiamo visto sia per il repository Debian che per il repository Ubuntu abbiamo scelto particolari sezioni e 
architetture senza sorgenti dei pacchetti.
Per come sono fatti alcuni repository talvolta non è possibile scaricare solo parte di essi.
Veniamo  ora ai  (molto  più  piccoli ma più  problematici) repository  debian­multimedia  e Medibuntu:  necessari  per 
vedere   DVD   originali   e   leggere   tutti   i   formati   proprietari   di   microsoft;   essi   contengono   anche   diversi   software 
multimediali, come mplayer e mencoder, in genere più aggiornati del repository ufficiale. Se vi interessano solo DVD 
originali e formati di file proprietario potete scaricare manualmente i due pacchetti libdvdcss2 e w32codecs saltando 
questo passaggio (non è il caso di sprecare un CD per solo 2 pacchetti).

Per debian­multimedia (Debian):
debmirror --nosource -m --passive --host=www.debian-multimedia.org --
root=/ --method=http --progress --dist=lenny --section=main --
getcontents --arch=i386,alpha,amd64,hppa,ia64,powerpc,sparc mirror-
debian-multimedia/ --ignore-release-gpg

NOTA:  sono sicuro che con tutte le architetture debian­multimedia non entra in un CD… Infatti il tutto occupa (ad 
oggi: 12/09/2007) 743.3 MB. Si può suddividere questo repositori in 2 CD volendo: uno da 700 MB e l’altro da 43.3 
MB;   sarebbe   però   un   enorme   spreco!   Spero   di   scoprire   perché   il   repository   non   è   accettato   se   manca   qualche 
architettura così da poter eliminare le architetture non necessarie e far stare tutto in uno solo CD. Se qualcuno ne sa 
qualcosa è gradito un commento.

Per Medibuntu (Ubuntu):
debmirror -m --passive --host=packages.medibuntu.org --root=/ --
method=http --progress --dist=feisty --section=free,non-free
medibuntu/ --ignore-release-gpg --getcontents --
arch=i386,amd64,powerpc --ignore-release-gpg
NON È FINITA CON QUESTI DUE! Continuate a leggere o butterete via un CD
Innanzi tutto notate che ho:
• rimosso “--nosource“ 
• cambiato “--method” da ftp a http 
• aggiunto “--getcontents“ 
• sistemato le “--section” a seconda del repository 
• elencato TUTTE le architetture presenti nel repository 
Ora, perché una volta masterizzati questi CD funzionino dovete ancora:
• estrarre a mano i file “Contents­<arch>.gz” che trovate nella cartella “mirror­<cd>/dists/<dist>/” ovviamente 
adattate le scritte tra “<,>” al vostro CD (esempio: “mirror­debian­multimedia/dists/lenny/”). Alla fine dovreste 
avere sia i “Contents­<arch>.gz” che i “Contents­<arch>” in quella cartella 
• scaricate manualmente il file “release” sempre nella cartella “mirror­<cd>/dists/<dist>/”. Tale file può essere 
trovato   nel   repository   da   voi   scelto   nella   cartella   “dists/<dist>”.   (es.  www.debian­
multimedia.org/dists/lenny/release) 
Sinceramente non ho idea del perché questi repositories necessitino di questi ulteriori passi o del perché è necessario 
scaricare tutte le architetture e tutti i sorgenti: se qualcuno sapesse spiegarmelo qui nei commenti gliene sarei grato.
Per concludere questi  ultimi  2 CD  necessitano delle “chiavi” per funzionare. Questo  passo vi  servirebbe anche se 
decideste di utilizzare i repository online! Visto che il CD dovrà servirvi online reperite la chiave e copiate il file che la 
contiene nella cartella del suo mirror. Cercate quali sono le chiavi che vi servono e prelevatele. Ecco come fare con i due 
repository descritti.

Per debian­multimedia:
gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys 1F41B907
gpg -a –export 1F41B907 > debian-multimedia.key

Per medibuntu:
wget http://packages.medibuntu.org/medibuntu-key.gpg

Entrambe le informazioni qui sopra si possono trovare con pochi secondi di ricerca su Google o altro motore di ricerca.
Per concludere mettete la chiave scaricata nella directory contenente tutto il repository corrispondente in modo che una 
volta masterizzato sarà possibile anche senza essere connessi autenticare il CD.

Com’è fatto il repository


Questo può esservi utile per capire come agire sui repository di debian­multimedia e medibuntu.
All’interno di ogni repository, o mirror (copia esatta del repository), sono presenti 2 ( o 3) cartelle:

• dists » contiene tutte le informazioni sul contenuto 
• pool » contiene tutti i pacchetti 
• project » potrebbe esserci: non so cosa sia ma voi lasciatela! 

dentro a “dists” c’è una cartella per ogni distribuzione es.: lenny o feisty
dentro al nome della distribuzione (che chiamerà <dist> genericamente) ci sono diversi file e una cartella per ogni 
sezione: (es. per ubuntu avremo le cartelle: main, multiverse, universe e restricted). Alcuni file Contents­<arch>.gz e i 
corrispettivi Contents­<arch>: dove al posto di <arch> troverete le varie architetture supportate dalla distribuzione.
Infine ci saranno i due file “release” e “release.gpg”
Potete consultare il contenuto dei repository online seguendo i link riportati precedentemente: la struttura è la stessa, c’è 
solo un po’ di roba in più!

Dividere il repository in DVD


Quest’operazione è necessaria solo per grossi repository: che non possono essere completamente contenuti in un solo 
DVD o in un solo CD. Pertanto l’operazione è necessaria solo per il repository Debian e quello Ubuntu: non serve per 
debian­multimedia e Medibuntu che entrano tranquillamente in un CD.

Recuperate il file debcopy che ci eravamo tenuti da parte prima e mettetelo nella cartella di lavoro

per Debian, creare la directory debian­dvd con il comando:
mkdir debian-dvd

Costruire l’indice dei file che verranno inseriti in ogni dvd:
debpartial --nosource --dirprefix=debian --section=main,contrib,non-
free --dist=lenny --size=DVD mirror-debian/ debian-dvd/

Adesso dobbiamo preparare i singoli DVD: il numero di DVD dipende dalla dimensione del repository. Qui suppongo 
che servano 4 DVD, ma non ho idea di quale sia il numero esatto necessario. Ogni DVD conterrà circa 4.5 GB di dati: 
potete farvi il calcolo una volta scaricato l’intero repository.
ruby debcopy -l debian-dvd/ debian-dvd/debian0
ruby debcopy -l debian-dvd/ debian-dvd/debian1
ruby debcopy -l debian-dvd/ debian-dvd/debian2
ruby debcopy -l debian-dvd/ debian-dvd/debian3

Per Ubuntu, creare la directory ubuntu­dvd con il comando:
mkdir ubuntu-dvd

Costruire l’indice dei file che verranno inseriti in ogni dvd:
debpartial --nosource --dirprefix=ubuntu --
section=main,multiverse,universe,restricted --dist=feisty --size=DVD
mirror-ubuntu/ ubuntu-dvd/

Adesso dobbiamo preparare i singoli DVD: il numero di DVD dipende dalla dimensione del repository. Qui suppongo 
che servano 4 DVD, ma non ho idea di quale sia il numero esatto necessario. Ogni DVD conterrà circa 4.5 GB di dati: 
potete farvi il calcolo una volta scaricato l’intero repository. ( per feisty il numero di DVD è effettivamente 4: provato)
ruby debcopy -l ubuntu-dvd/ ubuntu-dvd/ubuntu0
ruby debcopy -l ubuntu-dvd/ ubuntu-dvd/ubuntu1
ruby debcopy -l ubuntu-dvd/ ubuntu-dvd/ubuntu2
ruby debcopy -l ubuntu-dvd/ ubuntu-dvd/ubuntu3

Le sottodirectory così create (debian0, debian1, …, ubuntu0, ubuntu1, …) contengono i link a tutti i file di ogni singolo 
DVD

Creiamo le immagini dei DVD/CD da masterizzare


Per Debian, diamo questo comando per ogni DVD:
mkisofs -f -J -r -o debian-dvd-0.iso debian-dvd/debian0
mkisofs -f -J -r -o debian-dvd-1.iso debian-dvd/debian1
mkisofs -f -J -r -o debian-dvd-2.iso debian-dvd/debian2
mkisofs -f -J -r -o debian-dvd-3.iso debian-dvd/debian3

e per il CD di debian­multimedia:
mkisofs -f -J -r -o debian-multimedia-cd.iso mirror-debian-multimedia/

Per Ubuntu, diamo questo comando per ogni DVD:
mkisofs -f -J -r -o ubuntu-dvd-0.iso ubuntu-dvd/ubuntu0
mkisofs -f -J -r -o ubuntu-dvd-1.iso ubuntu-dvd/ubuntu1
mkisofs -f -J -r -o ubuntu-dvd-2.iso ubuntu-dvd/ubuntu2
mkisofs -f -J -r -o ubuntu-dvd-3.iso ubuntu-dvd/ubuntu3

e per il CD di Medibuntu:
mkisofs -f -J -r -o medibuntu-cd.iso mirror-medibuntu/

Masterizzare i CD/DVD
A questo punto abbiamo tutte le immagini dei DVD e dei CD pronte da masterizzare con il programma che preferite! 
Cercate l’opzione “masterizza immagine CD/DVD” o simile.

Utilizzare i CD/DVD del repository


Se già non lo è, installate Debian o Ubuntu. Se, per debian, usate il netinstall dovrete farlo da un amico munito di 
connessione veloce.
Una volta dentro al sistema Debian/Ubuntu aprite Synaptic

(se utilizzate Gnome) Desktop­>Amministrazione­>Gestore di pacchetti Synaptic

e preparatevi ad aggiungere i vostri repository

Modifica­>Aggiungi CD­Rom

Vi verrà chiesto di inserire un disco nell’unità, inserite uno dei dischi e date OK.

Vi viene quindi chiesto di dare un nome al disco. Potete scegliere ciò che più preferite ma io consiglio qualcosa come 
riportato qui di seguito:

Debian Lenny DVD 1 ­ <data>

Ubuntu Feisty DVD 3 ­ <data>

Debian­multimedia ­ <data>

Medibuntu ­ <data>

ovviamente sopra il disco dovete scrivere le stesse cose perché, quando vi verrà richiesto il CD/DVD, il nome che 
mettete qui adesso è quello che vi verrà sarà richiesto dal sistema!
Alla fine della procedura, che potrebbe durare un po’, vi chiederà se avete altri CD/DVD da aggiungere. Dite Sì finché 
non li avrete aggiunti tutti.
per finire sempre da Synaptic

Impostazione­>Archivi pacchetti

togliete la spunta da tutti i repository via Internet e lasciate SOLO i CD/DVD appena immessi.
Il motivo è che se vi collegate occasionalmente a internet potreste effettuare degli aggiornamenti che vi impediranno di 
installare il software che avete nei DVD. Ovviamente questo non è il massimo per la sicurezza: un sistema che necessita 
di DVD e non può utilizzare i più comodi repository online è un sistema che non può accedere a internet; pertanto quel 
sistema ha molte meno minacce esterne.

Cliccate “ricarica” per ottenere la nuova lista pacchetti e avete finito.

Se invece siete degli amanti del terminale, di seguito i comandi da eseguire come root per l'inserimento dei CD/DVD 
nel file /etc/apt/sources.list:
apt-cdrom add

Vi verrà chiesto di inserire un disco nell’unità, inserite uno dei dischi e date OK.

vi viene quindi chiesto di dare un nome al disco (si ricordano le indicazione date precedentemente).
Alla fine della procedura, che potrebbe durare un po’, vi chiederà se avete altri CD/DVD da aggiungere. Dite Sì finché 
non li avrete aggiunti tutti.

Vi consiglio di verificare che nel file  /etc/apt/sources.list ci siano solo i repositories che abbiamo inserito dai nostri 
CD/DVD e rimuovere eventuali gli altri repositories. Ricaricare i repositories ed effettuare gli aggiornamenti con:
sudo apt-get update
sudo apt-get upgrade

Quando installerete qualcosa, vi verrà richiesto il relativo CD/DVD.

Per aggiornare i DVD


Semplicemente   rilanciate   il   comando  debmirror  come   visto   in   precedenza   per   effettuare   l’aggiornamento   del 
repository, la procedura per produrre i DVD procede poi nello stesso modo.

NOTA: sarà di nuovo necessario svolgere i passaggi manuali per i CD di debian­multimedia e medibuntu.

Considerazioni Finali
Pro e Contro
Utilizzando dei DVD al posto dei repository si hanno alcuni vantaggi e alcuni svantaggi…

Pro
• Non è necessaria una connessione ad internet per utilizzare tutto il software dei repository 
• L’installazione di grossi pacchetti è molto veloce perché il tempo di scaricamento si riduce drasticamente. 

Contro
• Quando si installano diversi pacchetti è molto probabile che vi vengano richiesti più DVD, talvolta tutti… È 
abbastanza fastidioso dover continuare a cambiare DVD nel drive tutte le volte che viene richiesto. 
• Non si possono fare aggiornamenti di sicurezza (ma se vi servono questi DVD si presuppone che non abbiate 
una grande disponibilità di connessione).
Se ci sono suggerimenti, correzioni, consigli sono ben accetti 

Note
C’è un baco nello script debmirror della Ubuntu Gutsy. Tale baco non scarica il pool (ovvero i pacchetti).Quindi, gli 
utenti Ubuntu Gutsy, per risolvere devono editare il file /usr/bin/debmirror e sostituire la riga:
local $/=”\n\n ;
con
local $/=”\n”;
Oppure   vedi   il   link  https://bugs.launchpad.net/ubuntu/gutsy/+source/libcompress­zlib­perl/+bug/136634  per 
maggiori informazioni.