¿Cómo resuelvo dependencias no satisfechas después de agregar un PPA?

540

Ocasionalmente, cuando instalo cosas, aparece un error como el siguiente:

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:
 package1 : Depends: package2 (>= 1.8) but 1.7.5-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

¿Cómo puedo resolver esto?

jrg
fuente
33
Olvida el nombre exacto del paquete. Es irrelevante para esta pregunta. Estoy intentando crear una pregunta canónica . Como tal, el paquete exacto no es relevante en esta instancia específica.
jrg
33
En realidad, "el nombre exacto del paquete", aunque no es relevante en su pregunta, es extremadamente relevante para el problema de cualquier persona a este respecto. Por lo general, el mejor primer paso para resolver esto es identificar la fuente de pkg1 y pkg2. Esto parece haberse pasado por alto en las respuestas, la mayoría de las cuales son bastante buenas de lo contrario. Además, no se observa que en muchos, si no en la mayoría de los casos, "se debe instalar <lo que sea>" realmente significa "se instala lo que se quiera". Esto es algo que tiende a confundir a muchos usuarios frente a este y también deben ser incluidos en una respuesta por debajo de
Doug
55
@doug Agregue eso como respuesta y no como comentario, ¡es bastante bueno! :)
jrg
1
Sin embargo, @Braiam Whaaaat tiene un punto, la pregunta no es específica de un PPA y muchas respuestas tampoco. Sé que las dos respuestas principales abruman un poco a las demás, pero no estoy seguro de que cambiar la naturaleza de la pregunta sea la solución correcta, especialmente porque anula las otras respuestas. Lo dejo por ahora ya que no tengo una mejor respuesta, pero es algo en lo que pensar.
Seth
2
Ah, y ¿dónde está mi pregunta de solución de problemas? : D
Seth

Respuestas:

561

APT es un sistema de gestión de paquetes para Debian y otras distribuciones de Linux basadas en él, como Ubuntu. En su mayor parte, APT es fácil de usar para instalar, eliminar y actualizar paquetes. En raras ocasiones, a menudo cuando está mezclando dependencias de terceros, existe la posibilidad de que apt-gettermine dándole un error que le indica que no se pudo completar la instalación de un paquete.

Soluciones:

Siempre es una buena idea hacer una copia de seguridad de los archivos de configuración /etc/apt/sources.list, por lo que puede revertir los cambios si es necesario.

  • Si errormuestra algo como esto:

    <some-package>: Depends: <other-package> (= version) but this-version is to be installed

    Luego, asegúrese de que los repositorios restrictedy universeestén habilitados. Hit Alt+ F2, tipo software-properties-gtky golpe Enter.

    En la Ubuntu Softwarepestaña, habilite todos los repositorios.

  • Una posible causa de dependencias insatisfechas podría ser la base de datos de paquetes corrupta, y / o algunos paquetes no se instalaron correctamente. Para solucionar este problema, presione Alt+ Ctrl+ Tpara abrir la terminal e intente ejecutar uno de los siguientes comandos:

    sudo apt-get clean

    o,

    sudo apt-get autoclean

    apt-get cleanborra el repositorio local de archivos de paquetes recuperados (los archivos .deb). Elimina todo menos el archivo de bloqueo de / var / cache / apt / archives / y / var / cache / apt / archives / partial /. apt-get autocleanborra el repositorio local de archivos de paquetes recuperados, pero a diferencia de esto apt-get clean, solo elimina los archivos de paquetes que ya no se pueden descargar y que son en gran medida inútiles.

  • Una de las soluciones más básicas para resolver problemas de dependencias es ejecutar:

    sudo apt-get -f install

    El -faquí significa "arreglo roto". Aptintentará corregir dependencias rotas. Si instaló manualmente un paquete que tenía dependencias insatisfechas, apt-getinstalará esas dependencias, si es posible, de lo contrario, simplemente puede eliminar el paquete que instaló para resolver el problema.

    Entonces corre:

    sudo dpkg --configure -a

    Luego ejecuta esto de nuevo:

    sudo apt-get -f install

    Si la salida es:

    0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

    Eso significa que falló.

  • La siguiente solución es ejecutar:

    sudo apt-get -u dist-upgrade

    Si muestra paquetes retenidos, es mejor eliminarlos. Los paquetes se guardan debido a conflictos de dependencia que aptno se pueden resolver. Pruebe este comando para buscar y reparar los conflictos:

    sudo apt-get -o Debug :: pkgProblemResolver = yes dist-upgrade

    Si no puede solucionar los conflictos, saldrá con:

    0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.

    Elimine los paquetes retenidos uno por uno, ejecutándose dist-upgradecada vez, hasta que no haya más paquetes retenidos. Luego reinstale los paquetes necesarios. Asegúrese de usar la --dry-runopción, para estar completamente informado de las consecuencias:

    sudo apt-get remove --dry-run nombre-paquete

    Dado que eliminar el paquete que está intentando instalar puede no ser ideal, también puede intentar encontrar un repositorio que tenga los paquetes que necesita para satisfacer las dependencias.

Finalmente, si todo lo demás falla, puede intentar satisfacer las dependencias usted mismo, ya sea encontrando e instalando los paquetes necesarios, o instalándolos desde el origen y luego creando paquetes " deb " para ellos.

Desactivar / Eliminar / Purgar PPA:

Los PPA (Personal Package Archive) son repositorios alojados en Launchpad . Puede usar PPA para instalar o actualizar paquetes que no están disponibles en los repositorios oficiales de Ubuntu.

Una de las causas más comunes de dependencias insatisfechas son los PPA, especialmente cuando se utilizan para actualizar el paquete existente en los repositorios de Ubuntu. Para resolver el problema, tiene tres opciones: deshabilitar, purgar (volver al paquete original en los repositorios de Ubuntu) o eliminar PPA.

  • Inhabilitar:

    Deshabilitar un PPA significa que no habrá más actualizaciones para los paquetes instalados desde ese PPA. Para deshabilitar un PPA: Abra Software Center > Edit > Software SourcesO,

    Presiona Alt+ F2y corre software-properties-gtk.

    Haga clic en la Other Softwarepestaña, verá que cada PPA tiene dos líneas aquí, una para los paquetes compilados y otra para la fuente, Uncheckambas líneas para deshabilitar un PPA. Aquí también puede agregar y eliminar PPA.

  • Purga:

    Purgar un PPA significa degradar los paquetes en el PPA seleccionado a la versión en los repositorios oficiales de Ubuntu e inhabilitar ese PPA. PPA Purge hace exactamente eso. Para instalar PPA Purge, ejecute el siguiente comando:

    sudo apt-get install ppa-purge

Pero, considerando que la pregunta aptestá rota, el comando anterior fallará. Entonces usa este comando

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

Para usar la purga de PPA:

sudo ppa-purge ppa: someppa / ppa

Si el comando 'ppa-purge' falla por alguna razón, no puede ejecutar 'ppa-purge' nuevamente a menos que vuelva a habilitar el PPA (para habilitar el PPA siga los mismos pasos que deshabilitar un PPA y Checklas dos líneas de un determinado PPA para habilitarlo).

Nota: PPA Purgeno elimina los PPA ( puede ser en el futuro ), por lo que deberá eliminarlos manualmente.

  • Eliminar:

    Si el paquete instalado desde un PPA no existe en los repositorios oficiales de Ubuntu, PPA Purgeno se recomienda usarlo , porque no hay nada que degradar y PPA Purgetampoco lo eliminaría. Para eliminar un PPA y los paquetes instalados, ejecute los siguientes comandos: (Ignore el primer comando si no desea eliminar los paquetes instalados)

    sudo apt-get autoremove --purge nombre-paquete
    sudo add-apt-repository --remove ppa: someppa / ppa
    sudo apt-get autoclean
    

Alternativamente, puede usar Y PPA Managerpara deshabilitar / eliminar / purgar PPA (Detalles al final de la respuesta).

Medidas preventivas:

Entonces, ¿cómo podemos evitar que esto suceda en primer lugar?

  • Mantenga Ubuntu actualizado. Ubuntu notifica automáticamente cuando hay actualizaciones disponibles, también puede verificar las actualizaciones disponibles haciendo clic Session Indicatoren el panel de Unity:

    O presione Alt+ Ctrl+ Tpara abrir la terminal y ejecutar los siguientes comandos:

    sudo apt-get update
    sudo apt-get upgrade

    Actualización: Sincroniza su lista de paquetes disponibles con los servidores en los repositorios de origen. Actualización: descarga e instala las versiones más recientes de sus paquetes instalados.

  • Si decide agregar otros repositorios a sources.list, asegúrese de que el repositorio esté destinado a funcionar (y se sabe que funciona) con Ubuntu. Los repositorios que no están diseñados para funcionar con su versión de Ubuntu pueden introducir inconsistencias en su sistema y pueden obligarlo a volver a instalarlo. Además, asegúrese de que realmente necesita agregar repositorios externos ya que los paquetes de software que está buscando ya pueden haber sido introducidos en los repositorios oficiales. Fuente
  • Eliminar los PPA duplicados. Y PPA Manager(guía de instalación al final de la respuesta) puede escanear y eliminar fácilmente los PPA duplicados.

    • Presiona Alt+ F2y corre y-ppa-managerpara abrir Y PPA Manager.
    • Una vez abierta doble clic, o golpear Enterel Advanced.
    • En la ventana resultante, seleccione Scan and remove duplicate PPAsy haga clic en Aceptar.

ingrese la descripción de la imagen aquí

Obteniendo ayuda:

Cuando solicite ayuda en Askubuntu o en cualquier otro foro de ayuda, debe incluir el resultado de los siguientes comandos en su pregunta:

  • Salida de error real:

    sudo apt-get install nombre-paquete
  • Esto mostrará sus fuentes.list:

    cat /etc/apt/sources.list
  • Esto mostrará la lista de PPA (si corresponde):

    cat /etc/apt/sources.list.d/*

Fuentes Adicionales


Y PPA Manager : Y PPA Manager es una ventanilla única para todas sus necesidades de PPA.

y gerente de ppa

Estas son algunas de sus características:

  • buscar paquetes en todos los PPA de Launchpad
  • enumerar y descargar paquetes en un PPA
  • agregar / eliminar / purgar un PPA
  • copia de seguridad y restauración de fuentes de PPA
  • eliminar fuentes de PPA duplicadas

Para instalar Y PPA Manager, abra la terminal presionando Alt+ Ctrl+ Ty ejecute los siguientes comandos:

sudo add-apt-repository ppa: webupd8team / y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

Teniendo en cuenta la pregunta, aptestá rota, así que use estos comandos en su lugar

sudo su

y

32 bits:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64 bits:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb
Basharat Sialvi
fuente
3
¿Cómo instalar dependencias no satisfechas si apt está roto?
Tachyons
44
Esto fue de gran ayuda para mí ... nueva instalación de Lubuntu 12.04 y no pude instalar cosas básicas como gvim (vim-gtk) o openssh-server. Intenté todo tipo de opciones de línea de comandos, incluyendo literalmente hacer una diferencia de /etc/apt/sources.list desde esta máquina y otra (que funcionó correctamente, ejecutando Xubuntu). Después de seguir esta guía, descubrí que de alguna manera en software-properties-gtk, ¡la casilla para los repositorios 'principales' había sido desmarcada! ¡Problema resuelto!
memilanuk
1
Alguna vez has tenido paquetes rotos ... Así que lo mejor es deshacerte de ellos y eliminarlos. Ver askubuntu.com/a/363244/16395
Rmano
3
En realidad, nadie respondió cómo instalar esos paquetes con versiones de dependencias no satisfechas. ¡Dios! Solo quiero forzar la instalación de versiones anteriores de paquetes.
marines
3
Esto no funcionó para mí: S
AlvaroAV
87

Nota: Todos los comandos que se piden que se ejecuten deben ejecutarse en el terminal, que se puede abrir con Ctrl+ Alt+ To buscando el terminal en el tablero.

¿Está realmente roto?

Intente ejecutar el siguiente comando e intente reinstalar el software que estaba intentando instalar

sudo apt-get update

Pasos previos al rendimiento

Copia de seguridad

Haga una copia de seguridad de los siguientes archivos:

  • /etc/apt/sources.list
  • /var/lib/dpkg/status

Para hacerlo, use estos comandos

sudo cp /etc/apt/sources.list /etc/apt/sources.list.original

y

sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.original

Borrar tu apt-cache

aptmantiene un caché de paquetes descargados recientemente para ahorrar ancho de banda cuando es necesario instalarlo. Esto puede ser contraproducente en algunos casos.

Ahora, para limpiarlo, tienes dos opciones

sudo apt-get clean 

Esto eliminará todos los paquetes en caché que pertenecen a la carpeta /var/cache/apt/archives/y /var/cache/apt/archives/partialexcepto los archivos .lock. Esto es recomendable

sudo apt-get autoclean

Esto escanea las carpetas /var/cache/apt/archives/y /var/cache/apt/archives/partialcomprueba si el paquete todavía está en los repositorios y elimina los que no están


Arreglando dependencias

Usando el modo de reparación de apt apt

sudo apt-get -f install

Esto hará que sea apto para buscar dependencias faltantes y corregirlas desde los repositorios

Si el resultado indica que no se instaló o actualizó nada nuevo, ha fallado.


Comprobando si todas las fuentes requeridas están habilitadas

Escribe gksu software-properties-gtky obtendrás esta ventana

Asegúrese de que todas las fuentes estén habilitadas.

a continuación, vaya a la pestaña Otro software y verifique si los PPA requeridos para el software que se instalará están allí y están habilitados. Además, intente deshabilitar algunos PPA que podrían tener paquetes rotos

ahora corre sudo apt-get update

Intenta instalar el software ahora

Seleccionar un mejor servidor para descargar

Escribe gksu software-properties-gtky obtendrás esta ventana

Haga clic en Descargar del cuadro desplegable y seleccione otro

Haga clic en Seleccionar el mejor servidor

correr sudo apt-get update

Intenta instalar el software

Además, intente usar sudo apt-get install -f


Purga de PPA

Esta es una herramienta utilizada para purgar los PPA rotos / no deseados y sus aplicaciones junto con él.

Para instalarlo, ejecuta

sudo apt-get install ppa-purge

Pero, teniendo en cuenta que la pregunta aptestá rota, el comando anterior fallará. Entonces usa este comando

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

Ahora use purga de ppa

sudo ppa-purge ppa:someppa/ppa  

Gerente de Y-PPA

Y-PPA Manager es una aplicación gui que te ayuda a administrar los PPA y varios problemas asociados

Para instalarlo

sudo add-apt-repository ppa:webupd8team/y-ppa-manager

y

sudo apt-get update

y

sudo apt-get install y-ppa-manager

Teniendo en cuenta que la pregunta aptestá rota, use estos comandos en su lugar

sudo su

y

32 bits:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64 bits:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb

Ahora escribe y-ppa-manager

Se te presentará esta ventana

Haga doble clic en avanzado y obtendrá esta ventana

Realice las siguientes tareas descritas en negro


Es mejor prevenir que curar

Es mejor prevenir que buscar esta pregunta en AskUbuntu: D

Entonces, aquí están las pautas para mantenerlo a salvo

Mantenga su sistema actualizado

siempre ejecute el siguiente comando regularmente

sudo apt-get update&&sudo apt-get upgrade

o, siempre puedes usar Update Manager con este comando

gksu update-manager

Usar solo PPA de confianza

Solo use PPA para ser usado en Ubuntu también, solo use PPA con fuentes confiables. De hecho, el paquete podría estar ya en los repositorios de ubuntu

Hacer copias de seguridad cuando las cosas están bien y restaurarlas más tarde

Para esto necesitas Y-PPA-Manager. Los pasos para instalarlo se dan arriba.

Ejecute este comando para abrir Y-PPA-Manager

y-ppa-manager

Se te presentará esta ventana

Haga doble clic en avanzado y obtendrá esta ventana

Ejecuta esto:

Se le pedirá que guarde un archivo tar.gz con un cuadro de diálogo similar al siguiente. Guárdelo en otra partición o en un lugar seguro

Más tarde, cuando necesite restaurarlo nuevamente, siga pasos similares y cuando llegue al cuadro de diálogo avanzado, haga clic en esto:

Se le pedirá que restaure desde la copia de seguridad anterior que guardó antes con un cuadro de diálogo similar al siguiente


¿Sigue sin funcionar?

Los errores de dependencia del paquete no siempre son genéricos y dependen del paquete que se instalará.

Si seguir todos los pasos dados para corregir el error no funciona para usted, siempre puede preguntar en Preguntar Ubuntu

Aquí hay algunos comandos que necesita para publicar la salida de

sudo apt-get install packagename

y

cat /etc/apt/sources.list

y

cat /etc/apt/sources.list.d/*

(Gracias a Basharat Sial )

También hay otros archivos / comandos de los que necesita la salida que pueden ser específicos de errores, y los usuarios probablemente le pedirán en los comentarios que publiquen el archivo / comando.

Amith KK
fuente
Me gustaría poner apt-get updatecerca de la parte superior de la lista. A veces, su sistema ha realizado una actualización en la que un paquete más nuevo se ha actualizado de forma remota, pero uno del que depende aún no ha terminado de compilarse. O la versión que tiene en su caché local ha sido actualizada. En esos casos, un simple apt-get updateactualizará su caché local y podrá continuar.
Hamish Downer
1
Respuesta de primera clase! Simplemente me hace desear que apt y / o dpkg tengan mejores protecciones para asegurarme de que no entren en estos estados rotos atascados, o que sean mejores para resolverlos. He tenido este problema antes y estaba bastante frustrado cuando apt-get install -fno lo solucioné.
Jeff Welling
También puede incluir esta advertencia: "Nunca actualice su sistema mientras PPA esté habilitado, desactívelos primero y luego actualícelo" Porque, si actualiza a una versión de PPA y luego ese PPA queda muerto, eventualmente significa que está muerto . No puede degradar todo el sistema a los números de versión más bajos y no puede instalar algo desde un repositorio estándar porque el paquete de repo estándar tiene conflictos con el paquete PPA instalado.
Anwar
2
Elegir un mejor servidor lo arregló para mí. ¡Gracias!
Hoang Huynh
Pensé que la -fbandera representa la fuerza y siempre evita usarlo
user907860
38

Estas respuestas hasta ahora se centran en cómo resolver automáticamente un problema de este tipo, principalmente con la esperanza de que se resuelva solo, pero no se centran en comprender cómo investigar las dependencias. Es importante probar cosas como asegurarse de que sus listas de paquetes estén actualizadas, ya que debe asegurarse de que una simple actualización o borrado de la memoria caché no resuelva el problema antes de profundizar. Si todo detrás de escena funciona como debería, sin embargo, es primordial aprender a entender las dependencias. A veces, las capas de dependencias pueden parecer abrumadoras, pero el concepto es simple y clave para comprender cómo se instala / desinstala el software en un sistema Ubuntu.

Le recomiendo aptitud para cualquier persona que utilice un sistema basado .deb como Ubuntu. Su estructura de árbol le permite examinar fácilmente las dependencias, incluidos los paquetes recomendados y sugeridos, así como visualizar conflictos y dependencias no satisfechas. Es una herramienta invaluable para cuando apt-get no ofrece una solución simple, y para visualizar dependencias en general. ( Synaptic también está disponible en Ubuntu, pero no lo encuentro tan intuitivo).

Aptitude también ofrece un solucionador de conflictos que lo guiará a través de todas las combinaciones posibles de paquetes instalados / eliminados / actualizados / etc. para satisfacer todos los requisitos sin conflicto ni problema. Esto puede ser exitoso incluso cuando apt no puede encontrar una solución. Como usuario de Ubuntu, normalmente no surgen situaciones que requieran que investigue por qué se está instalando ese paquete en particular, pero es casi inevitable a medida que usa más el sistema.

sobre prescrito
fuente
3
Elegido para mencionar la resolución de conflictos de Aptitude. Hay momentos en los que es esencial utilizar herramientas avanzadas como esta para determinar cuáles son las posibilidades y determinar el conflicto central.
John S Gruber
3
Esta podría ser la mejor respuesta en este hilo. Incluso se puede mejorar con un tutorial de tiro sobre aptitudela resolución de conflictos.
Luís de Sousa
2
este enlace, si bien no explica las dependencias, o su concepto general, muestra un tutorial rápido del solucionador interactivo: aptitude.alioth.debian.org/doc/en/ch02s03s03.html
sobreprescrito el
1
La aptitud +1 acaba de salvar mi tocino frente a un conflicto GTK3. apt-get no fue de ninguna ayuda.
Chris Laplante
1
Lo que me gusta es sudo aptitude --full-resolver my_package. Eso generalmente da The following packages have unmet dependenciesuna lista entre las cuales 7) <my_package> [Not Installed](7 es solo un ejemplo). En cada paso, la aptitud ofrece nuevas opciones. Lo que funcionó para mí fue elegir primero 7, luego r 7(que corresponde a la descripción Rejecting the removal of my_package), y luego n (para NO), ya que las opciones anteriores no eran lo que quería: pero después de eso, las nuevas opciones ofrecieron degradar algunos paquetes junto con instalar my_package; así que, por último, Y(para SÍ)
24

paquete1: depende: paquete2 (> = 1.8) pero 1.7.5-1ubuntu1 debe instalarse

Explicación del mensaje:

  1. Para que su instalación se complete, package1 necesita package2.
  2. package2 tiene que estar disponible en la versión> = 1.8
  3. El administrador de paquetes verificó todos los repositorios y solo encontró la versión 1.7.5-1ubuntu1 que podría instalarse, lo que no hará porque es <1.8

Reparar

No hay una respuesta correcta única para esta pregunta y NO hay una respuesta simple.

Hay muchos escenarios por los que esto puede suceder y uno tiene que investigar todas las opciones e intentar resolver las condiciones previas que conducen a este error.

Escenario A:

Todos los repositorios a los que tiene acceso no tienen package2 en la versión> = 1.8, por lo que tendrá que encontrar un repositorio que sí lo tenga. Si no puede encontrar un repositorio con versiones> = 1.8, entonces es posible que deba compilar e instalar package2 desde el origen. Y luego intente instalar package1.

Si desea saber cómo construir un paquete desde la fuente, consulte otras preguntas / respuestas o publique uno nuevo.

Escenario B:

Los repositorios sí incluyen package2 en una versión> = 1.8 pero el administrador de paquetes todavía quiere instalar una versión anterior (1.7.5).

La razón de esto puede ser que las versiones posteriores de package2 fueron creadas por alguna tecnología más nueva que no es compatible con otros paquetes que ya ha instalado.

Esto podría no ser posible solucionarlo en absoluto. Puede intentar usar apt o synaptic y buscar todas las versiones del paquete2 que están disponibles en los repositorios, e intentar instalar una versión específica> = 1.8

Si tiene otros paquetes incompatibles y hace esto, obtendrá una lista de mensajes de error similares para todos los demás paquetes que impiden la instalación de package2> = 1.8.

En este caso, tienes un problema mayor. Querías instalar package1, que necesita package2 para ser> = 1.8, pero package2 en versión> = 1.8 requiere que package3 esté en versión> = 6.7 y tienes package3 versión 6.3

La cuestión es que el administrador de paquetes (APT) intenta resolver todas estas dependencias automáticamente si es posible. Cuando dice que no es posible (y emite un mensaje como en la pregunta), entonces debe confiar en él.

Si decide no confiar en el administrador de paquetes y está seguro de que no tendrá problemas, puede intentar forzar la instalación de las versiones específicas necesarias de todos los paquetes, uno por uno, y esperar que todo esté bien.

Tenga cuidado, hacer esto para los paquetes del sistema puede crear serios problemas. Puede bloquear el sistema, bloquear servicios críticos, etc.

Escenario C:

Independientemente de los motivos del problema, siempre puede configurar la compilación manual y compilar el paquete necesario y todas sus dependencias en las versiones exactas necesarias desde el origen. Con esta opción, puede mantener lo que creó en un directorio separado y fuera de la ruta del sistema para que no cree conflictos con el sistema. Esta es probablemente la solución más limpia, y a veces puede ser más rápida.

Escenario D:

El administrador de paquetes tiene acceso a información desactualizada sobre paquetes y, por lo tanto, no puede encontrar una solución. Mira en las otras respuestas.

Escenario E:

El administrador de paquetes tiene un error en el código de resolución de dependencia.

Debe investigar que este es realmente el caso y luego emitir una solicitud de error.

...

Escenario Z:

Puede haber otros escenarios.

Por ejemplo, los mantenedores de paquetes podrían haber estado equivocados y no comprobaron que el paquete1 funcionaría incluso con la versión del paquete2 <1.8 y en la especificación establecieron dependencias incorrectas.

Vangel V. Ajanovski
fuente
17

Estos métodos deben seguirse siempre que tenga un error con respecto a las dependencias insatisfechas

Después de seguir las instrucciones, intente instalar el software. Al menos uno de estos métodos debería funcionar para usted

1 . Antes de intentar cualquier comando nuevo o agregar un nuevo ppa intente esto

Limpieza de la caché de apt:

sudo apt-get clean

Limpieza de cualquier dependencia no utilizada:

sudo apt-get autoremove

Actualizando apt-cache

sudo apt-get update

Esto eliminará todo el caché y descargará un caché nuevo. Esto debe hacerse para obtener nuevos paquetes de caché y actualizaciones más recientes.

2 . Tratar sudo apt-get install -f.

Probablemente dará algunas sugerencias sobre la eliminación e instalación de paquetes, haga lo que parezca razonable.

3 . Cambie el Download Serverde Software SourcesPorque a veces los archivos de un servidor están dañados.

ingrese la descripción de la imagen aquí
ingrese la descripción de la imagen aquí
ingrese la descripción de la imagen aquí

4 . Esto también sucede si antes agregó un ppa externo para la dependencia rota. Intente eliminar ese ppa

  • ya sea escribiendo sudo add-apt-repository --remove ppa:someppa/ppay luego eliminando manualmente los archivos / bibliotecas instalados ppa

o

  • purgar un ppa (esto también elimina los archivos instalados)

    sudo apt-get install ppa-purge   #a one time install 
    sudo ppa-purge ppa:someppa/ppa  
    

5 . Si el 4 no es su caso, al menos intente eliminar el paquete que se muestra como una dependencia rota. Luego intente nuevamente la instalación. Se informa que esto ha funcionado para algunas personas.

6 . Siempre agregue la versión estable de un repositorio / PPA.

ingrese la descripción de la imagen aquí

7 También asegúrese de tener todos los repositorios oficiales habilitados (In Software Sources)

ingrese la descripción de la imagen aquí

Por favor, no habilite el Proposed Updatesya que están destinados a pruebas / desarrolladores.

ingrese la descripción de la imagen aquí


Según lo dicho por doug:

Por lo general, el mejor primer paso para resolver esto es identificar la fuente de <pkg1>& <pkg2>.

Además, no se observa que en muchos, si no en la mayoría de los casos, "se debe instalar <whatever>" realmente significa "<whatever> está instalado" y se debe intentar eliminarlo si nada más funciona (como en el punto 5).


Seguiré agregando más cosas que encontraré para arreglar unmet dependencies.

Ashu
fuente
3
@Ashu Una cosa que puede querer arreglar apt-get update: no actualiza el caché apto (que consiste en .debarchivos descargados y un archivo que almacena información sobre qué .debarchivos ha almacenado). Actualiza los archivos de índice de paquetes (que consisten en información sobre qué paquetes están disponibles para descargar e instalar desde cada fuente de software disponible). Como dije antes, apt-get cleanno limpia lo mismo que las apt-get updateactualizaciones. Ver man apt-getpara más detalles.
Eliah Kagan
16

Para la mayoría de los casos, la instalación del paquete aptituderesolverá las dependencias insatisfechas. Por defecto, el aptitudepaquete no se instaló en su PC. Primero, instálelo ejecutando,

sudo apt-get update
sudo apt-get install aptitude

entonces,

sudo aptitude install packagename

Por ejemplo,

    
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ sudo apt-get install ubuntu-sdk
Leyendo listas de paquetes ... Hecho
Construyendo árbol de dependencia       
Leyendo información del estado ... Hecho
Algunos paquetes no se pudieron instalar. Esto puede significar que tienes
solicitó una situación imposible o si está utilizando el inestable
distribución de que algunos paquetes requeridos aún no se han creado
o ha sido trasladado fuera de entrada
La siguiente información puede ayudar a resolver la situación:

Los siguientes paquetes tienen dependencias insatisfechas:
 ubuntu-sdk: Depende: qtcreator-plugin-ubuntu pero no se instalará
E: Incapaz de corregir problemas, ha retenido paquetes rotos.

Instalar el paquete a través de aptitude

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ sudo aptitude install ubuntu-sdk
Se instalarán los siguientes paquetes NUEVOS:
  apparmor-easyprof {a} apparmor-easyprof-ubuntu {a} en {a} build-essential {a} 
  click {a} click-apparmor {a} click-dev {a} click-doc {a} cordova-ubuntu-2.8 
  cordova-ubuntu-2.8-examples {a} debhelper {a} devscripts {a} dh-apparmor {a} 
  dh-make {a} distro-info-data {a} dpkg-dev {a} dput {a} g ++ {a} g ++ - 4.8 {a} 
  geoclue-gypsy {a} libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-perl {a} libboost-filesystem1.53.0 {a} 
  libboost-program-options1.53.0 {a} libboost-regex1.53.0 {a} 
  libbotan-1.10-0 {a} libdee-qt5-3 {a} libdistro-info-perl {a} 
  libexporter-lite-perl {a} libglib2.0-dev {a} 
  libgstreamer-plugins-base1.0-dev {a} libgstreamer1.0-dev {a} libgypsy0 {a} 
  libhud2 {a} libio-stringy-perl {a} libjs-jquery {a} libjs-sphinxdoc {a} 
  libjs-underscore {a} liblockdev1 {a} libmail-sendmail-perl {a} 
  libparse-debcontrol-perl {a} libpcre3-dev {a} libpcrecpp0 {a} 
  libpoppler-qt5-1 {a} libqdjango-db0 {a} libqgsttools-p1 {a} 
  libqt5clucene5 {a} libqt5contacts5 {a} libqt5declarative5 {a} 
  libqt5designer5 {a} libqt5designercomponents5 {a} libqt5feedback5 {a} 
  libqt5help5 {a} libqt5location5-plugins {a} libqt5multimedia5 {a} 
  libqt5multimedia5-plugins libqt5multimediaquick-p5 {a} 
  libqt5multimediawidgets5 {a} libqt5organizer5 {a} 
  libqt5qml-graphicaleffects {a} libqt5script5 libqt5scripttools5 {a} 
  libqt5svg5 {a} libqt5svg5-dev libqt5systeminfo5 {a} libqt5v8-5-dev 
  libqt5versit5 {a} libqt5versitorganizer5 {a} libqt5webkit5-dev 
  libqt5webkit5-qmlwebkitplugin {a} libqt5xmlpatterns5 {a} 
  libqt5xmlpatterns5-dev libstdc ++ - 4.8-dev {a} libsys-hostname-long-perl {a} 
  libthumbnailer0 {a} libu1db-qt5-3 {a} libunity-action-qt1 {a} 
  libupstart-app-launch1 {a} libusermetricsinput1 {a} libxml2-dev {a} 
  libxslt1-dev {a} po-debconf {a} python3-apparmor-click {a} python3-click {a} 
  python3-magic {a} qmlscene qt3d5-dev qtbase5-doc {a} qtcreator {a} 
  qtcreator-doc {a} qtcreator-plugin-ubuntu {a} 
  qtcreator-plugin-ubuntu-common {a} qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin {a} qtdeclarative5-dev-tools 
  qtdeclarative5-doc-html {a} qtdeclarative5-folderlistmodel-plugin 
  qtdeclarative5-friends0.2 qtdeclarative5-localstorage-plugin 
  qtdeclarative5-partículas-plugin qtdeclarative5-poppler1.0 
  qtdeclarative5-qtaudioengine-plugin qtdeclarative5-qtfeedback-plugin {a} 
  qtdeclarative5-qtlocation-plugin qtdeclarative5-qtmultimedia-plugin {a} 
  qtdeclarative5-qtorganizer-plugin qtdeclarative5-qtquick2-plugin {a} 
  qtdeclarative5-qtsensors-plugin qtdeclarative5-u1db1.0 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin {a} 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin-assets {a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-plugin {a} qtdeclarative5-xmllistmodel-plugin 
  qtgraphicaleffects5-doc {a} qtlocation5-dev {a} qtmultimedia5-dev 
  qtmultimedia5-doc {a} qtmultimedia5-doc-html {a} qtscript5-dev 
  qtscript5-doc {a} qtscript5-doc-html {a} qtsensors5-dev {a} qtsvg5-doc {a} 
  qtsvg5-doc-html {a} qttools5-dev qttools5-dev-tools qttools5-doc {a} 
  qtwebkit5-doc-html {a} schroot {a} schroot-common {a} sqlite3 {a} 
  ubuntu-html5-container ubuntu-html5-sdk {ab} ubuntu-html5-theme {a} 
  ubuntu-html5-theme-examples ubuntu-sdk ubuntu-sdk-libs 
  ubuntu-sdk-libs-dev {a} ubuntu-ui-toolkit-doc {a} 
  ubuntu-ui-toolkit-examples {a} ubuntu-ui-toolkit-theme {a} 
  unity-action-doc {a} upstart-app-launch {a} upstart-app-launch-tools {a} 
  usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
Se actualizarán los siguientes paquetes:
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
15 paquetes actualizados, 151 recién instalados, 0 para eliminar y 293 no actualizados.
Necesita obtener 108 MB / 126 MB de archivos. Después de desempacar, se utilizarán 273 MB.
Los siguientes paquetes tienen dependencias insatisfechas:
 ubuntu-html5-sdk: Depende: qtdeclarative5-ubuntu-webapps-api, que es un paquete virtual.
                    Depende: ubuntu-html5-ui-toolkit pero no se instalará.
Las siguientes acciones resolverán estas dependencias:

     Mantenga los siguientes paquetes en su versión actual:              
1) qtcreator-plugin-ubuntu [No instalado]                          
2) ubuntu-html5-sdk [No instalado]                                 
3) ubuntu-sdk [No instalado]                                       

     Deje las siguientes dependencias sin resolver:                       
4) libhud-client2 recomienda hud (= 13.10.1 + 13.10.20131014-0ubuntu1)
5) qtcreator-plugin-ubuntu-common recomienda qtcreator-plugin-ubuntu


¿Aceptar esta solución? [S / n / q /?] Y
Se instalarán los siguientes paquetes NUEVOS:
  apparmor-easyprof {a} apparmor-easyprof-ubuntu {a} compilación-esencial {a} 
  haga clic en {a} click-apparmor {a} cordova-ubuntu-2.8 debhelper {a} dh-apparmor {a} 
  dh-make {a} dpkg-dev {a} g ++ {a} g ++ - 4.8 {a} geoclue-gypsy {a} 
  libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-perl {a} libdee-qt5-3 {a} libglib2.0-dev {a} 
  libgstreamer-plugins-base1.0-dev {a} libgstreamer1.0-dev {a} libgypsy0 {a} 
  libhud2 {a} libjs-jquery {a} libmail-sendmail-perl {a} libpcre3-dev {a} 
  libpcrecpp0 {a} libpoppler-qt5-1 {a} libqdjango-db0 {a} libqgsttools-p1 {a} 
  libqt5clucene5 {a} libqt5contacts5 {a} libqt5designer5 {a} 
  libqt5designercomponents5 {a} libqt5feedback5 {a} libqt5help5 {a} 
  libqt5location5-plugins {a} libqt5multimedia5 {a} libqt5multimedia5-plugins 
  libqt5multimediaquick-p5 {a} libqt5multimediawidgets5 {a} 
  libqt5organizer5 {a} libqt5qml-graphicaleffects {a} libqt5script5 
  libqt5scripttools5 {a} libqt5svg5 {a} libqt5svg5-dev libqt5systeminfo5 {a} 
  libqt5v8-5-dev libqt5versit5 {a} libqt5versitorganizer5 {a} 
  libqt5webkit5-dev libqt5webkit5-qmlwebkitplugin {a} libqt5xmlpatterns5 {a} 
  libqt5xmlpatterns5-dev libstdc ++ - 4.8-dev {a} libsys-hostname-long-perl {a} 
  libthumbnailer0 {a} libu1db-qt5-3 {a} libunity-action-qt1 {a} 
  libupstart-app-launch1 {a} libusermetricsinput1 {a} libxml2-dev {a} 
  libxslt1-dev {a} po-debconf {a} python3-apparmor-click {a} python3-click {a} 
  qmlscene qt3d5-dev qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin {a} qtdeclarative5-dev-tools 
  qtdeclarative5-folderlistmodel-plugin qtdeclarative5-friends0.2 
  qtdeclarative5-localstorage-plugin qtdeclarative5-partículas-plugin 
  qtdeclarative5-poppler1.0 qtdeclarative5-qtaudioengine-plugin 
  qtdeclarative5-qtfeedback-plugin {a} qtdeclarative5-qtlocation-plugin 
  qtdeclarative5-qtmultimedia-plugin {a} qtdeclarative5-qtorganizer-plugin 
  qtdeclarative5-qtquick2-plugin {a} qtdeclarative5-qtsensors-plugin 
  qtdeclarative5-u1db1.0 qtdeclarative5-ubuntu-ui-extras-browser-plugin {a} 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin-assets {a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-plugin {a} qtdeclarative5-xmllistmodel-plugin 
  qtlocation5-dev {a} qtmultimedia5-dev qtscript5-dev qtsensors5-dev {a} 
  qttools5-dev qttools5-dev-tools sqlite3 {a} ubuntu-html5-container 
  ubuntu-html5-theme {a} ubuntu-html5-theme-examples ubuntu-sdk-libs 
  ubuntu-ui-toolkit-theme {a} upstart-app-launch {a} 
  upstart-app-launch-tools {a} usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
Se actualizarán los siguientes paquetes:
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
15 paquetes actualizados, 108 recién instalados, 0 para eliminar y 293 no actualizados.
Necesita obtener 27.1 MB / 45.8 MB de archivos. Después de desempaquetar, se utilizarán 104 MB.
¿Quieres continuar? [S / n /?]
Avinash Raj
fuente
Su ejemplo solo tiene aptitud para detener la instalación. En realidad no instala nada.
kiri
2
@AvinashRaj, .. pero antes de la instalación, aptitude¿no debería resolverse el problema de las dependencias?
precisa
sí, en la mayoría de los casos resuelve las dependencias.
Avinash Raj
2
Quiero decir, si el sistema tiene paquetes rotos, no permitiría nuevas instalaciones hasta que se solucione ... entonces, ¿cómo instalaría aptitudesin resolver el problema primero?
precisa
en ese caso, primero tenemos que resolver los paquetes rotos; de lo contrario, no podrá instalarlos aptitude. Si no se produjo un error debido a los paquetes rotos, puede instalar aptitude.
Avinash Raj
11

Mi respuesta es similar a la de Rick arriba.

El uso de apt-get clean, apt-get autoclean, apt-get autoremove, apt-get upgrade, apt-get update, apt-get -u dist-upgrade, etc, todo no funcionó para mí.

Finalmente resolví este problema descendiendo al árbol de dependencias a través de apt-get install, ilustrado con un ejemplo a continuación. En mi caso, quería instalar libmagickwand-dev:

apt-get install libmagickwand-dev

Tengo este error:

The following packages have unmet dependencies:
 libmagickwand-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libmagickcore-dev (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed

Entonces, corrí apt-get installpor una de las dependencias que fallaban:

apt-get install libmagickcore-dev

The following packages have unmet dependencies:
 libmagickcore-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libgraphviz-dev but it is not going to be installed

Descendí más abajo del árbol:

apt-get install libgraphviz-dev

con otro error:

The following packages have unmet dependencies:
 libgraphviz-dev : Depends: libgvc5 (= 2.26.3-10ubuntu1) but it is not going to be installed

Una vez más en el fondo del árbol:

apt-get install libgvc5

Por alguna extraña razón, esto tuvo éxito, y pude instalar el paquete original que quería con apt-get install libmagickwand-dev:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libpathplan4
Suggested packages:
  libgd-tools
The following NEW packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libgvc5 libpathplan4
0 upgraded, 5 newly installed, 0 to remove and 2 not upgraded.
Need to get 808 kB of archives.
After this operation, 2,320 kB of additional disk space will be used.
Do you want to continue [Y/n]?
Michael Franzl
fuente
8

Excelentes respuestas! Pero hoy mi caso parece diferente al suyo. Aquí está mi consejo.

Problema:

No pude instalar apache2 en ubuntu 10.10.

rick@wen-VirtualBox:~$ sudo apt-get install apache2

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:

 apache2 : Depends: apache2-mpm-worker (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-prefork (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-event (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-itk (= 2.2.16-1ubuntu3) but it is not going to be installed

           Depends: apache2.2-common (= 2.2.16-1ubuntu3) but it is not going to be installed

E: Broken packages

Solución:

Mi manera es agregar el paquete dependiente en la lista de instalación.

Si 'sudo apt-get install apache2' falló, intente ' sudo apt-get install apache2 apache2.2-common '.

¿Ver? apache2.2-common proviene del registro de errores del paso anterior.

Por fin descubrí que hay una cadena de dependencia como esta:

 apache2.2-common <-- apache2.2-bin <-- libaprutil1-ldap <-- libaprutil1

Para los primeros 3 paquetes, apt-get log me dijo 'no se va a instalar',

pero para el último paquete, muestra 'libaprutil1-ldap: depende: libaprutil1 (= 1.3.9 + dfsg-3build1) pero 1.3.9 + dfsg-3ubuntu0.10.10.1 debe instalarse'

Tengo una versión diferente en mi lib, así que:

sudo apt-get remove libaprutil1

sudo apt-get install apache2

Ahora esta bien.

almiar
fuente
Una lectura combinada de esta respuesta y la otra que se encuentra aquí arriba da una mejor COMPRENSIÓN de lo que es un problema de dependencia. Cuando otras respuestas aquí proporcionan SOLUCIONES 'altamente generalizadas', esto proporciona ENTENDIMIENTO.
VenkiPhy6
7

qué es dependencias insatisfechas Error

En Ubuntu, los paquetes son la forma principal en que se construye, implementa e instala el software. De manera muy simple, los paquetes son una alternativa a la descarga, construcción e instalación de software desde cero. Ofrecen una serie de ventajas en términos de interacciones de instalación, eliminación, monitoreo y manejo entre piezas de software sobre el modelo estándar "construir desde la fuente". Ubuntu usa un sistema de empaque centralizado, es decir, cada paquete depende de algunos otros paquetes. Cuando instalamos un paquete, se instalarán sus dependencias, el error de dependencias no satisfechas ocurre cuando las dependencias del paquete no están disponibles para la instalación

Posibles causas

1.Computer is not connected to the Internet
2.The repository containing the depandancy package is not enabled
3.Package catalog is not updated
4.The version of the depandancy in the current repository is old
5.Software index is broken
6.The depandancy is not available for ubuntu

Intentemos resolverlo

  1. Conéctese a internet: D
  2. Asegúrese de que todos los repositorios predeterminados estén habilitados

    -> Puede agregarlos fácilmente en Software Center-> Editar-> Fuentes de software-> Otras fuentes-> Agregar "

    -> Iniciar el Software Center.

    ->. En el panel, vaya a Edity seleccione Software Sources.

    editar-software-fuentes

    -> Asegúrese de que todos los repositorios estén marcados ingrese la descripción de la imagen aquí

  3. Actualiza el catálogo de software

    haga clic en el icono superior derecho y elija Entrada disponible para actualización en el menú
    ingrese la descripción de la imagen aquí

y presione el botón de verificación ingrese la descripción de la imagen aquí

4. escriba ctrl+ alt+ tpara abrir la terminal y escriba sudo apt-get install -f

5.Purgue el ppa agregado recientemente usando ppa-purge ppa-purge Instalar ppa-purge

Este programa deshabilita un PPA de sus fuentes de software y revierte su sistema a los paquetes oficiales de Ubuntu. Puede usar esto para devolver su sistema a la normalidad después de probar una nueva versión de un PPA.

Sintaxis

sudo ppa-purge ppa:<repository-name>/<subdirectory>

Ejemplo

sudo ppa-purge ppa:ubuntu-mozilla-daily/ppa
  1. abra el centro de software e intente instalar cualquier software. Si aparece el siguiente cuadro de diálogo, presione el botón de reparación y espere

ingrese la descripción de la imagen aquí

De lo contrario, escriba ctrl+ alt+ tpara abrir el terminal y escriba sudo apt-get install -fy siga las instrucciones en pantalla

Si aún se produce el error, no dude en preguntar en askbuntu

Taquiones
fuente
@jrg Ya tengo eso en mi respuesta ... ¿cada respuesta debe tener lo mismo?
Ashu
2
@Ashu Estoy tratando de ayudar a las personas a dar una respuesta canónica, y tengo que decirles a todos , ya que hay una recompensa de 500 repeticiones en juego y no quiero ser el favorito para ayudar a ciertas personas con sus respuestas, pero ignorando a otros . : s
jrg
5

... no te olvides de `build-dep`

Además de las respuestas anteriores, tengo que admitir que me sorprende que nadie haya mencionado este enfoque, que es lo que siempre he usado como una "bala de plata" en cualquier momento que encontré conflictos de apt-get o paquetes no resueltos (o incluso si el sistema es terco ... ¡ja!).

EDITADO: sudo dpkg -r [package]se recomienda el uso, ya que tiene una función de eliminación bastante poderosa. Dado que apt-gettrabaja junto con dpkg, lo que significa apt-getobedecerá la dpkgfunción.

  sudo dpkg -r [package]
  sudo apt-get build-dep [package]  
  ## pre-install all deps for the package

Llama a apt-get para purgar el paquete fallido que intentaba instalar en el sistema, y ​​luego llama al comando build-dep, que apt-get tomará e instalará las dependencias que pertenecen individualmente a este paquete, de modo que satisfagan El paquete anterior. Luego, finalmente, llame a la instalación de apt-get:

sudo apt-get install [package]

.... 'Ugh! Giramos el brazo hasta que grites "¡Tío!"

Esto rara vez sucedió durante mis largos años de uso de Linux, pero me encontré usando este enfoque rara vez y lo logré. Este es un ejemplo de la reciente lucha que tuve hace un mes con los paquetes mysql-client/mysql-server. Después de una docena de intentos fallidos de restablecer mi contraseña de root con mysql-server (incluso a través de --skip-grant-tables techqiue pero falló), finalmente logré 'torcer el brazo de Linux hasta que gritó "¡Tío!"':

sudo dpkg -r mysql-server mysql-client
sudo apt-get autoclean  
## this dumps any copy of existing package to prevent apt-get from "re-using" it.
sudo apt-get build-dep mysql-client   
 ## one package at a time, starting with client first
sudo apt-get install mysql-client
sudo apt-get build-dep mysql-server
sudo apt-get install mysql-server

apt-get autoclean es la clave en esta solución

Faron
fuente
3

Durante la instalación de paquetes i386 en sistemas Ubuntu Multiarch de 64 bits

Si está intentando instalar un paquete que depende de muchos paquetes i386, el error de dependencia mencionado anteriormente también se produciría si no agrega la arquitectura i386 ejecutando el sudo dpkg --add-architecure i386comando.

Ejemplo:

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
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:
 skype : Depends: skype-bin but it is not installable
E: Unable to correct problems, you have held broken packages.
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo dpkg --add-architecture i386
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype-bin:i386 sni-qt:i386 zlib1g:i386
Suggested packages:
  nas:i386 glibc-doc:i386 locales:i386 rng-tools:i386 libglide3:i386
  gnutls-bin:i386 krb5-doc:i386 krb5-user:i386 libvisual-0.4-plugins:i386
  gstreamer-codec-install:i386 gnome-codec-install:i386
  gstreamer1.0-tools:i386 gstreamer1.0-plugins-base:i386 jackd2:i386
  pulseaudio:i386 libqt4-declarative-folderlistmodel:i386
  libqt4-declarative-gestures:i386 libqt4-declarative-particles:i386
  libqt4-declarative-shaders:i386 qt4-qmlviewer:i386 libqt4-dev:i386
  libicu48:i386 libthai0:i386 qt4-qtconfig:i386
Recommended packages:
  xml-core:i386
The following NEW packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype skype-bin:i386 sni-qt:i386 zlib1g:i386
0 upgraded, 115 newly installed, 0 to remove and 7 not upgraded.
Need to get 63.7 MB of archives.
After this operation, 225 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Avinash Raj
fuente
Estoy de acuerdo en que puede ser una de las posibles causas. cuando intenté instalar algún otro paquete (por ejemplo vlc) después de instalar skype y obtuve la dependencia insatisfecha. Salí de una situación similar al agregar :amd64al final del nombre del paquete que causa el error. como te recuperaste ¿Cuál sería la mejor solución?
souravc
No estoy seguro de por qué esto fue rechazado. Es lo que necesitaba para instalar Wine de 32 bits. Por cierto, tiene un error tipográfico en --add-architecture, y debe agregar un recordatorio para ejecutar apt-get upgrade después de --add-architecture.
Matt Chambers
1

Después de haber intentado cerca de todos los métodos mencionados en este hilo (y otros) estuve a punto de rendirme. Había actualizado mi Debian Lenny a Squeeze, y no pude entender por qué PHP5, Apache, MySQL, etc. no querían instalar. Al final intenté usar

sudo apt-get purge apache2
sudo apt-get purge php5
sudo apt-get purge mysql-server
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get install apache2 php5 mysql-server

..y funcionó a la perfección! ( Cuidado, puede destruir tus archivos de configuración, ¡así que haz una copia de seguridad! )

h2ooooooo
fuente
Esto no resuelve el problema si no tiene instalados los paquetes mencionados.
Braiam
1

Lo que funcionó para mí es reinstalar la dependencia. Es el caso donde la versión instalada es más reciente que la última (lo que muestra la sináptica). En realidad, es equivalente a permitir que Synaptic rebaje el paquete de dependencia.

Otra cosa que funcionó es usar "aptitude":

root@arau:~# aptitude install libgfortran3
The following NEW packages will be installed:
  libgfortran3{b} 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 250 kB of archives. After unpacking 1 230 kB will be used.
The following packages have unmet dependencies:
 libgfortran3 : Depends: gcc-4.8-base (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is installed.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libgfortran3 [Not Installed]                       



Accept this solution? [Y/n/q/?] n
Internal error: found 2 (choice -> promotion) mappings for a single choice.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

      Downgrade the following packages:                                        
1)      cpp-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
2)      gcc-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
3)      gcc-4.8-base [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
4)      libasan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
5)      libatomic1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
6)      libgcc-4.8-dev [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]
7)      libgomp1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
8)      libitm1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
9)      libquadmath0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
10)     libstdc++6 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
11)     libtsan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      

Accept this solution? [Y/n/q/?] y
Bob Yoplait
fuente
no es nada nuevo, básicamente, el mismo lo que puede retirar de respuesta más valorados aquí y que le sigue ...
JoKeR
1
Sí, pero hay millones de soluciones, solo menciono lo que funcionó para mí.
Bob Yoplait
0

Si recibe un error como este:
ingrese la descripción de la imagen aquí

Esto le indica que los paquetes ya están instalados, pero no ha instalado todos los demás paquetes que necesita para funcionar. Debería poder resolver esto ejecutando esto:

sudo apt-get -f install

(Este comando debería instalar automáticamente las dependencias no satisfechas).

o algo como esto (con los paquetes relevantes) :

sudo apt-get install click curl dpkg-dev python-lzma python-requests imagemagick ubuntu-dev-tools

Pero si terminas con este tipo de error: no se puede instalar el paquete / paquete no disponible / no hay candidato para la instalación, etc.

Luego puede buscar formas de instalarlos aquí o aquí .
Con el ejemplo anterior, debería poder encontrar una página como esta y luego usar un PPA o instalar un .deb para 32 bits o un .deb para 64 bits .

Wilf
fuente