Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Pubblicato su http://natonelbronx.wordpress.com/2007/09/10/crearedeidvddeirepositorydebianoubuntu/ da mastro
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
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
• ftp://ftp.it.debian.org/debian/ — repository FTP italiano di Debian
• http://www.debianmultimedia.org — repository HTTP di debianmultimedia 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 nonfree > 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
nonfree > main,contrib,nonfree)
• --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 debianmultimedia 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 debianmultimedia (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 debianmultimedia 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: “mirrordebianmultimedia/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 debianmultimedia:
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.
• 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ù!
Recuperate il file debcopy che ci eravamo tenuti da parte prima e mettetelo nella cartella di lavoro
per Debian, creare la directory debiandvd 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 ubuntudvd 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
e per il CD di debianmultimedia:
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.
(se utilizzate Gnome) Desktop>Amministrazione>Gestore di pacchetti Synaptic
e preparatevi ad aggiungere i vostri repository
Modifica>Aggiungi CDRom
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>
Debianmultimedia <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.
NOTA: sarà di nuovo necessario svolgere i passaggi manuali per i CD di debianmultimedia 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/libcompresszlibperl/+bug/136634 per
maggiori informazioni.