Oggi, dopo un bel po’ di tempo di inattività, vi spiego come fare a creare dei CD/DVD partendo dai repository 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:

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. Qui ho utilizzato quelli ufficiali.

Lista mirror Debian

Lista mirror Ubuntu

Lista mirror debian-multimedia

Lista mirror Medibuntu

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

verificate di trovarvi in quella cartella con il comando “pwd

Iniziamo spostandoci nella cartella vuota (!) appena creata, quindi diamo questo comando

x 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

x 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://&#8221; o “ftp://&#8221; 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: ho il dubbio sono sicuro che con tutte le architetture debian-multimedia potrebbe non entrare 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. Altrimenti potete seguire la stessa procedura dei repository principali (descritta più sotto) per suddividerlo in 2 CD o “sprecare” un DVD.

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. http://www.debian-multimedia.org/dists/lenny/release)

Sinceramente non ho idea del perché questi repository 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:

x debian-multimedia:

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

x 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 qui sotto: 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 Medibuntu che entra tranquillamente in un CD. Potrebbe servire per debian-multimedia che è più grande di un CD.. applicate questa procedura oppure utilizzate un DVD. Se trovate una soluzione migliore fatemela sapere.

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

x Debian

questo crea la directory debian-dvd

mkdir debian-dvd

questo costruisce 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

x Ubuntu

questo crea la directory ubuntu-dvd

mkdir ubuntu-dvd

questo costruisce 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

x 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/

x 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 siete su 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

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à domandato 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…

avete finito🙂 quando installerete qualcosa vi verrà richiesto il relativo DVD.

Per aggiornare i DVD

Può servire a qualcuno..

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🙂