Назад | Перейти на главную страницу

Ubuntu `dpkg` игнорирует поле` Replaces` пакета

Я создаю новую замену для пакета, libgpg-error. Ubuntu также имеет libgpg-error0, от которого зависят системные пакеты (например, systemd). В моем пакете есть все libgpg-error0 делает, поэтому я перечисляю следующее:

Package: libgpg-error
Version: 1.35-1
...
Conflicts: libgpg-error, libgpg-error-dev, libgpg-error0
Provides: libgpg-error0, libgpg-error, libgpg-error-dev
Replaces: libgpg-error, libgpg-error-dev, libgpg-error0

Однако dpkg отказывается обновляться до него чисто. Что мне не хватает?

Полученный деб можно увидеть Вот, а (fpm-cook) код для этого Вот.

Ура!

РЕДАКТИРОВАТЬ:

Этот ответ кажется применимым: https://serverfault.com/a/429226, хотя в том же вопросе присутствует другой ответ, в котором говорится, что версии разрешены.

В соответствии с политика Debian, Provides фактически не может иметь версию, поэтому игнорируется Depends. В этом случае я переименую свой пакет только для Ubuntu, чтобы удовлетворить эту зависимость.

В соответствии с журнал изменений dpkg (который больше не доступен), Provides теперь разрешает управление версиями, и это должен работают, но когда я попробовал, этого не произошло (с версией 1.19.0.5).