Como evitar “tentar sobrescrever o X que também está no pacote Y”

3

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?

    
por Stéphane 27.12.2013 / 03:29

1 resposta

2

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.

    
por Gilles 27.12.2013 / 03:41

Tags