Как избежать «попытки перезаписать X, который также находится в пакете Y»

Я устанавливаю большое количество устройств Ubuntu 12.04. У меня есть собственный .deb, который я написал и который будет установлен на каждом устройстве. В рамках этого .deb есть несколько системных файлов, которые мне нужно перезаписать, например:

/etc/update-manager/release-upgrades
/etc/apt/apt.conf.d/10periodic
/etc/apt/apt.conf.d/50unattended-upgrades

Но, конечно, Ubuntu жалуется, что эти файлы принадлежат другим пакетам. Когда я пытаюсь запустить dpkg -i testing.deb, я получаю такие ошибки:

dpkg: error processing testing.deb (--install):
 trying to overwrite '/etc/update-manager/release-upgrades', which is also in package update-manager-core 1:0.156.14
 trying to overwrite '/etc/apt/apt.conf.d/50unattended-upgrades', which is also in package unattended-upgrades 0.76

Я знаю о параметрах dpkg, таких как --force-overwrite, которые я могу использовать для принудительной установки, но я надеялся чтобы действительно легко установить файл .deb без дополнительных параметров командной строки, и я не могу не чувствовать, что где-то в среде Debian, вероятно, есть другое решение.

Что такое «правильный» способ исправить это, чтобы мой .deb мог установить с этими обновленными / более новыми файлами?

3
задан 27 December 2013 в 06:29

1 ответ

Переадресация файлов других пакетов как часть вашего preinst. Это именно то, для чего dpkg-divert . Не забудьте убрать диверсию в своем посте. См. Страницу руководства и вики Debian для примеров.

0
ответ дан 27 December 2013 в 06:29

Другие вопросы по тегам:

Похожие вопросы: