O que significa a mensagem apt-get “held broken packages”?

4

Eu recentemente executei um comando para instalar um pacote no Ubuntu 16.04 com apt-get

% sudo apt-get install <package>

apt-get não conseguiu instalar, imprimiu algumas mensagens de status, com a última linha sendo:

[ output truncated... ]
E: Unable to correct problems, you have held broken packages.

Eu entendo que apt e dpkg tem um sistema de marcação de pacotes, onde você pode denotar uma preferência em relação ao status de instalação de um pacote.
você pode ver esta lista com

dpkg -l

Assim, todos os pacotes da lista resultante cujo status é "desejado" ou "instalar-me" podem ser usados para recriar o estado de instalação de aplicativos em outro sistema.
Será que realizou pacotes quebrados tem algo a ver com isso? ou seja, meus pacotes instalam as preferências mostradas por dpkg -l expressam um estado de pacotes de tal forma que se apt-get os instalasse - o resultado final teria conflitos de dependência?
O que significa ter pacotes quebrados ?

    
por the_velour_fog 19.07.2016 / 00:36

2 respostas

4

Essa mensagem indica que o apt não mudou nada e os pacotes quebrados que tentou resolver foram mantidos no mesmo estado. Neste caso "hold" é usado como "keep". Se eu tivesse que reformular isso, diria:

Unable to correct the problems, packages are left unchanged.

    
por 19.07.2016 / 00:51
2

A outra resposta está incompleta e não totalmente correta.

dpkg tem um estado "hold". Essencialmente, esse estado significa que você não deseja que o sistema atualize o pacote no estado especificado, mesmo que exista uma versão mais recente. Este estado só pode ser definido manualmente. Para descobrir se você tem algum pacote nesse estado, execute dpkg -l|grep ^h . Se isso produzir alguma saída, serão os pacotes que estão no estado de espera. Quando houver pacotes nesse estado e apt precisar atualizá-los, você receberá a mensagem de erro exibida.

Infelizmente, você pode também ver a mensagem de erro se apt visualizar um pacote, quiser instalá-lo, mas não conseguir fazê-lo devido a, por exemplo, pinagem do apt ou outros motivos. Esta situação pode ser resolvida (temporariamente?) Dando apt a permissão para instalar os arquivos fornecidos; por exemplo, listando explicitamente os pacotes e as versões a serem instaladas, passando o parâmetro -t target-distribution para o apt ou alterando sua configuração de fixação.

    
por 19.07.2016 / 08:33