Reprepro добавление того же пакета deb

у меня проблема в моем РЕПО debian. Я удалил неправильный пакет с:

reprepro -Vb . remove package

Это было нормально, но когда я попытался добавить снова тот же пакет со следующей командой:

reprepro -Vb . includedeb squeeze package

я получил следующий вывод:

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!

кто-нибудь знает как я могу это исправить? Я проверял человека reprepro, и я не нашел решения для решения этой ситуации.

3 ответов


ваша первая команда не должна была работать;remove требуется кодовое имя дистрибутива, из которого вы хотите удалить этот пакет.

предполагая, что это была просто mispaste, и что вы дали "squeeze" команде remove, как вы сделали для includedeb, у вас, скорее всего, все еще есть тот же пакет в другом дистрибутиве. Reprepro пытается навязать идеал debian "пакеты с тем же именем и точно такой же версией имеют точно такое же содержимое", независимо от того, какие distro они были впервые выпущены.

можно сделать reprepro ls $package чтобы увидеть, где она может располагаться. Как только вы его найдете, правильным будет сделать reprepro copy он вернулся в сжатие из другого места.


Если вы поддерживаете несколько дистрибутивов в своем архиве, вам нужно будет удалить ссылку на файл из всех них, прежде чем вам будет разрешено includedeb с новым файлом.

после reprepro ls вы можете использовать reprepro remove {dist} {pkg} один раз для каждого дистрибутива, в котором файл ссылается.

когда все ссылки ушли, вы можете includedeb новый.


недостаточно изменить версию в имени пакета, она также должна быть изменена в файле управления (DEBIAN/control в двоичном архиве и debian/control в исходном deb).

вы изменили пакет deb, поэтому вы должны дать ему другую версию. Как правило, вы должны изменить строку

Version: 1.2.3-something

в:

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

или аналогичные.

Если версии отличаются, Вы сможете включать пакеты в репо несколько раз.