E: Incapaz de corrigir problemas, você manteve pacotes quebrados


112

Estou usando o Ubuntu 13.04, que instalei alguns dias atrás. Estou tentando instalar nodejse npm. Tentei instalar primeiro a partir da linha de comando e depois a desinstalei. Então algo quebrou.

sudo apt-get install -f nodejs npm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nodejs : Conflicts: npm
E: Unable to correct problems, you have held broken packages.

A saída de /etc/apt/sources.listestá abaixo:

# deb cdrom:[Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424)]/ raring main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://in.archive.ubuntu.com/ubuntu/ raring main restricted
deb-src http://in.archive.ubuntu.com/ubuntu/ raring main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://in.archive.ubuntu.com/ubuntu/ raring-updates main restricted
deb-src http://in.archive.ubuntu.com/ubuntu/ raring-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://in.archive.ubuntu.com/ubuntu/ raring universe
deb-src http://in.archive.ubuntu.com/ubuntu/ raring universe
deb http://in.archive.ubuntu.com/ubuntu/ raring-updates universe
deb-src http://in.archive.ubuntu.com/ubuntu/ raring-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://in.archive.ubuntu.com/ubuntu/ raring multiverse
deb-src http://in.archive.ubuntu.com/ubuntu/ raring multiverse
deb http://in.archive.ubuntu.com/ubuntu/ raring-updates multiverse
deb-src http://in.archive.ubuntu.com/ubuntu/ raring-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://in.archive.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://in.archive.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu raring-security main restricted
deb-src http://security.ubuntu.com/ubuntu raring-security main restricted
deb http://security.ubuntu.com/ubuntu raring-security universe
deb-src http://security.ubuntu.com/ubuntu raring-security universe
deb http://security.ubuntu.com/ubuntu raring-security multiverse
deb-src http://security.ubuntu.com/ubuntu raring-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu raring partner
# deb-src http://archive.canonical.com/ubuntu raring partner

## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
deb http://extras.ubuntu.com/ubuntu raring main
deb-src http://extras.ubuntu.com/ubuntu raring main

A saída de /etc/apt/sources.list.d/*está abaixo:

deb http://ppa.launchpad.net/chris-lea/node.js/ubuntu raring main
# deb-src http://ppa.launchpad.net/chris-lea/node.js/ubuntu raring main
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/chrome/deb/ stable main
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/chrome/deb/ stable main
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/chrome/deb/ stable main
deb http://deb.opera.com/opera/ stable non-free
deb http://deb.opera.com/opera/ stable non-free
deb http://deb.opera.com/opera/ stable non-free
deb http://deb.opera.com/opera/ stable non-free

1
Não tenho certeza qual é a pergunta, no entanto, isso pode ajudá-lo a ir para o gerenciador de pacotes sinápticos. Editar> Corrigir pacotes quebrados.
Danijelc 21/10

quando eu 'gksudo sináptica' nada acontece
John Qualis

2
Você precisa instalá-lo primeiro #sudo apt-get update sudo apt-get upgrade sudo apt-get install synaptic
danijelc 21/10

Outra maneira de obter um erro semelhante (embora aparentemente não seja para o OP) é ​​definir APT::Default-Release. Se isso exigir que um pacote seja instalado a partir de uma versão mais antiga que as dependências que já estão presentes, elas poderão ser incompatíveis, causando o mesmo erro.
Pool #

Respostas:


29

Você deve poder ver a lista de pacotes retidos por:

apt-mark showhold 

e depois solte-os

sudo apt-mark unhold <package name>

Depois disso, você poderá remover o pacote conflitante (parece ser npm) e depois reinstalar tudo.

Se isso falhar, você pode tentar o aptitudecaminho --- geralmente é capaz de separar melhor as árvores de dependência.

Nos dois casos, tenha cuidado ao aplicar comandos e verifique cuidadosamente a lista de pacotes marcados para remoção.


98
Quando tentei isso com o wine1.6, apt-mark showholdnão produz nada. Alguma outra ideia? (Eu também estou em Ask Ubuntu via Chat ) :)
Madara Uchiha

17
Sim. Eu também. Para mim, esse comando nunca produziu nada, nunca.
yPhil

3
Para os leitores: verifique a dica do @DragonLord para usar o aptitude! Funciona bem.
user146300

4
Sim, eu concordo - muitas vezes aptitudeé capaz de separar árvores de dependências de uma maneira melhor do que simples apt.
Rmano 23/07

2
o show-apt-mark não faz nada por mim.
Krazzy R

228

Use o aptitude em vez do apt-get. É mais inteligente. Ele não apenas administra a desclassificação de pacotes conflitantes para você, mas também faz uma série de recomendações perguntando qual dos muitos possíveis cenários de trabalho sugeridos você gostaria.

sudo aptitude install myNewPackage

Se você ainda não possui aptidão em sua máquina, obtenha-a com

sudo apt-get install aptitude

30
A melhor resposta. Eu tentei o apt-get nos últimos dias. Com o aptitude, isso foi resolvido em segundos :-)
Johan Karlsson

6
Obrigado. Passei tanto tempo lendo maneiras diferentes de corrigir o problema que o apt-get não explica que fiquei surpreso quando o aptitude apenas expôs o problema específico e até forneceu uma solução.
bmacnaughton

Para não mencionar, ele funciona em um servidor sem cabeça
BSD

sim, mas por que precisamos usar esta solução? porque quase computadores são 64 bits agora ??
Vanduc1102

5
A única desvantagem desta solução: você não pode fazer isso sudo apt-get install aptitudese seus pacotes estiverem quebrados em primeiro lugar.
user13161

5

Para que eu resolvesse esse problema, tive que instalar o synaptic primeiro usando o comando abaixo, e depois tudo funcionou bem.

sudo apt-get install synaptic

1

Descobri que dpkg -rme permite remover pacotes um por um, sem desencadear uma cascata de outro comportamento.

Não tenho certeza se essa é uma boa solução, mas fui com ela e tudo parece bem.


dselecté uma ferramenta ainda melhor (um pouco de uma curva de aprendizado, mas fornece mais feedback).
Isomorphismes
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.