User Tools

Site Tools


doc:appunti:linux:sa:debian_repository

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:linux:sa:debian_repository [2010/04/07 12:10] niccolodoc:appunti:linux:sa:debian_repository [2010/04/07 13:00] niccolo
Line 4: Line 4:
  
 Il programma **reprepro** consente di gestire agevolmente un repository per diverse suite (//stable//, //testing//, ecc.) e diverse architetture (//source//, //i386//, //amd64//, ecc.). Il programma **reprepro** consente di gestire agevolmente un repository per diverse suite (//stable//, //testing//, ecc.) e diverse architetture (//source//, //i386//, //amd64//, ecc.).
 +
 +Se si gestisce più di una suite i **nomi dei pacchetti** e il **numero di versione** devono essere accuratamente scelti.
 +
 +In generale conviene che nel numero di versione sia compresa anche la suite, in modo che i file **''.diff.gz''**, **''.dsc''**, **''.changes''** e **''.deb''** possano coesistere nella directory ''pool/'' quando sono compilati dalla stessa versione di sorgente, ma per suite differenti. Ad esempio:
 +
 +<code>
 +libgdal-perl_1.6.3-3~gfossit50+1_i386.deb
 +libgdal-perl_1.6.3-3~gfossit60+1_i386.deb
 +</code>
 +
 +sono due pacchetti generati dallo stesso sorgente **''gdal_1.6.3.orig.tar.gz''**, entrambi per architettura //i386//, ma compilati il primo su Debian Lenny (v.5.0) e il secondo su Debian Squeeze (presumibilmente v.6.0).
 +
 +Altrimenti si corre il rischio di non poter aggiungere il file al repository, per via dell'errore:
 +
 +<code>
 +File "pool/main/p/proj/proj-bin_4.7.0-1_i386.deb" is already registered with other md5sum!
 +</code>
  
 ==== Inizializzazione ==== ==== Inizializzazione ====
Line 48: Line 65:
 ==== Gestione pacchetti ==== ==== Gestione pacchetti ====
  
-**ATTENZIONE:** in tutti i comandi che seguono sono state omesse le opzioni **''%%--ask-passphrase -Vb .%%''**in quanto presenti nel file di configurazione ''conf/options''.+**ATTENZIONE:** in tutti i comandi che seguono sono state omesse le opzioni **''%%--ask-passphrase -Vb .%%''** in quanto presenti nel file di configurazione ''conf/options''.
  
-Per aggiunge **un singolo pacchetto** .deb ad una suite:+**Per aggiunge un singolo pacchetto** .deb ad una suite:
  
 <code> <code>
Line 58: Line 75:
 La release viene firmata con chiave GPG creando il file ''dists/<codename>/Release.gpg''. La release viene firmata con chiave GPG creando il file ''dists/<codename>/Release.gpg''.
  
-Per **aggiungere** ad una suite **tutti i pacchetti** risultanti da un ''dpkg-buildpackage'' utilizzando il file **''.changes''**. Generalmente questo comprende i pacchetti per la specifica architettura (es. **''i386''**), i **''source''** e gli **''all''**.+**Per aggiungere tutti i pacchetti** risultanti da un ''dpkg-buildpackage'' ad una suite, si utilizza il file **''.changes''**. Generalmente questo comprende i pacchetti per la specifica architettura (es. **''i386''**), i **''source''** e gli **''all''**:
  
 <code> <code>
Line 68: Line 85:
 Se il pacchetto è stato compilato per //unstable// mentre lo si vuole aggiungere a //lenny//, è necessario il parametro **''%%--ignore=wrongdistribution%%''**. Se il pacchetto è stato compilato per //unstable// mentre lo si vuole aggiungere a //lenny//, è necessario il parametro **''%%--ignore=wrongdistribution%%''**.
  
-Se reprepro non riesce a trovare il file ''.orig.tar.gz'' può essere necessario il parametro **''%%--ignore=missingfile%%''**.+Se ''reprepro'' non riesce a trovare il file ''.orig.tar.gz'' può essere necessario il parametro **''%%--ignore=missingfile%%''**.
  
-Per rimuovere **un singolo pacchetto** .deb:+**Per elencare tutti i pacchetti presenti** in una suite (si usa il trucco di chiedere che abbiano //Section// diversa da un valore fasullo):
  
 <code> <code>
-reprepro --ask-passphrase -Vb . remove lenny libgdal1-1.6.0-grass+reprepro listfilter lenny "Section (!= none)"
 </code> </code>
  
-FIXME Non viene tolto il file dal ''pool/''. Se lo si toglie a mano poi bisogna correggere l'inconsistenza con **''_forget''**, vedi sotto.+**Per elencare tutti i file presenti** nel database degli md5sum (dovrebbero essere tutti i file presenti in ''pool/''):
  
-Per **rigenerare tutti gli indici**, normalmente non è necessario se le operazioni di inclusione e rimozione dei pacchetti sono state effettuate correttamente:+<code> 
 +reprepro _listmd5sums 
 +</code> 
 + 
 +**Per vedere la versione di un pacchetto** contenuto in una suite:
  
 <code> <code>
-reprepro --ask-passphrase -b . export+reprepro list lenny grass
 </code> </code>
  
-Per **verificare la consistenza** del repository:+**Per rimuovere un pacchetto** da una suite (vengono tolte le versioni per tutte le architetture, compresa //source// e vengono rimossi i rispettivi file dalla directory ''pool/''):
  
 <code> <code>
-reprepro -b . check squeeze +reprepro remove lenny grass
-reprepro -b . checkpool+
 </code> </code>
  
-Per risolvere un **Missing file** (file che esiste nal database, ma non in ''pool/''), si consulta l'elenco completo e poi si rimuove la entry sbagliata:+Se si toglie a mano un file da ''pool/'' bisogna correggere l'inconsistenza con ''_forget'', vedi sotto. 
 + 
 +**Per rigenerare tutti gli indici** (normalmente non è necessario se le operazioni di inclusione e rimozione dei pacchetti sono state effettuate correttamente): 
 + 
 +<code> 
 +reprepro export 
 +</code> 
 + 
 +**Per verificare la consistenza** del repository: 
 + 
 +<code> 
 +reprepro check lenny 
 +reprepro checkpool 
 +</code> 
 + 
 +**Per risolvere un Missing file pool/...**. Se il file manca dalla directory ''pool/'' ed è elencato nel database degli md5sum:
  
 <code> <code>
-reprepro _listmd5sums 
 reprepro _forget pool/main/libg/libgdal-grass/libgdal-grass_1.6.3-1.diff.gz reprepro _forget pool/main/libg/libgdal-grass/libgdal-grass_1.6.3-1.diff.gz
 +</code>
 +
 +Se invece il file risulta necessario per la presenza di altri file, è necessario rimuovere gli altri file:
 +
 +<code>
 +reprepro check lenny
 +Checking lenny...
 +Missing file pool/main/libg/libgdal-grass/libgdal-grass_1.6.3-1.dsc
 +Files are missing for 'libgdal-grass'!
 +
 +reprepro list lenny libgdal-grass
 +lenny|main|source: libgdal-grass 1.6.3-1                                     
 +
 +reprepro remove lenny libgdal-grass
 +removing 'libgdal-grass' from 'lenny|main|source'...
 </code> </code>
  
doc/appunti/linux/sa/debian_repository.txt · Last modified: 2010/04/07 19:48 by niccolo