2013-03-06 16 views
9

Ho riscontrato un problema nel mio repository debian. Ho rimosso un pacchetto di male:Reprepro che aggiunge lo stesso pacchetto deb

reprepro -Vb . remove package 

Questo era ok, ma quando ho cercato di aggiungere nuovamente lo stesso pacchetto con successivo comando:

reprepro -Vb . includedeb squeeze package 

ho avuto l'uscita successiva:

Already existing files can only be included again, if they are the same, but: 
md5 expected: 1035762e5e21e6ad8689660c0032f42d, got: 77ea3b094fcbfca4110afb5a9af0d2cb 
sha1 expected: e41527e49bee98a59b3a5e16fbe856bb15a836bd, got: 5c6b673e5f11f1a80201e76d0fa4ba1d5935f095 
sha256 expected: ae795de3b2d62f513b634a00c4bec74c90d2a6f750e5ec0386ee2b7775af39ec, got: 1531b2dd1869214afe58bb526fa8bda70db1bd1ef73d133bde002d42f147a041 
size expected: 327748, got: 253398 
There have been errors! 

Qualcuno sa come posso risolvere questo? Ho controllato l'uomo reprepro e non ho trovato la soluzione per risolvere questa situazione.

+0

Non riesco a capire perché non si possa scrivere "I" maiuscole con un livello così alto in un sistema operativo sensibile al maiuscolo/minuscolo. – peterh

risposta

12

Il tuo primo comando non avrebbe dovuto funzionare; remove richiede il nome in codice della distribuzione da cui si desidera rimuovere quel pacchetto.

Supponendo che si trattasse solo di un miscuglio, e che hai dato "spremere" al comando di rimozione come hai fatto per lo includedeb, molto probabilmente hai ancora lo stesso pacchetto in una distribuzione diversa. Reprepro cerca di far rispettare l'ideale debian di "pacchetti con lo stesso nome e la stessa identica versione hanno gli stessi identici contenuti", indipendentemente dalla distro in cui sono stati rilasciati.

Puoi vedere reprepro ls $package per vedere dove potrebbe essere ancora trova. Una volta trovato, la cosa giusta da fare sarebbe reprepro copy di nuovo in squeeze dall'altra parte.

4

Se si stanno supportando più distro nel proprio archivio, sarà necessario rimuovere il riferimento al file da tutti, prima che sia possibile includerlo con un nuovo file.

Dopo reprepro ls è possibile utilizzare reprepro remove {dist} {pkg} una volta per ogni distribuzione in cui viene fatto riferimento al file.

Quando tutti i riferimenti sono andati, è possibile effettuare uno includedeb uno nuovo.

1

Non è sufficiente modificare la versione nel nome del pacchetto, deve essere modificata anche nel file di controllo (DEBIAN/control nell'archivio binario e debian/control nell'origine deb).

Hai modificato un pacchetto deb, quindi devi dargli una versione diversa. In genere, si dovrebbe cambiare la linea

Version: 1.2.3-something 

A:

Version: 1.2.3-kioplays1 (...2, 3, etc) 

o simili.

Se le versioni differiscono, sarà possibile includere i pacchetti nel repository più volte.