Depend: tag do Debian não funciona com o apt-get

1

O arquivo de controle do pacote A_0.0_all.deb contém uma dependência do Pacote B 0.0:

Depends: B (= 0.0)

O arquivo de controle do pacote B_0.0_all.deb tem a versão 0.0:

Version: 0.0

Sentado no mesmo repositório Debian está o Pacote B_1.0_all.deb. Quando tento instalar o pacote A, recebo o seguinte erro:

[...]
The following packages have unmet dependencies:
 A : Depends: B (= 0.0) but 1.0 is to be installed.
E: Unable to correct problems, you have held broken packages.

Um "apt-cache madison B" mostra as duas versões no repositório. Por que o apt-get não instala a versão da qual A depende? O arquivo de controle está errado? Como você escreve o Depends: para que o apt-get instale a versão exata especificada no arquivo de controle do Pacote A?

Estou criando, crie o repositório com e instale com:

  • Ubuntu 13.04
  • apt 0.9.7.7ubuntu4 para amd64 compilado em 12 de abril de 2013 23:49:05
por user2569618 20.05.2015 / 00:19

1 resposta

0

O Apt não considera várias versões do mesmo pacote. Ele escolhe um (baseado em uma combinação de números de versão, pinagem, etc.) e, em seguida, instala essa versão ou não instala o pacote.

O Aptitude considerará versões inferiores do pacote, mas as atualizações posteriores tentarão atualizar as versões inferiores, o que pode resultar na remoção inadvertida do seu software.

Então, para o melhor do meu conhecimento, não há nenhuma maneira real de fazer o que você quer. Você quer tornar o número da versão do seu pacote mais alto que o da distro (possivelmente usando uma época), usar um nome de pacote diferente ou dizer aos usuários para configurar a fixação.

    
por Peter Green 07.02.2016 / 07:02