Nota sobre posible duplicado:
AFAIK, esto no es un duplicado de ¿Cómo resuelvo dependencias insatisfechas después de agregar un PPA? de lo contrario, pruébelo resolviendo el problema de prueba que menciono a continuación utilizando cualquier respuesta de allí.
Antecedentes:
Me enfrenté a este problema antes Cómo arreglar la instalación de vino en Ubuntu 14.04.3LTS de 64 bits . Se resolvió mediante la revisión manual / humana de todas las dependencias recursivas del paquete de destino ( wine
).
Reproduzca el problema (caso de prueba):
Creemos la misma situación tranquila simplificada con solo 1 paquete de problemas.
- Instale Ubuntu 14.04 nuevo en VirtualBox.
- Abra
software-properties-gtk
y habilite elbackports
repositorio. Obtener la última lista de paquetes
sudo apt-get update
Ejecute
apt-get -s install wine
para confirmar quewine
se puede instalar.Instale el paquete problemático
libcgmanager0
desde puertos$ apt-cache policy libcgmanager0 libcgmanager0: Installed: 0.24-0ubuntu5 Candidate: 0.24-0ubuntu7.5 Version table: 0.39-2ubuntu2~ubuntu14.04.1 0 100 http://dz.archive.ubuntu.com/ubuntu/ trusty-backports/main amd64 Packages 0.24-0ubuntu7.5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages 0.24-0ubuntu7.1 0 500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages *** 0.24-0ubuntu5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages 100 /var/lib/dpkg/status
Fuerza
apt
para instalar lalibcgmanager0
versión0.39-2ubuntu2~ubuntu14.04.1
sudo apt-get install libcgmanager0=0.39-2ubuntu2~ubuntu14.04.1
Ahora terminamos en la misma situación del usuario a partir de la pregunta mencionada en segundo plano, la instalación de Wine falla con una dependencia insatisfecha, mostrando solo los paquetes de dependencia de primer nivel.
apt-get -s install wine
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: wine : Depends: wine1.6 but it is not going to be installed E: Unable to correct problems, you have held broken packages.
apt-get -s install wine1.6
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: wine1.6 : Depends: wine1.6-i386 (= 1:1.6.2-0ubuntu4) E: Unable to correct problems, you have held broken packages.
apt-get -s install wine1.6-i386
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: wine1.6-i386:i386 : Depends: libglu1-mesa:i386 but it is not going to be installed or libglu1:i386 Depends: libgphoto2-6:i386 (>= 2.5.2) but it is not going to be installed Depends: libgphoto2-port10:i386 (>= 2.5.2) but it is not going to be installed Recommends: libsane:i386 but it is not going to be installed E: Unable to correct problems, you have held broken packages.
No es práctico seguir las dependencias apt-get install
una por una.
Solución ideal:
El verdadero problema aquí
apt
no se pudo instalar lalibcgmanager0:i386
versión0.39-2ubuntu2~ubuntu14.04.1
porque el repositorio de backports tiene una prioridad100
inferior a la versión0.24-0ubuntu7.5
delupdates
repositorio con500
apt
no se pudo instalar lalibcgmanager0:i386
versión0.24-0ubuntu7.5
porquelibcgmanager0:amd64
está instalada con una versión diferente0.39-2ubuntu2~ubuntu14.04.1
La solución más rápida es forzar la instalación de la misma versión i386 desde puertos
sudo apt-get install libcgmanager0:i386=0.39-2ubuntu2~ubuntu14.04.1
o rebajarlo (amd64) a cualquier versión de repositorios regulares
sudo apt-get install libcgmanager0=0.24-0ubuntu7.5
Formas / herramientas que he probado:
- La desactivación de PPA no tiene relación con el problema.
- Utilizando
aptitude
en modo interactivo, trae solo soluciones con muchas eliminaciones ( > 200 !!! ). - Use
apt-get install
manualmente siguiendo el árbol de dependencias. No práctico, ya que las dependencias de primer y segundo nivel no generaron mensajes significativos sobre el conflicto. debfoster
puede generar dependencias recursivas pero solo para paquetes ya instalados. Sin embargo,wine
aún no está instalado.
Tema / Mis intereses:
Digamos que quiero instalar wine sin conocer el problema del libcgmanager0
paquete (o exactamente el libcgmanager0:amd64=0.39-2ubuntu2~ubuntu14.04.1
que ya está instalado).
Estoy buscando un método de depuración o una forma de saber el nombre del paquete problemático y comprender rápidamente lo que estaba sucediendo.
¿Cómo depurar problemas de dependencias insatisfechas en general?
Puede haber algunas opciones nuevas en
dpkg
/apt
/aptitude
que tracen el solucionador de dependencias interno. Eso puede mostrarselibcgmanager0
en su salida.Si no hay una respuesta canónica a esto, ¿alguien podría mostrarme una mejor manera de generar la lista de dependencias recursivas o simular el solucionador de dependencias con más detalles que puedan ayudar a solucionar el problema?
¿Por qué todas las dependencias? Porque quiero verificar la salida de los siguientes comandos para todos los paquetes a la vez.
apt-cache policy <all-dependencies>
apt-get -s install <all-dependencies>
fuente
backports
versión?libcgmanager
, sino con una dependencia? Usted mencionó recursivamente la lista de dependencias. ¿Lo has intentadoapt-rdepends
?wine
(u otro paquete afectado) con-o Debug::pkgProblemResolver=yes
?Respuestas:
Créditos y gracias van a @muru .
Estaba buscando cualquier comando u opción de depuración que pueda mostrarme el nombre del paquete de problemas (
libcgmanager0
en este caso de prueba).apt-get -s -o Debug::pkgProblemResolver=yes install wine
Tiene una salida detallada, silenciosa, difícil de entender. Debería estar bien, si me familiarizo con él.
echo q | aptitude -s install wine
Salida mínima pero aviso claro sobre el conflicto.
Otro punto que estaba buscando es minimizar el resultado solicitado por el OP. En lugar de solicitar
apt-cache policy
solo dependencias de primer / segundo nivel. Lo solicitaría para todas las dependencias recursivas a la vez.apt-rdepends wine 2>/dev/null | grep "^[a-zA-Z]" | sort
Tenga en cuenta que
apt-rdepends
está emulando,apt-cache
por lo que su resultado puede ser diferente al dedebfoster
. Otro punto, ambas herramientas no distinguen entre arch (i386 o amd64), solo muestran nombres.Como el enlace anterior se puede eliminar más adelante, aquí está la salida completa de todos los comandos anteriores.
fuente