2013-03-06 10 views
9

Ich habe ein Problem in meinem debian Repo. Ich entfernte ein falsches Paket mit:Reprepro das gleiche deb Paket hinzufügen

reprepro -Vb . remove package 

Das war in Ordnung, aber wenn ich wieder das gleiche Paket mit dem nächsten Befehl hinzufügen versucht:

reprepro -Vb . includedeb squeeze package 

Ich habe die nächste Ausgabe:

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! 

Wer weiß, wie könnte ich das beheben? Ich habe den Vertreter überprüft, und ich habe keine Lösung gefunden, um diese Situation zu lösen.

+0

Ich kann nicht verstehen, warum Sie nicht schreiben können "I" Großbuchstaben mit einer so hohen Ebene in einem case sensitive OS. – peterh

Antwort

12

Ihr erster Befehl hätte nicht funktionieren sollen; remove erfordert den Codenamen der Distribution, von der Sie das Paket entfernen möchten.

Angenommen, dies war nur eine Fehlpaste, und Sie "drückte" auf die remove-Befehl wie Sie für die includedeb getan haben, haben Sie wahrscheinlich immer noch das gleiche Paket in einer anderen Verteilung. Reprepro versucht, das debian-Ideal von "Paketen mit dem gleichen Namen und genau der gleichen Version mit dem exakt gleichen Inhalt" zu erzwingen, unabhängig davon, in welcher Distribution sie zuerst veröffentlicht wurden.

Sie können reprepro ls $package tun, um zu sehen, wo es noch sein könnte gelegen. Sobald Sie es finden, wäre das richtige zu reprepro copy es wieder in Squeeze von der anderen Stelle zu tun.

4

Wenn Sie mehrere Distributionen in Ihrem Archiv unterstützen, müssen Sie die Dateireferenz von allen entfernen, bevor Sie eine neue Datei einbinden können.

Nach reprepro ls möchten Sie möglicherweise reprepro remove {dist} {pkg} einmal für jede Distribution verwenden, in der die Datei referenziert wird.

Wenn alle Referenzen weg sind, können Sie includedeb eine neue.

1

Es ist nicht genug, die Version im Paketnamen zu ändern, sie sollte auch in der Steuerdatei (DEBIAN/control im binären Archiv und debian/control in der Quellendeb) geändert werden.

Sie haben ein Deb-Paket geändert, also müssen Sie ihm eine andere Version geben. Normalerweise sollten Sie die Zeile

Version: 1.2.3-something 

An:

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

oder ähnliches.

Wenn sich die Versionen unterscheiden, können Sie die Pakete mehrmals in den Repo einbinden.