Vamos ter um metapacote que depende dos seguintes pacotes
Depends: A (=2),
B (=2),
C (=2)
Observe o '=' - eu quero instalar essas versões específicas, não as mais recentes.
Além disso:
B depende de A (> = 1)
C depende de B (> = 1) e A (> = 1)
Se as versões mais recentes de A, B, C no repositório forem 2, isso funcionará.
Desde que eu coloquei a versão 3 de A e a versão 3 de B no repo sudo, o apt-get install my-meta-package se recusa a terminar com as seguintes informações:
The following packages have unmet dependencies:
my-meta-package: Depends: B (= 2) but 3 is to be installed
Depends: A (= 2) but 3 is to be installed
Se eu instalar manualmente as versões 2 de A e B, o metapacote será instalado corretamente, o que sugere fortemente que não há dependência oculta em A3 ou B3. Esta não é uma solução para o problema, pois o metapacote é instalado automaticamente em muitas máquinas.
PERGUNTA: O que fazer para fazer o sudo apt-get install my-meta-package install versões 2,2,2?
Além disso, existe uma maneira de obter informações estendidas sobre o que realmente cria a necessidade da versão 3 de A e versão 3 de B?
fonte
(a=2), (b=2)
?Respostas:
Você precisa selecionar as versões específicas a serem instaladas e instalá-las todas ao mesmo tempo em que instala o meta-pacote.
Como a resposta de int_ua diz, você pode descobrir dependências reversas com isso:
Se você quiser saber mais informações sobre qualquer um desses pacotes ( versões disponíveis, dependências e muito mais ), use o seguinte:
Depois que você terminar de instalá-los e quiser mantê-los nessas versões durante as atualizações do sistema, será necessário usar o apt- pinning, conforme sugerido pelo belacqua .
Fixação do APT
fonte
Você pode tentar instalar as dependências primeiro com
sudo apt-get install package=2
onde 2 é a versãoVocê pode descobrir quais pacotes dependem do pacote com
apt-cache rdepends package
fonte