Debian - как перезаписать файл пакета - PullRequest
0 голосов
/ 09 марта 2019

У меня есть два пакета Debian с разными именами: configA.deb, configB.deb.Обе имеют следующие строки в контрольном файле:

Provides: my-config
Replaces: my-config

, и оба предоставляют одинаковый файл содержимого: config

Когда я пытаюсь установить configB.deb, когда configA.deb уже установленЯ получаю следующую ошибку:

dpkg: error processing archive configB.deb (--install):
trying to overwrite '/home/user/configs/config', which is also in package configA.deb

Я хотел бы установить configB.deb без предварительного удаления / очистки configA.deb и без использования опции --force-overwrite.Возможно ли это?

1 Ответ

1 голос
/ 09 марта 2019

Пакеты Debian не могут перезаписывать файлы друг друга.Используйте что-то вроде update-alternatives для символической ссылки на файл, предоставленный одним или другим пакетом, без нарушения целостности любых файлов, установленных с помощью пакета.Или используйте Conflicts: для принудительного удаления пакета A при попытке установить пакет B, и наоборот.В качестве третьего возможного подхода хакерский обходной путь, который я не могу порекомендовать, состоит в том, чтобы перезаписать этот файл из postinst каждого пакета с копией изнутри защищенных ресурсов пакета.

...