Non c'è bisogno di conoscere questo materiale per scaricare ISO Debian. Ma ci può aiutare a scoprire come jigdo funziona. Se non si è interessati nei dettagli andare semplicemente avanti alla la Sezione 4.
Un'immagine CD è un file system denominato iso9660, ma per questa discussione possiamo parlare in modo sicuro di un immagine cd come un grande file denominato "immagine ISO" (circa 650MB) che contiene i file in varie posizioni. Per esempio, se un cd contiene un file di 567 byte chiamato README, l'immagine ISO potrebbe avere i contenuti del file README fra le posizioni 20480000 e 20480567. Si può visualizzare un'immagine CD come:
-------------------------------------------------------- ISO Image: |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx| --------------------------------------------------------
Le aree di "x" dell'immagine contengono cose come le informazioni di una direcory, il riempimento zero, il nome del disco, il settore di boot, ecc.
jigdo-file prende due cose come input: l'immagine CD completa (è necessario che l'ISO sia già fatta) e un insieme di file che possono o non possono essere nell'immagine. Ecco una visualizzazione dell'input del jigdo-file:
-------------------------------------------------------- ISO Image: |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx| -------------------------------------------------------- ---------- ---------- ---------- ---------- Loose Files: | file-0 | | file-1 | | file-3 | | file-4 | ---------- ---------- ---------- ----------
Con magia, jigdo-file scopre quali dei file sciolti sono contenuti nell'immagine ISO e le loro posizioni all'interno del file ISO. Dà in output due file: un file .template e un file .jigdo
Dati in input un'immagine ISO e una serie di file che possono o non possono essere nell'immagine ISO, il jigdo-file dà in output un file .template per quell'immagine ISO. Ecco a cosa assomiglia il file .template
-------------------------------------------------------- .template: |xxxx| md5-0 |xx| md5-1 |xxx|cccccccc|x| md5-3 |xxxx| --------------------------------------------------------
Il jigdo-file scoprirà che i file-0, file-1 e file-3 erano contenuti nell'immagine ISO. Rimossi i contenuti di questi file li sostituisce con il checksum md5 del relativo file (md5-0, md5-1, ecc).
I dati "x" (informazioni directory, riempimento zero, etc.) all'interno dell'immagine ISO sono compressi e riscritti nel file .template. Infine, tutti i file all'interno dell'immagine ISO che non sono stati forniti come file sciolti (tipo file-2) sono compressi e scritti sul file .template. Ciò è indicato come dati "c" nella visualizzazione del file .template.
I file sciolti forniti a jigdo-file che non sono stati trovati nell' immagine ISO (come file-4) sono ignorati.
Dando in input un'immagine ISO e una serie di file sciolti i quali possono o no essere nella immagine ISO, jigdo-file genera il file .jigdo relativo. I file .jigdo di Debian sono compressi con gzip, quindi c'è bisogno di usare zcat o zless per vederlo. Ecco come appare un file .jigdo quando viene decompresso:
md5-0=http://somemirror.org/file-0 md5-1=http://somemirror.org/file-1 md5-2=http://somemirror.org/file-2 md5-3=http://somemirror.org/file-3
Il file .jigdo fornisce semplicemente una corrispondenza tra md5sum di un file all'interno dell'immagine ISO e la URL di download di questo file. Ci sono altre cose all'interno del file .jigdo, e se si guarda all'interno si vede che il jigdo-file ha lo stesso formato di un file ".ini". Dovrebbe essere autoesplicativo, ma se si vogliono maggiori dettagli è necessario consultare la documentazione di jigdo.
Il formato sopra descritto non è uguale a quello che si potrebbe vedere in un tipico file .jigdo, ma è molto simile. Osservando la sezione [Servers] in fondo al file .jigdo, si vedrà esattamente la differenza fra ciò che si è scritto sopra e un reale file .jigdo.
Una volta usato jigdo-file per generare il file .jigdo e .template per un'immagine ISO, ognuno può usare jigdo-lite per scaricare quell'immagine. jigdo-lite scarica tutti i files dell'ISO di Debian usando wget, li assembla e crea una copia al volo dell'immagine ISO.