Divida os arquivos dos outros pacotes como parte do seu preinst. É exatamente isso que dpkg-divert
serve. Não se esqueça de remover o desvio no seu postrm. Veja a man page e o wiki do Debian para exemplos.
Estou configurando um grande número de dispositivos Ubuntu 12.04. Eu tenho um personalizado .deb eu escrevi e que será instalado em cada dispositivo. Como parte desse .deb, existem vários arquivos de sistema que eu preciso sobrescrever, como:
/etc/update-manager/release-upgrades
/etc/apt/apt.conf.d/10periodic
/etc/apt/apt.conf.d/50unattended-upgrades
Mas é claro que o Ubuntu reclama que esses arquivos são de propriedade de outros pacotes. Quando tento executar dpkg -i testing.deb
, recebo erros como estes:
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
Eu sei sobre as opções do dpkg como --force-overwrite que eu posso usar para forçá-lo a instalar, mas eu estava esperando manter o arquivo .deb realmente fácil de instalar sem opções adicionais de linha de comando, e não posso ajudar mas sinto que provavelmente existe outra solução em algum lugar no framework Debian.
Qual é a maneira "certa" de corrigi-lo para que meu .deb possa instalar com esses arquivos atualizados / mais recentes?
Divida os arquivos dos outros pacotes como parte do seu preinst. É exatamente isso que dpkg-divert
serve. Não se esqueça de remover o desvio no seu postrm. Veja a man page e o wiki do Debian para exemplos.