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:22] 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 50: Line 67:
 **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 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''**:+**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 70: Line 87:
 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 **vedere la versione di un pacchetto** contenuto in una suite:+**Per elencare tutti i pacchetti presenti** in una suite (si usa il trucco di chiedere che abbiano //Section// diversa da un valore fasullo): 
 + 
 +<code> 
 +reprepro listfilter lenny "Section (!= none)" 
 +</code> 
 + 
 +**Per elencare tutti i file presenti** nel database degli md5sum (dovrebbero essere tutti i file presenti in ''pool/''): 
 + 
 +<code> 
 +reprepro _listmd5sums 
 +</code> 
 + 
 +**Per vedere la versione di un pacchetto** contenuto in una suite:
  
 <code> <code>
Line 76: Line 105:
 </code> </code>
  
-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/''):+**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>
Line 84: Line 113:
 Se si toglie a mano un file da ''pool/'' bisogna correggere l'inconsistenza con ''_forget'', vedi sotto. 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):+**Per rigenerare tutti gli indici** (normalmente non è necessario se le operazioni di inclusione e rimozione dei pacchetti sono state effettuate correttamente):
  
 <code> <code>
Line 90: Line 119:
 </code> </code>
  
-Per **verificare la consistenza** del repository:+**Per verificare la consistenza** del repository:
  
 <code> <code>
-reprepro -b . check squeeze +reprepro check lenny 
-reprepro -b . checkpool+reprepro 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:+**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