Após a atualização do 10.04 para o 12.04, estou tentando instalar pacotes diferentes. Por exemplo, ia32-libs e skype (4.0).
Ao tentar instalá-los, estou recebendo a mensagem de erro 'Não foi possível corrigir problemas, você reteve pacotes quebrados'.
Saída de comandos:
sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Depois de executar isso:
sudo dpkg --configure -a
foo@foo:~$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
sudo apt-get install ia32-libs
) e a saída desse comando. Além disso,sudo apt-get dist-upgrade
mostra alguma atualização disponível?Respostas:
Essa mensagem de erro específica pode indicar que você reteve pacotes, mas também pode indicar um problema diferente.
Você pode obter uma lista dos pacotes retidos reais com:
Se não houver nenhum, ou nenhum parecer relacionado, provavelmente é outra coisa. Verifique cuidadosamente a saída do comando que você estava tentando quando recebeu a mensagem de erro, pois pode haver outras pistas na saída completa desse comando, além da mensagem de erro.
Outro método de solução de problemas pode ser usar o aptitude em vez do apt-get para tentar instalar o seu pacote:
O Aptitude desistirá com menos facilidade e tentará encontrar soluções que podem envolver a modificação de outros pacotes. Pode dar mais explicações sobre o problema e opções para corrigi-lo.
Ocasionalmente, o aptitude estará ansioso demais para remover ou fazer o downgrade de um grande número de pacotes para atender à sua solicitação. Nesse caso, tentar novamente
-f
mudar suas prioridades e ajudá-lo a encontrar soluções que envolvam a remoção / desclassificação de menos pacotes, mesmo que isso signifique nem todas as alterações solicitadas pode ir em frente:fonte
Isso aconteceu comigo também. Tudo o que fiz foi
sudo apt-get update
e isso corrigiu o meu problema. Boa sorte.fonte
Encontrei um cenário semelhante em relação às dependências ausentes. No meu caso, eu estava tentando instalar o curl no ubuntu saucy salamander 13.10 ...
O erro afirmou que a dependência exigia uma versão anterior da biblioteca curl3.
Consegui degradar para a versão anterior tentando instalar o curl usando o aptitude.
Quando notou a dependência ausente e o motivo (exigia uma versão anterior do arquivo da biblioteca), ele me deu várias opções de como responder ... y// n/q
Yteria abortado a instalação, Nprocuraria outra opção e Qsimplesmente sairia e não faria mais nada, deixando um pacote quebrado.
Eu selecionei Ne ele me deu a opção de fazer o downgrade do arquivo da biblioteca para uma versão anterior. Foi o que fiz e o curl terminou de instalar sem mais erros.
fonte
Eu tive um cenário semelhante em uma nova instalação do 14.04, sem arquivos listados
dpkg --get-selections | grep hold
e sem alegria depoissudo apt-get update
.O que corrigiu isso para mim foi uma simples
Quando tentei reinstalar o pacote com falha, ele funcionou bem. Yay!
fonte
Tive o mesmo problema, executei esse comando de verificação de pacote a partir da outra resposta (
dpkg --get-selections | grep hold
) e vientão eu usei "
apt-get remove tomcat7-common
"Depois, instalei o Tomcat 6 (estava removendo o Tomcat 7 e instalando o Tomcat 6 como você faz).
fonte
Estas são algumas maneiras rápidas e fáceis de corrigir o
you have held broken packages
erro.Abra o arquivo sources.list
/etc/apt/sources.list
e verifique se não há fontes de software para uma versão diferente do Ubuntu que a versão que você está usando no momento. Se você encontrar linhas de liberação incorretas em sources.list, abra o arquivo sources.list comsudoedit /etc/apt/sources.list
, comente as linhas incorretas em sources.list precedendo-as com um#
caractere, salve o arquivo sources.list e executesudo apt update
para atualizar a lista de pacotes de software disponíveis.Selecione a opção Corrigir pacotes quebrados no gerenciador de pacotes Synaptic. Execute os seguintes comandos para instalar o Synaptic.
Abra o Synaptic e, no Synaptic, selecione Editar -> Corrigir pacotes quebrados e repita Editar -> Corrigir pacotes quebrados pela segunda vez.
No Synaptic, no painel esquerdo, clique no botão Filtros personalizados, marcado pelo cursor do mouse na captura de tela abaixo. Na lista no canto superior esquerdo, selecione Quebrado . No painel central, serão listados todos os pacotes quebrados que ainda precisam ser reparados.
Selecione os pacotes quebrados, um de cada vez. Selecione um pacote quebrado e, em seguida, abra o terminal e execute . Os resultados deste comando dirão se esse pacote quebrado foi instalado a partir dos repositórios padrão do Ubuntu ou de alguma outra fonte. Se o pacote quebrado foi instalado a partir de outra fonte, talvez esse pacote possa ser removido junto com a fonte do software e substituído por uma versão diferente do mesmo pacote dos repositórios padrão do Ubuntu. Normalmente, isso significa consertar um pacote quebrado, desclassificando esse pacote para uma versão mais antiga.
apt policy <package-name>
Se você receber esta mensagem de erro:
Execute os seguintes comandos:
Remova manualmente um pacote quebrado.
Encontre seu pacote em
/var/lib/dpkg/info
Mova a pasta do pacote para outro local.
Execute o seguinte comando:
Se todos esses métodos não funcionarem, é possível que os pacotes quebrados sejam causados por algo incorporado tão profundamente no sistema operacional que nenhum desses métodos tenha qualquer efeito sobre ele. O primeiro lugar óbvio para procurar esse "algo" profundamente incorporado está nas fontes de software do Windows
/etc/apt/sources.list
. Verifique o arquivo sources.list para ver se ele contém linhas não-padrão que podem estar causando um erro de pacotes quebrados. Um arquivo sources.list padrão do Ubuntu se parece com os arquivos sources.list nesta resposta .A maneira correta de remover uma linha suspeita do sources.list é comentá-la, precedendo-a com um
#
caractere. Em seguida, executesudo apt update
a atualização da lista de softwares disponíveis.fonte
Para mim, nenhuma das opções acima funcionou porque meu sistema não foi atualizado. eu fiz
Home Key > Software Updater > Install
e atualizei meu sistema; depois, eu poderia instalar meu pacote normalmente com
apt
.fonte
Eu tive o mesmo problema ao reinstalar
xsane
após uma falha nappa
instalação. Como aconteceu com a yochannah, "não há arquivos listadosdpkg --get-selections | grep hold
nem alegria depoissudo apt-get update
".A dica que
apt-get
me deu éxsane : Depends: libsane (>= 1.0.24) but it is not going to be installed
Por causa da resposta do yochannah, tive a sensação de que devo remover alguns pacotes instalados anteriormente. E foi assim que tive que remover manualmente todos os pacotes relacionados para
sane
, entre outrosxsane-common
elibsane
, que ainda estavam instalados como appa
versão.Portanto, cuidado com o que você instalou anteriormente e arrume!
fonte