Después de actualizar de 10.04 a 12.04, estoy tratando de instalar diferentes paquetes. Por ejemplo, ia32-libs y skype (4.0).
Al intentar instalarlos, aparece el mensaje de error "No se pueden corregir los problemas, ha retenido los paquetes rotos".
Salida 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.
Después de ejecutar esto:
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
) y el resultado de ese comando. Además, ¿sudo apt-get dist-upgrade
muestra alguna actualización disponible?Respuestas:
Ese mensaje de error en particular puede indicar que ha retenido paquetes, pero también puede indicar un problema diferente.
Puede obtener una lista de paquetes retenidos reales con:
Si no hay ninguno, o ninguno parece estar relacionado, entonces probablemente sea otra cosa. Verifique cuidadosamente la salida del comando que estaba intentando cuando recibió el mensaje de error, ya que puede haber otras pistas en la salida completa de ese comando, aparte del mensaje de error.
Otro método de solución de problemas puede ser utilizar aptitude en lugar de apt-get para intentar instalar su paquete:
Aptitude se rendirá con menos facilidad e intentará encontrar soluciones que puedan implicar la modificación de otros paquetes. Puede darle más explicaciones del problema y opciones para solucionarlo.
Ocasionalmente, aptitude estará demasiado ansioso por eliminar o degradar una gran cantidad de paquetes para satisfacer su solicitud, en cuyo caso volver a intentar
-f
cambiar sus prioridades y ayudarlo a encontrar soluciones que impliquen eliminar / degradar menos paquetes, incluso si eso significa que no todos los cambios que solicitó puede seguir adelante:fuente
Eso me paso a mi tambien. Todo lo que hice fue
sudo apt-get update
y eso solucionó mi problema. Buena suerte.fuente
Me encontré con un escenario similar con respecto a las dependencias faltantes. En mi caso, estaba tratando de instalar curl en ubuntu saucy salamander 13.10 ...
El error indicó que la dependencia requería una versión anterior de la biblioteca curl3.
Pude degradarme a la versión anterior al intentar instalar curl usando aptitude.
Cuando notó la dependencia que faltaba y la razón (requería una versión anterior del archivo de la biblioteca), me dio varias opciones sobre cómo responder ... y// n/q
Yhabría abortado la instalación, Nbuscaría otra opción y Qsimplemente saldría y no haría nada más, dejando un paquete roto.
Seleccioné N, y me dio la opción de degradar el archivo de la biblioteca a una versión anterior. Entonces eso fue lo que hice, y curl terminó de instalar sin más errores.
fuente
Tuve un escenario similar en una nueva instalación de 14.04, sin archivos listados
dpkg --get-selections | grep hold
y sin alegría despuéssudo apt-get update
.Lo que me solucionó fue un simple
Cuando intenté reinstalar el paquete que fallaba, funcionó bien. ¡Hurra!
fuente
Tuve el mismo problema, ejecuté el comando de verificación de paquetes desde la otra respuesta (
dpkg --get-selections | grep hold
) y viasí que usé "
apt-get remove tomcat7-common
"Entonces podría instalar Tomcat 6 (estaba eliminando Tomcat 7 e instalando Tomcat 6 como lo hace).
fuente
Estas son algunas formas rápidas y fáciles de corregir el
you have held broken packages
error.Abra su archivo sources.list
/etc/apt/sources.list
y verifique que no haya ninguna fuente de software para una versión de Ubuntu diferente a la versión de Ubuntu que está utilizando actualmente. Si encuentra líneas de lanzamiento incorrectas en sources.list, abra el archivo sources.list consudoedit /etc/apt/sources.list
, comente las líneas incorrectas en sources.list precediéndolas con un#
carácter, guarde el archivo sources.list y ejecútelosudo apt update
para actualizar la lista de Paquetes de software disponibles.Seleccione la opción Reparar paquetes rotos en el administrador de paquetes Synaptic. Ejecute los siguientes comandos para instalar Synaptic.
Abra Synaptic y en Synaptic seleccione Editar -> Reparar paquetes rotos y luego repita Editar -> Reparar paquetes rotos por segunda vez.
En Synaptic en el panel izquierdo, haga clic en el botón Filtros personalizados que está marcado con el cursor del mouse en la siguiente captura de pantalla. De la lista en la esquina superior izquierda, seleccione Roto . En el panel central se enumerarán los paquetes rotos que aún deben repararse.
Seleccione los paquetes rotos de uno en uno. Seleccione un paquete roto y luego abra la terminal y ejecútelo . Los resultados de este comando le dirán si ese paquete roto se instaló desde los repositorios predeterminados de Ubuntu o desde alguna otra fuente. Si el paquete roto se instaló desde alguna otra fuente, tal vez ese paquete pueda eliminarse junto con su fuente de software y reemplazarse por una versión diferente del mismo paquete de los repositorios predeterminados de Ubuntu. Por lo general, esto significa arreglar un paquete roto al degradar ese paquete a una versión anterior.
apt policy <package-name>
Si recibe este mensaje de error:
Ejecute los siguientes comandos:
Retire manualmente un paquete roto.
Encuentra tu paquete en
/var/lib/dpkg/info
Mueva la carpeta del paquete a otra ubicación.
Ejecute el siguiente comando:
Si todos estos métodos no funcionan, es posible que los paquetes rotos sean causados por algo que está incrustado tan profundamente en el sistema operativo que ninguno de estos métodos tiene ningún efecto sobre él. El primer lugar obvio para buscar este "algo" profundamente incrustado es en las fuentes de software en
/etc/apt/sources.list
. Verifique el archivo sources.list para ver si contiene líneas no estándar que pueden estar causando un error de paquetes rotos. Un archivo estándar de Ubuntu sources.list se parece a los archivos sources.list en esta respuesta .La forma correcta de eliminar una línea sospechosa de sources.list es comentarla precediéndola con un
#
carácter. Luego, ejecutesudo apt update
para actualizar la lista de software disponible.fuente
Para mí, ninguno de los anteriores funcionó porque mi sistema no se actualizó. yo hice
Home Key > Software Updater > Install
y actualicé mi sistema; luego, podría instalar mi paquete normalmente con
apt
.fuente
Tuve el mismo problema al reinstalar
xsane
después de unappa
instalación fallida . Como le sucedió a yochannah, "no hay archivos listadosdpkg --get-selections | grep hold
, y no hay alegría despuéssudo apt-get update
".La pista que
apt-get
me dio esxsane : Depends: libsane (>= 1.0.24) but it is not going to be installed
Debido a la respuesta de yochannah, tuve la sensación de que debía eliminar algunos paquetes instalados previamente. Y fue así, tuve que eliminar manualmente todos los paquetes relacionados a
sane
, entre otrosxsane-common
ylibsane
, que todavía estaba instalado comoppa
versión.¡Por lo tanto, ten cuidado con lo que has instalado anteriormente y ordena!
fuente