Reprepro добавляет тот же пакет deb
У меня возникла проблема в моем debian repo. Я удалил неправильный пакет с:
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 человека, и я не нашел решения для решения этой ситуации.
Ответы
Ответ 1
Ваша первая команда не должна была работать; remove
требует кодового имени дистрибутива, из которого вы хотите удалить этот пакет.
Предполагая, что это было только mispaste, и что вы дали "выжимать" в команду удалить, как вы делали для includedeb
, вы, скорее всего, все еще имеют один и тот же пакет в другом распределении. Reprepro пытается обеспечить соблюдение дебианского идеала "пакетов с одинаковым именем и точно такой же версии, имеющих то же самое содержимое", независимо от того, в каком дистрибутиве они были впервые выпущены.
Вы можете сделать reprepro ls $package
чтобы увидеть, где он все еще может быть reprepro ls $package
. Как только вы его найдете, правильная вещь будет заключаться в том, чтобы reprepro copy
его обратно в сжатие с другого места.
Ответ 2
Если вы поддерживаете несколько дистрибутивов в своем архиве, вам нужно будет удалить ссылку на файл из всех них, прежде чем вам будет разрешено включить bb с новым файлом.
После reprepro ls
вы можете использовать reprepro remove {dist} {pkg}
один раз для каждого дистрибутива, в который ссылается файл.
Когда все ссылки исчезнут, вы можете includedeb
новый.
Ответ 3
Недостаточно изменить версию в имени пакета, она также должна быть изменена в файле управления (DEBIAN/control
в двоичном архиве и debian/control
в исходном deb).
Вы изменили пакет deb, поэтому вам нужно дать ему другую версию. Как правило, вы должны изменить строку
Version: 1.2.3-something
Для того, чтобы:
Version: 1.2.3-kioplays1 (...2, 3, etc)
или похожие.
Если версии отличаются, вы сможете включать пакеты в репо несколько раз.