Como eu especifico que um pacote deb deve substituir um com um nome diferente?

4

Estou criando um pacote Debian foo , que precisa substituir um pacote existente bar nos sistemas nos quais ele está instalado.

Eu li:

link

E concluiu que as cláusulas corretas no DEBIAN/control devem ser semelhantes:

Provides: foo
Conflicts: bar
Replaces: bar

No entanto, quando tento instalar o pacote foo em um sistema que já possui bar instalado, o sistema é reticente porque foo está em conflito com bar .

Se eu remover a entrada Conflicts: bar , então dpkg permitirá que ambos os pacotes sejam instalados lado-a-lado, o que é um problema, pois foo deve substituir bar .

Quais são as cláusulas adequadas do arquivo control para conseguir isso?

Eu tentei Breaks em vez de Conflicts :

dpkg: regarding foo_DEV-22._i386.deb containing foo:
 foo breaks bar
  bar (version 3.2.2.1-x86NX4.4-x86) is present and installed.
  bar provides bar and is present and installed.
dpkg: error processing foo_DEV-22._i386.deb (--install):
 installing foo would break existing software
Errors were encountered while processing:
 foo_DEV-22._i386.deb
    
por spierepf 08.10.2015 / 14:38

1 resposta

0

Por que não renomeá-lo com antecedência e depois substituí-lo pelo que você quer?

Para este fim você tem que usar métodos / maneiras conforme a página oficial do Debian abaixo:

https://wiki.debian.org/Renaming_a_Package
    
por 08.10.2015 / 15:52