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

Ocasionalmente, cuando estoy instalando cosas, aparece un error como el siguiente:

Some packages could not be installed. This may mean that you haverequested an impossible situation or if you are using the unstabledistribution that some required packages have not yet been createdor 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 installedE: Unable to correct problems, you have held broken packages.

¿Cómo puedo resolver esto?

APT es un sistema de administració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 se mezclan dependencias de terceros, existe la posibilidad de que apt-get puede terminar dándole un error que le indica que no se pudo completar la instalación de un paquete.

Solución:

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

  • Si el error muestra algo como esto:

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

    A continuación, asegúrese de que el restricted y universe los repositorios están habilitados. Golpear Alt+F2, tipo software-properties-gtk y golpear Enter.

    Bajo Ubuntu Software pestaña, habilite todos los repositorios.

  • Una posible causa de dependencias no satisfechas podría ser una base de datos de paquetes dañada y/o algunos paquetes no se instalaron correctamente. Para solucionar este problema, pulsa Alt+Ctrl+T para abrir terminal e intentar ejecutar uno de los siguientes comandos:

    sudo apt-get clean

    o,

    sudo apt-get limpieza automática

    apt-get clean borra el repositorio local de los archivos de paquete recuperados (el .archivos deb). Quita todo, pero el archivo de bloqueo de /var/cache/apt/archives/ y /var/cache/apt/archives/parcial/. apt-get autoclean borra el repositorio local de los archivos de paquete recuperados, pero a diferencia de apt-get clean, solo elimina los archivos de paquete que ya no se pueden descargar y que en gran medida son inútiles.

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

    sudo apt-get-f install

    El -f aquí significa "arreglar roto". Apt intentará corregir dependencias rotas. Si instaló manualmente un paquete que tenía dependencias no satisfechas, apt-get instalará esas dependencias, si es posible, de lo contrario, simplemente puede eliminar el paquete que instaló para resolver el problema.

    Luego corre:

    sudo dpkg --configure -a

    A continuación, ejecute 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 retienen debido a conflictos de dependencia que apt no se puede resolver. Pruebe este comando para encontrar y reparar los conflictos:

    sudo apt-get-o Debug:: pkgProblemResolver=yes dist-actualización

    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, ejecutando dist-upgrade cada vez, hasta que no queden más paquetes retenidos. A continuación, reinstale los paquetes necesarios. Asegúrese de utilizar el --dry-run opción, para que esté plenamente informado de las consecuencias:

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

    Dado que eliminar el paquete que está intentando instalar puede no ser lo 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 la fuente y luego creando "deb"paquetes para ellos.

Deshabilitar/Eliminar / Purgar los PPA:

Los PPA (Archivo de Paquete Personal) 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 no satisfechas 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.

  • Desactivar:

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

    Golpear Alt+F2 y corre software-properties-gtk.

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

  • Purgar:

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

    sudo apt-get install ppa-purge

Pero, considerando la pregunta apt está roto, el comando anterior fallará. Así que 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 Check las dos líneas de un PPA en particular para habilitarlo).

Nota: PPA Purge no elimina los PPA (puede ser en el futuro), por lo que tendrá que eliminar manualmente el PPA.

  • Quitar:

    Si el paquete instalado desde un PPA no existe en los repositorios oficiales de Ubuntu, use PPA Purge no se recomienda, porque no hay nada que degradar y PPA Purge tampoco lo borrarí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 package-namesudo add-apt-repository --remove ppa: someppa / ppasudo apt-get limpieza automática

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

Medidas Preventivas:

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

  • Mantén Ubuntu actualizado. Ubuntu notifica automáticamente cuando hay actualizaciones disponibles, también puede buscar actualizaciones disponibles haciendo clic en Session Indicator en el panel de Unity:

    O, Golpea Alt+Ctrl+T para abrir terminal y ejecutar los siguientes comandos:

    sudo apt-get updatesudo apt-get upgrade

    Actualización: Sincroniza la lista de paquetes disponibles con los servidores de los repositorios de código fuente.Actualización: Descarga e instala las versiones más recientes de los paquetes instalados.

  • Si decide agregar otros repositorios a las fuentes.lista, asegúrese de que el repositorio está destinado a trabajar (y conocida) 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 reinstalar. Además, asegúrese de que realmente necesita agregar repositorios externos, ya que es posible que los paquetes de software que está buscando ya se hayan introducido en los repositorios oficiales. Fuente
  • Eliminar duplicados PPAs. Y PPA Manager (guía de instalación al final de la respuesta) puede escanear y eliminar PPAs duplicados fácilmente.

    • Golpear Alt+F2 y corre y-ppa-manager para abrir el administrador de PPA.
    • Una vez abierto, haga doble clic o presione Enter en Advanced.
    • En la ventana resultante, seleccione Scan and remove duplicate PPAs y haga clic en Aceptar.

enter image description here

Obtener Ayuda:

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

  • Salida del error real:

    sudo apt-get install nombre del paquete
  • Esto mostrará tus fuentes.lista:

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

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

Fuentes Adicionales:


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

y ppa manager

Estas son algunas de sus características:

  • buscar paquetes en todos los PPA de Launchpad
  • listar y descargar paquetes en un PPA
  • agregar / quitar / purgar un PPA
  • copia de seguridad y restauración de orígenes de PPA
  • eliminar fuentes de PPA duplicadas

Instalar Y PPA Manager, abra la terminal presionando Alt+Ctrl+T y ejecute los siguientes comandos:

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

Considerando la pregunta, apt está roto, 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

Nota: Todos los comandos que se solicitan para ejecutarse deben ejecutarse en el terminal, que puede ser abierto por cualquiera de los dos Ctrl+Alt+T o buscando terminal en el tablero.

¿Está realmente roto?

Intente ejecutar el siguiente comando e intente reinstalar el software que intentaba instalar

sudo apt-get update

Pasos Previos al Rendimiento

Copia de seguridad

Copia de seguridad de los siguientes archivos:

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

Para ello, utilice 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 su caché de apt

apt mantiene una caché de paquetes descargados recientemente para ahorrar ancho de banda cuando se requiere su instalación. Esto puede ser contraproducente en algunos casos

Ahora, para limpiarlo, tienes dos opciones

sudo apt-get clean 

Esto eliminará todos los paquetes almacenados en caché que pertenezcan a la carpeta /var/cache/apt/archives/ y /var/cache/apt/archives/partial excepto el .bloquear archivos. Esto se recomienda

sudo apt-get autoclean

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


Reparación de dependencias

Uso del modo fix-broken de apt

sudo apt-get -f install

Esto hará que apt busque dependencias faltantes y las corrija desde los repositorios

Si la salida indica que no se instaló ni actualizó nada nuevo, ha fallado.


Comprobación de si todas las fuentes necesarias están habilitadas

Tipo gksu software-properties-gtk y 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 necesarios para que se instale el software 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

Intente instalar el software ahora

Seleccionar un servidor mejor desde el que descargar

Tipo gksu software-properties-gtk y obtendrás esta ventana

Haga clic en el cuadro desplegable Descargar desde y seleccione otro

Haga Clic En Seleccionar el Mejor Servidor

Ejecutar sudo apt-get update

Intente instalar el software

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


Purga de PPA

Esta es una herramienta que se utiliza para purgar ppas rotos/no deseados y sus aplicaciones junto con ella

Para instalarlo, ejecute

sudo apt-get install ppa-purge

Pero, considerando la pregunta apt está roto, por lo que el comando anterior fallará. Así que 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 la purga de PPA

sudo ppa-purge ppa:someppa/ppa  

Gerente de Y-PPA

Y-PPA Manager es una aplicación gui que le ayuda a administrar PPA y varios problemas asociados con ella

Para instalarlo

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

y

sudo apt-get update

y

sudo apt-get install y-ppa-manager

Considerando la pregunta, apt está roto, por lo tanto, 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 escriba y-ppa-manager

Se le presentará esta ventana

Haga doble clic en Avanzado y obtendrá esta ventana

Realice las siguientes tareas delineadas en negro


Es mejor prevenir que curar

Es mejor prevenir que buscar esta pregunta en AskUbuntu: D

Por lo tanto, aquí están las pautas para mantenerlo seguro

Mantenga su sistema actualizado

ejecute siempre el siguiente comando con regularidad

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

o bien, siempre puede usar el Administrador de actualizaciones con este comando

gksu update-manager

Usar solo PPA de confianza

Solo use PPA destinados a ser utilizados en Ubuntu además, solo use PPA con fuentes confiables. De hecho, es posible que el paquete ya esté en los repositorios de Ubuntu

Hacer copias de seguridad cuando las cosas van 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 le presentará esta ventana

Haga doble clic en Avanzado y obtendrá esta ventana

Ejecuta esto:

Se te pedirá que guardes un alquitrán.archivo gz con un 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 este:

Se le pedirá que restaure desde la copia de seguridad anterior que guardó antes con un cuadro de diálogo similar al que se muestra a continuación


¿Todavía no funciona?

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

Si seguir todos los pasos dados para corregir el error no funciona para usted, siempre puede preguntar en Pregúntale a 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 publique el archivo/comando.

Estas respuestas hasta ahora se centran en cómo ayudar al sistema a resolver automáticamente un problema de este tipo, principalmente con la esperanza de que se resuelva por sí solo, pero no se centran en comprender cómo investigar las dependencias. Es importante intentar asegurarse de que sus listas de paquetes estén actualizadas primero; siempre asegúrese de que una simple actualización o borrado de la caché no resuelva el problema antes de profundizar más. Sin embargo, si todo lo que está detrás de escena funciona como debería, es primordial comprender 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.

Lo recomiendo encarecidamente aptitud para cualquier persona que use un .sistema basado en deb, como Debian, Kali, Ubuntu o cualquiera de sus derivados. Proporciona una interfaz para navegar a través de capas de dependencias, incluidos paquetes recomendados y sugeridos. Es una herramienta invaluable para cuando apt-get no ofrece una solución a un conflicto y para visualizar dependencias en general. (Sináptico también está disponible en Ubuntu.)

El solucionador de conflictos de Aptitude le guiará a través de las posibles combinaciones de paquetes instalados/eliminados/actualizados/etc. que satisfagan sus acciones solicitadas sin conflicto. Esto a menudo puede tener éxito 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 un paquete en particular o causando un conflicto, pero es casi inevitable a medida que usa más el sistema.

>paquete 1: Depende: paquete 2 (=1.8) pero se instalará 1.7.5-1ubuntu1

Explicación del mensaje:

  1. Para que la instalación se complete, el paquete1 necesita el paquete2.
  2. >el paquete 2 debe estar disponible en la versión = 1.8
  3. El administrador de paquetes comprobó todos los repositorios y solo encontró la versión 1.7.5-1ubuntu1 que se podía instalar, lo que no hará porque es < 1.8

Fijar

No hay una respuesta única y correcta 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 y tratar de 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, es posible que deba compilar e instalar el paquete 2 desde la fuente. Y luego intente instalar el paquete1.

Si desea saber cómo construir un paquete desde el código fuente, consulte otras preguntas/respuestas o publique una nueva.

Escenario B:

>Los repositorios incluyen el paquete 2 en una versión = 1.8, pero el administrador de paquetes aún desea instalar una versión anterior (1.7.5).

La razón de esto puede ser que las versiones posteriores de package2 se crearon con una tecnología más nueva que no es compatible con otros paquetes que ya tiene instalados.

>Esto podría no ser posible de arreglar 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ía instalar el paquete 1, que necesita paquete2 a = 1.8, pero paquete2 en version =1.8 requiere package3 a ser en versión = 6,7 y tiene 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 debes 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, una por una, y esperar estar bien.

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

Escenario C:

No importa las razones del problema, siempre puede configurar la compilación manual y compilar el paquete necesario y todas sus dependencias en las versiones exactas necesarias desde la fuente. 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 de hacer.

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 las otras respuestas.

Escenario E:

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

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 haberse equivocado y no haber comprobado que el paquete1 funcionaría incluso con la versión del paquete2 < 1.8 y en la especificación establecieron dependencias incorrectas.

Estos métodos deben seguirse siempre que obtenga eror con respecto a las Dependencias no satisfechas

Después de seguir las instrucciones, intente instalar el software. Al menos uno de estos métodos deber trabaja para ti

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

Limpieza de la caché de apt:

sudo apt-get clean

Limpieza de cualquier dependencia no utilizada:

sudo apt-get autoremove

Actualización de apt-cache

sudo apt-get update

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

2. Tratar sudo apt-get install -f.

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

3. Cambie el Download Server de Software Sources Porque a veces los archivos de un servidor están dañados.

enter image description here
enter image description here

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

  • escribiendo sudo add-apt-repository --remove ppa:someppa/ppa y luego eliminar manualmente los archivos/bibliotecas instalados de 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 número 4 no es su caso, al menos intente eliminar el paquete que se muestra como una dependencia rota.A continuación, intente instalar de nuevo.Se informa que esto ha funcionado para bastantes personas.

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

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

enter image description here

Por favor, no habilite la Proposed Updates ya que están destinados a pruebas/desarrolladores.

enter image description here


Según lo dicho por Doug:

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

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


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

En la mayoría de los casos,la instalación del paquete a través de aptitude resolverá lo no satisfecho dependencies.By defecto aptitude el paquete no se ha instalado en su pc.So primero instálelo ejecutando,

sudo apt-get updatesudo apt-get install aptitude

entonces,

sudo aptitude install packagename

Por Ejemplo,

    avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install ubuntu-sdkReading listas de paquetes... Creación de árbol de dependencias Leyendo información de estado... No se pudieron instalar los paquetes DoneSome. Esto puede significar que ha solicitado una situación imposible o, si está utilizando la distribución unstabledistribution, que algunos paquetes necesarios aún no se han creado o no se han movido de Incoming.La siguiente información puede ayudar a resolver la situación:Los siguientes paquetes tienen dependencias no satisfechas: ubuntu-sdk : Depends: qtcreator-plugin-ubuntu pero no se instalará: No se pueden corregir los problemas, ha guardado paquetes rotos.

Instalación del paquete a través de aptitude

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo aptitude install ubuntu-sdkThe siguientes paquetes NUEVOS se instalará: apparmor-easyprof{un} apparmor-easyprof-ubuntu{a} a{un} build-essential{un} pulse{a} haga clic en-apparmor{un} haga clic en-dev{un} haga clic en-doc{un} córdoba-ubuntu-2.8 córdoba-ubuntu-2.8-ejemplos{un} debhelper{un} devscripts{un} dh-apparmor{un} dh-make{un} distro-info-datos{un} dpkg-dev{un} dput{un} g++{un} g++-4.8{un} geoclue-gitano{un} libalgorithm-diff-perl{un} libalgorithm-diff-xs-perl{un} libalgorithm-fusionar-perl{un} libboost-filesystem1.53.0{un} libboost-programa-opciones1.53.0{un} libboost-regex1.53.0{un} libbotan-1.10-0{un} libdee-dlls de qt5-3{a} libdistro-info-perl{un} libexporter-lite-perl{un} libglib2.0-dev{un} libgstreamer-plugins-base1.0-dev{un} libgstreamer1.0-dev{un} libgypsy0{un} libhud2{un} libio-fibrosa-perl{un} libjs-jquery{un} libjs-sphinxdoc{un} libjs-subrayado{un} liblockdev1{un} libmail-sendmail-perl{un} libparse-debcontrol-perl{un} libpcre3-dev{un} libpcrecpp0{un} libpoppler-dlls de qt5-1{a} libqdjango-db0{un} libqgsttools-p1{un} libqt5clucene5{un} libqt5contacts5{un} libqt5declarative5{un} libqt5designer5{un} libqt5designercomponents5{un} libqt5feedback5{un} libqt5help5{un} libqt5location5-plugins{un} libqt5multimedia5{un} libqt5multimedia5-plugins libqt5multimediaquick-p5{un} libqt5multimediawidgets5{un} libqt5organizer5{un} libqt5qml-graphicaleffects{un} libqt5script5 libqt5scripttools5{un} libqt5svg5{un} libqt5svg5-dev libqt5systeminfo5{un} libqt5v8-5-dev libqt5versit5{un} libqt5versitorganizer5{un} libqt5webkit5-dev libqt5webkit5-qmlwebkitplugin{un} libqt5xmlpatterns5{un} libqt5xmlpatterns5-dev libstdc++-4.8-dev{un} libsys-hostname-largo-perl{un} libthumbnailer0{un} libu1db-dlls de qt5-3{a} libunity-acción-qt1{un} libupstart-app-launch1{un} libusermetricsinput1{un} libxml2-dev{un} libxslt1-dev{un} po-debconf{un} python3-apparmor-haga clic en{un} python3-haga clic en{un} python3-magia{un} qmlscene qt3d5-dev qtbase5-doc{un} qtcreator{un} qtcreator-doc{un} qtcreator-plugin-ubuntu{un} qtcreator-plugin-ubuntu-common{un} qtdeclarative5-cuentas-plugin qtdeclarative5-córdoba-2.8-plugin{un} qtdeclarative5-dev-tools qtdeclarative5-doc-html{un} qtdeclarative5-folderlistmodel-plugin qtdeclarative5-friends0.2 qtdeclarative5-localstorage-plugin qtdeclarative5-partículas-plugin qtdeclarative5-poppler1.0 qtdeclarative5-qtaudioengine-plugin qtdeclarative5-qtfeedback-plugin{un} qtdeclarative5-qtlocation-plugin qtdeclarative5-qtmultimedia-plugin{un} qtdeclarative5-qtorganizer-plugin qtdeclarative5-qtquick2-plugin{un} qtdeclarative5-qtsensors-plugin qtdeclarative5-u1db1.0 qtdeclarative5-ubuntu-interfaz de usuario-extras-browser-plugin{un} qtdeclarative5-ubuntu-interfaz de usuario-extras-browser-plugin-activos{un} qtdeclarative5-ubuntu-interfaz de usuario-kit de herramientas-plugin{un} qtdeclarative5-unidad-acción-plugin{un} qtdeclarative5-usermetrics0.1 qtdeclarative5-ventana-plugin{un} qtdeclarative5-xmllistmodel-plugin qtgraphicaleffects5-doc{un} qtlocation5-dev{un} qtmultimedia5-dev qtmultimedia5-doc{un} qtmultimedia5-doc-html{un} qtscript5-dev qtscript5-doc{un} qtscript5-doc-html{un} qtsensors5-dev{un} qtsvg5-doc{un} qtsvg5-doc-html{un} qttools5-dev qttools5-dev-tools qttools5-doc{un} qtwebkit5-doc-html{un} schroot{un} schroot-common{un} sqlite3{un} ubuntu-html5-contenedor de ubuntu-html5-sdk{ab} ubuntu-html5-tema{un} ubuntu-html5-tema-ejemplos de ubuntu-sdk ubuntu-sdk-libs ubuntu-sdk-libs-dev{un} ubuntu-interfaz de usuario-kit de herramientas-doc{un} ubuntu-interfaz de usuario-kit de herramientas-ejemplos{un} ubuntu-interfaz de usuario-kit de herramientas-tema{un} la unidad de acción-doc{un} upstart-app-lanzamiento{un} upstart-app-inicio-herramientas de{a} usermetricsservice{un} wdiff{un} zlib1g-dev{a} Los siguientes paquetes serán actualizados: cpp-4.8 gcc-4.8 gcc-4.8-base de 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 se ha actualizado.Necesita obtener 108 MB/126 MB de archivos. Después de desempaquetar, se utilizarán 273 MB.Los siguientes paquetes tienen dependencias no satisfechas: ubuntu-html5-sdk: Depends: qtdeclarative5-ubuntu-webapps-api que es un paquete virtual.                    Depende de: ubuntu-html5-ui-toolkit pero no se va a 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-ubuntuAcepta esta solución? [Y / n / q/?] yel siguientes paquetes NUEVOS se instalará: apparmor-easyprof{un} apparmor-easyprof-ubuntu{un} build-essential{un} pulse{a} haga clic en-apparmor{un} córdoba-ubuntu-2.8 debhelper{un} dh-apparmor{un} dh-make{un} dpkg-dev{un} g++{un} g++-4.8{un} geoclue-gitano{un} libalgorithm-diff-perl{un} libalgorithm-diff-xs-perl{un} libalgorithm-fusionar-perl{un} libdee-dlls de qt5-3{a} libglib2.0-dev{un} libgstreamer-plugins-base1.0-dev{un} libgstreamer1.0-dev{un} libgypsy0{un} libhud2{un} libjs-jquery{un} libmail-sendmail-perl{un} libpcre3-dev{un} libpcrecpp0{un} libpoppler-dlls de qt5-1{a} libqdjango-db0{un} libqgsttools-p1{un} libqt5clucene5{un} libqt5contacts5{un} libqt5designer5{un} libqt5designercomponents5{un} libqt5feedback5{un} libqt5help5{un} libqt5location5-plugins{un} libqt5multimedia5{un} libqt5multimedia5-plugins libqt5multimediaquick-p5{un} libqt5multimediawidgets5{un} libqt5organizer5{un} libqt5qml-graphicaleffects{un} libqt5script5 libqt5scripttools5{un} libqt5svg5{un} libqt5svg5-dev libqt5systeminfo5{un} libqt5v8-5-dev libqt5versit5{un} libqt5versitorganizer5{un} libqt5webkit5-dev libqt5webkit5-qmlwebkitplugin{un} libqt5xmlpatterns5{un} libqt5xmlpatterns5-dev libstdc++-4.8-dev{un} libsys-hostname-largo-perl{un} libthumbnailer0{un} libu1db-dlls de qt5-3{una} libunity-acción-qt1{un} libupstart-app-launch1{un} libusermetricsinput1{un} libxml2-dev{un} libxslt1-dev{un} po-debconf{un} python3-apparmor-haga clic en{un} python3-haga clic en{un} qmlscene qt3d5-dev qtdeclarative5-cuentas-plugin qtdeclarative5-córdoba-2.8-plugin{un} 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{un} qtdeclarative5-qtlocation-plugin qtdeclarative5-qtmultimedia-plugin{un} qtdeclarative5-qtorganizer-plugin qtdeclarative5-qtquick2-plugin{un} qtdeclarative5-qtsensors-plugin qtdeclarative5-u1db1.0 qtdeclarative5-ubuntu-interfaz de usuario-extras-browser-plugin{un} qtdeclarative5-ubuntu-interfaz de usuario-extras-browser-plugin-activos{un} qtdeclarative5-ubuntu-interfaz de usuario-kit de herramientas-plugin{un} qtdeclarative5-unidad-acción-plugin{un} qtdeclarative5-usermetrics0.1 qtdeclarative5-ventana-plugin{un} qtdeclarative5-xmllistmodel-plugin qtlocation5-dev{un} qtmultimedia5-dev qtscript5-dev qtsensors5-dev{un} qttools5-dev qttools5-dev-tools sqlite3{un} ubuntu-html5-contenedor de ubuntu-html5-tema{un} ubuntu-html5-tema-ejemplos de ubuntu-sdk-libs ubuntu-interfaz de usuario-kit de herramientas-tema{un} upstart-app-lanzamiento{un} upstart-app-inicio-herramientas de{un} usermetricsservice{un} wdiff{un} zlib1g-dev{a} Los siguientes paquetes serán actualizados: cpp-4.8 gcc-4.8 gcc-4.8-base de 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 se ha actualizado.Necesita obtener 27.1 MB/45.8 MB de archivos. Después de desempaquetar 104 MB será used.Do ¿quieres continuar? [Y / n/?] 

Mi respuesta es similar a la de Rick arriba.

Utilizar apt-get clean, apt-get autoclean, apt-get autoremove, apt-get upgrade, apt-get update, apt-get -u dist-upgrade, sucesivamente. no todo 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

Recibí 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 install para una de las dependencias con errores:

apt-get install libmagickcore-devThe 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 en el á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 lo más profundo 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... DoneBuilding dependency tree       Reading state information... DoneThe following extra packages will be installed:  libcdt4 libgd2-xpm libgraph4 libpathplan4Suggested packages:  libgd-toolsThe following NEW packages will be installed:  libcdt4 libgd2-xpm libgraph4 libgvc5 libpathplan40 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]?

Excelentes respuestas! Pero hoy mi caso parece diferente al tuyo. Este es mi consejo.

Problema:

No pude instalar apache2 en Ubuntu 10.10.

rick@wen-VirtualBox:~$ sudo apt-get install apache2Reading package lists... DoneBuilding dependency tree      Reading state information... DoneSome packages could not be installed. This may mean that you haverequested an impossible situation or if you are using the unstabledistribution that some required packages have not yet been createdor 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 installedE: Broken packages

Solución:

Mi forma es agregar el paquete dependiente a la lista de instalación.

Si' sudo apt-get install apache2 ' falló, intente 'sudo apt-get install apache2 apache2. 2-común'.

¿Ves? apache2.2-común proviene del registro de errores del paso anterior.

Por fin encontré que hay una cadena de dependencia como esta:

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

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

pero para el último paquete, muestra 'libaprutil1-ldap: Depends: libaprutil1 (= 1.3.9+dfsg-3build1) but 1.3.9+dfsg-3ubuntu0.10.10.1 is to be installed'

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

sudo apt-get remove libaprutil1sudo apt-get install apache2

Ahora está bien.

qué es el Error de dependencias no satisfechas

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, compilación e instalación de software desde cero. Ofrecen una serie de ventajas en términos de instalación, eliminación, monitoreo y manejo de interacciones entre piezas de software sobre el modelo estándar de "compilación desde el código fuente". Ubuntu utiliza un sistema de empaquetado centralizado, es decir, cada paquete depende de 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 Internet2.The repository containing the depandancy package is not enabled3.Package catalog is not updated4.The version of the depandancy in the current repository is old5.Software index is broken6.The depandancy is not available for ubuntu

Tratemos de resolverlo

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

    >-Puede agregarlos fácilmente en el Software Center>>>>- Editar-Fuentes de Software-Otras Fuentes-Añadir"

    >- Iniciar el Software Center.

    >-. En el panel ir a Edit y seleccione Software Sources.

    edit-software-sources

    >- Asegúrese de que todos los repositorios estén marcadosenter image description here

  3. Actualizar el catálogo de software

    haga clic en el icono superior derecho y elija actualizar-entrada disponible en el menú
    enter image description here

y presione el botón de verificación

4.tipo ctrl+alt+t para abrir terminal y escribir sudo apt-get install -f

5.Purgue el ppa agregado recientemente con ppa-purge purga de ppa

Este programa desactiva un PPA de sus Fuentes de software y revierte su sistema a los paquetes oficiales de Ubuntu. Puede usar esto para que su sistema vuelva a la normalidad después de probar una nueva versión desde 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 reparar y espere

enter image description here

Otra cosatipo ctrl+alt+t para abrir terminal y escribir sudo apt-get install -f y siga las instrucciones en pantalla

Si aún se produce un error, no dude en solicitarlo askbuntu

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

Además de las respuestas anteriores have 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 está siendo terco....ha!).

EDITADO: usando sudo dpkg -r [package] se recomienda, ya que tiene una función de eliminación bastante potente. Ya apt-get funciona junto con dpkg, lo que significa apt-get obedecerá dpkg funció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 estaba intentando instalar en el sistema, y luego llama al comando build-dep, que apt-get capturará e instalará las dependencias que pertenecen individualmente a este paquete, de modo que satisfagan las necesidades del paquete. Luego, finalmente, llame a la instalación de apt-get:

sudo apt-get install [package]

....'Ugh! Vamos a girar 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 raramente y tuve éxito. 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 tech skip-grant-tables techqiue pero aún falló), finalmente logré 'torcer el brazo de Linux hasta que gritó" Tío!"':

sudo dpkg -r mysql-server mysql-clientsudo 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 firstsudo apt-get install mysql-clientsudo apt-get build-dep mysql-serversudo apt-get install mysql-server

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

Actually “the exact package name”, while not relevant in your question, is extremely relevant to any individual’s issue in this regard. Usually the best 1st step to resolving this is to identify the source of pkg1 & pkg2. This seems to have been overlooked in the answers, most of which are quite good otherwise. Additionally not noted is that in many, if not most cases, " se va a instalar" realmente significa "

Olvida el nombre exacto del paquete. Es irrelevante para esta pregunta. Estoy intentando crear una [pregunta canónica] (Where to post a "canonical answer" when it's not in response to a specific question? - Meta Stack Exchange). Como tal, el paquete exacto no es relevante en este caso específico.

@doug Agrega eso como respuesta y no como comentario, ¡es bastante bueno! :slight_smile:

Ah, y ¿dónde está mi pregunta de solución de problemas? :smiley:

@Braiam Whaaaat tiene un punto, sin embargo, la pregunta no es específica de un PPA y bastantes respuestas tampoco lo son. 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.

En realidad, si ves que todas las respuestas tienen más o menos lo mismo. ¿Podrían fusionarse en una wiki comunitaria?

En mi caso, este tipo de problema fue causado por el hecho de que las actualizaciones estaban deshabilitadas para todas las fuentes en Software y Actualizaciones.

Ver What information do I need to solve an APT dependency issue? - Unix & Linux Stack Exchange

@whaa como puedes ver en el meta discussion, el cambio fue deliberado y nadie planteó problemas con él. A pesar de lo que pueda pensar, el cambio es necesario para evitar un mayor uso indebido de esta pregunta, como señalé en la meta discusión.