E: Incapaz de corregir problemas, ha retenido paquetes rotos

112

Estoy usando Ubuntu 13.04 que instalé hace unos días. Estoy intentando instalar nodejsy npm. Primero intenté instalar desde la línea de comandos y luego lo desinstalé. Entonces algo se rompió.

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.

La salida de /etc/apt/sources.listestá abajo:

# 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

La salida de /etc/apt/sources.list.d/*está abajo:

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
John Qualis
fuente
1
No estoy seguro de cuál es la pregunta, sin embargo, esto puede ayudarlo. Vaya al administrador de paquetes sináptico. Edición> Reparar paquetes rotos.
danijelc
cuando hago 'gksudo synaptic' no pasa nada
John Qualis
2
Primero debe instalarlosudo apt-get update sudo apt-get upgrade sudo apt-get install synaptic
danijelc
Otra forma de obtener un error similar (aunque aparentemente no es para el OP) es establecerlo APT::Default-Release. Si eso requiere que se instale un paquete desde una versión anterior a las dependencias que ya están presentes, pueden ser incompatibles, lo que le da el mismo error.
Poolie

Respuestas:

29

Debería poder ver la lista de paquetes retenidos por:

apt-mark showhold 

y luego destrabarlos

sudo apt-mark unhold <package name>

Después de eso, debería poder eliminar el paquete en conflicto (parece ser npm) y luego reinstalar todo.

Si esto falla, puede intentar el aptitudecamino --- a menudo es capaz de desenredar mejor los árboles de dependencia.

En ambos casos, tenga cuidado al aplicar comandos y verifique cuidadosamente la lista de paquetes marcados para eliminar.

Rmano
fuente
98
Cuando probé eso con wine1.6, apt-mark showholdno produce nada. ¿Alguna otra idea? (También estoy en Ask Ubuntu Chat ) :)
Madara Uchiha
17
Sip. Yo también. Para mí, este comando nunca produjo nada, nunca.
yPhil
3
Para los lectores: ¡asegúrese de consultar el consejo de @DragonLord para usar aptitude! Funciona genial.
user146300
44
Sí, estoy de acuerdo --- a menudo aptitudees capaz de desenredar los árboles de dependencias de una manera mejor que simple apt.
Rmano
2
apt-mark showhold no hace nada por mí.
kRazzy R
228

Use aptitude en lugar de apt-get. Es mas inteligente. No solo manejará la degradación de los paquetes en conflicto para usted, sino que hará una serie de recomendaciones que le preguntarán cuál de los posibles escenarios de trabajo sugeridos le gustaría.

sudo aptitude install myNewPackage

Si todavía no tienes aptitud en tu máquina, obténla con

sudo apt-get install aptitude
Señor de los Dragones
fuente
30
La mejor respuesta He intentado apt-get durante los últimos días. Con aptitud esto se resolvió en segundos :-)
Johan Karlsson
66
Gracias. He pasado tanto tiempo leyendo diferentes formas de solucionar el problema que apt-get no explica que estaba asombrado cuando aptitude simplemente presentó el problema específico e incluso proporcionó una solución.
bmacnaughton
Sin mencionar que funciona en un servidor sin cabeza
bsd
Sí, pero ¿por qué necesitamos usar esta solución? porque casi las computadoras son de 64 bits ahora?
vanduc1102
55
El único inconveniente de esta solución: no puede hacerlo sudo apt-get install aptitudesi sus paquetes están rotos en primer lugar.
user13161
5

Para resolver este problema, solo tuve que instalar Synaptic primero usando el comando debajo, y luego todo funciona bien.

sudo apt-get install synaptic
Alaa ElSaman
fuente
1

Descubrí que dpkg -rme permite eliminar paquetes uno por uno, sin desencadenar una cascada de otro comportamiento.

No estoy seguro de que esta sea una buena solución, pero la seguí y todo parece estar bien.

isomorfismos
fuente
dselectes una herramienta aún mejor (una pequeña curva de aprendizaje, pero ofrece más comentarios).
isomorfismos el