Como faço para resolver dependências não atendidas após adicionar um PPA?

Ocasionalmente, quando estou instalando coisas, recebo um erro como o seguinte:

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.

Como posso resolver isso?

APT é um sistema de gerenciamento de pacotes para Debian e outras distribuições Linux baseadas nele, como Ubuntu. Na maior parte, o APT é fácil de usar para instalar, remover e atualizar pacotes. Em casos raros, muitas vezes quando você está misturando dependências de terceiros, há uma chance de que apt-get pode acabar dando a você um erro informando que uma instalação de pacote não pôde ser concluída.

Solucao:

É sempre uma boa ideia fazer backup de arquivos de configuração como /etc/apt/sources.list, então você pode reverter as alterações, se necessário.

  • Se o error mostra algo assim:

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

    Em seguida, certifique-se de que o restricted e universe os repositórios estão habilitados. Bater Alt+F2, tipo software-properties-gtk e bater Enter.

    Em Ubuntu Software guia, habilite todos os repositórios.

  • Uma possível causa de dependências não atendidas pode ser o banco de dados de pacotes corrompido e / ou alguns pacotes não foram instalados corretamente. Para corrigir esse problema, clique em Alt+Ctrl+T para abrir o terminal e tentar executar um dos seguintes comandos:

    sudo apt-fique limpo

    ou,

    sudo apt - get autoclean

    apt-get clean limpa o repositório local de arquivos de pacote recuperados (o.arquivos deb). Ele remove tudo, exceto o arquivo de bloqueio de / var / cache / apt / archives / e / var / cache / apt / archives / partial/. apt-get autoclean limpa o repositório local de arquivos de pacote recuperados, mas ao contrário apt-get clean, ele só remove arquivos de pacote que não podem mais ser baixados e são em grande parte inúteis.

  • Uma das correções mais básicas para resolver problemas de dependências é executar:

    sudo apt-get-f install

    O -f aqui está o "fix broken". Apt tentará corrigir dependências quebradas. Se você instalou manualmente um pacote que tinha dependências não atendidas, apt-get instalará essas dependências, se possível, caso contrário, poderá simplesmente remover o pacote que você instalou para resolver o problema.

    Executar:

    sudo dpkg -- configure-a

    Em seguida, execute isso novamente:

    sudo apt-get-f install

    Se a saída for:

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

    Isso significa que falhou.

  • A próxima solução é executar:

    sudo apt-get-u dist-upgrade

    Se mostrar algum pacote retido, é melhor eliminá-lo. Os pacotes são mantidos por causa de conflitos de dependência que apt não pode resolver. Tente este comando para encontrar e reparar os conflitos:

    sudo apt-get-O Debug:: pkgproblemresolver=Yes dist-upgrade

    Se não puder corrigir os conflitos, ele sairá com:

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

    Exclua os pacotes mantidos um por um, executando dist-upgrade cada vez, até que não haja mais pacotes mantidos. Em seguida, reinstale todos os pacotes necessários. Certifique-se de usar o --dry-run opção, para que você esteja totalmente informado das consequências:

    sudo apt-get remove -- dry-run package-name

    Como remover o pacote que você está tentando instalar pode não ser o ideal, você também pode tentar encontrar um repositório que tenha os pacotes necessários para satisfazer as dependências.

Finalmente, se tudo mais falhar, você pode tentar satisfazer as dependências sozinho, encontrando e instalando os pacotes necessários ,ou instalando-os a partir da fonte e criando"como"pacotes para eles.

Desativar/Remover / Purgar PPAs:

Os PPAs (Personal Package Archive) são repositórios hospedados em Launchpad. Você pode usar PPAs para instalar ou atualizar pacotes que não estão disponíveis nos repositórios oficiais do Ubuntu.

Uma das causas mais comuns de dependências não atendidas são os PPAs, especialmente quando usados para atualizar o pacote existente nos repositórios do Ubuntu. Para resolver o problema, você tem três opções: desativar, purgar (reverter para o pacote original nos repositórios do Ubuntu) ou remover o PPA.

  • Desactivar:

    Desativar um PPA significa não mais atualizações para os pacotes instalados a partir desse PPA. Para desativar um PPA: abrir Software Center > Edit > Software Sources Ou,

    Bater Alt+F2 e correr software-properties-gtk.

    Clique em Other Software tab, você verá que cada PPA tem duas linhas aqui, uma para os pacotes compilados e outra para a fonte, Uncheck ambas as linhas para desativar um PPA. Aqui você também pode adicionar e remover PPAs.

  • Purgar:

    Purgar um PPA significa, rebaixando os pacotes no PPA selecionado para a versão nos repositórios oficiais do Ubuntu e desativando esse PPA. Ppa purga faz exactamente isso. Para instalar o ppa Purge, execute o seguinte comando:

    sudo apt-get install ppa-purge

Mas, considerando a questão apt está quebrado, o comando acima falhará. Então use 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 ppa Purge:

sudo ppa-purga ppa: someppa/PPA

Se o comando 'ppa-purge' falhar por algum motivo, você não poderá executar 'ppa-purge' novamente, a menos que reative o PPA (para habilitar o PPA, siga as mesmas etapas que desativar um PPA e Check as duas linhas de um PPA específico para habilitá-lo).

Notar: PPA Purge não remove PPAs (pode ser no futuro), Então você terá que remover manualmente o PPA.

  • Remover:

    Se o pacote instalado a partir de um PPA não existir em repositórios oficiais do Ubuntu, use PPA Purge não é recomendado, porque não há nada a ser rebaixado e PPA Purge também não o excluiria. Para remover um PPA e pacotes instalados, execute os seguintes comandos: (Ignore o primeiro comando se não quiser remover os pacotes instalados)

    sudo apt-get autoremove -- purge package-namesudo add-apt-repository -- remove PPA: someppa/ppasudo apt-get autoclean

Alternativamente, você pode usar Y PPA Manager para desativar / remover / purgar PPA (detalhes no final da resposta).

prevencao:

Então, como podemos evitar que isso aconteça em primeiro lugar?

  • Mantenha o Ubuntu atualizado. Ubuntu notifica automaticamente quando as atualizações estão disponíveis, Você também pode verificar se há atualizações disponíveis clicando em Session Indicator no painel Unity:

    Ou, Bater Alt+Ctrl+T para abrir o terminal e executar os seguintes comandos:

    sudo apt-get updatesudo apt-get upgrade

    Atualização: sincroniza sua lista de pacotes disponíveis com os servidores nos repositórios de origem.Upgrade: Downloads & amp; instala quaisquer versões mais recentes de seus pacotes instalados.

  • Se você decidir adicionar outros repositórios às fontes.list, certifique-se de que o repositório deve funcionar (e conhecido por funcionar) com o Ubuntu. Repositórios que não foram projetados para funcionar com sua versão do Ubuntu podem introduzir inconsistências em seu sistema e podem forçá-lo a reinstalar. Além disso, certifique-se de que você realmente precisa adicionar repositórios externos, pois o(S) Pacote (s) de software que você está procurando pode já ter sido introduzido nos repositórios oficiais! Fonte
  • Remover PPAs duplicados. Y PPA Manager (guia de instalação no final da resposta) pode facilmente digitalizar e remover PPAs duplicados.

    • Bater Alt+F2 e correr y-ppa-manager para abrir o Y PPA Manager.
    • Uma vez aberto, clique duas vezes ou clique Enter no Advanced.
    • Na janela resultante, selecione Scan and remove duplicate PPAs e clique em OK.

enter image description here

ajudar:

Ao pedir ajuda em Askubuntu ou qualquer outro fórum de ajuda, você deve incluir a saída dos seguintes comandos em sua pergunta:

  • Saída de erro real:

    sudo apt-get install package-nome
  • Isso mostrará suas fontes.lista:

    cat / etc/apt / sources.lista
  • Isso mostrará a lista de PPAs (se houver):

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

Fontes Adicionais:


Y PPA Manager: Y PPA Manager é um balcão único para todas as suas necessidades de PPA.

y ppa manager

Aqui estão algumas de suas características:

  • pesquisar pacotes em todos os PPAs do Launchpad
  • listar e baixar pacotes em um PPA
  • Adicionar / Remover / purgar um PPA
  • backup e restauração de fontes PPA
  • remover fontes PPA duplicadas

Instalar Y PPA Manager, terminal aberto batendo Alt+Ctrl+T e execute os seguintes comandos:

se você está procurando por um aplicativo que não seja compatível com o Windows 10, você pode ter certeza de que este aplicativo é compatível com o Windows 10.

Considerando a questão, apt está quebrado, então use esses comandos

sudo su

e

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 os comandos solicitados a serem executados devem ser executados no terminal, que pode ser aberto por qualquer um Ctrl+Alt+T ou procurando por terminal no traço.

Está realmente quebrado?

Tente executar o seguinte comando e tente reinstalar o software que você estava tentando instalar

sudo apt-get update

Passos Pré-Perfomance

Fazer

Faça backup dos seguintes arquivos:

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

Para fazer isso, use esses comandos

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

e

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

Limpando seu apt-cache

apt mantém um cache de pacotes baixados recentemente para economizar largura de banda quando é necessário instalá-lo. Isso pode ser contraproducente em alguns casos

Agora, para limpá - lo, você tem duas opções

sudo apt-get clean 

Isso removerá todos os pacotes em cache pertencentes à pasta /var/cache/apt/archives/ e /var/cache/apt/archives/partial exceto o.bloquear arquivos. Isso é recomendado

sudo apt-get autoclean

Isso verifica as pastas /var/cache/apt/archives/ e /var/cache/apt/archives/partial e verifica se o pacote ainda está nos repositórios e remove os que não estão


Corrigindo dependências

Usando o modo corrigido-quebrado do apt

sudo apt-get -f install

Isso fará com que o apt procure dependências ausentes e as corrija nos repositórios

Se a saída declarar que nada de novo foi instalado ou atualizado, ele falhou.


Verificar se todas as fontes necessárias estão ativadas

Tipo gksu software-properties-gtk e você vai ter esta janela

Certifique-se de que todas as fontes estejam ativadas.

em seguida, vá para a guia outro software e verifique se os PPAs necessários para o software a ser instalado estão lá e estão habilitados. Além disso, tente desativar alguns PPAs que podem estar tendo pacotes quebrados

executar sudo apt-get update

Tente instalar o software agora

Selecionando um servidor melhor para baixar

Tipo gksu software-properties-gtk e você vai ter esta janela

Clique no Download na caixa suspensa e selecione outro

Clique Em Selecionar Melhor Servidor

Executar sudo apt-get update

Tente instalar o software

além disso, tente usar sudo apt-get install -f


Ppa purga

Esta é uma ferramenta usada para purgar PPA quebrados / indesejados e seus aplicativos junto com ele

Para instalá-lo, execute

sudo apt-get install ppa-purge

Mas, considerando a questão apt está quebrado para que o comando acima falhe. Então use 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

Agora use ppa purge

sudo ppa-purge ppa:someppa/ppa  

Y-PPA Manager

Y-PPA Manager é um aplicativo gui que ajuda você a gerenciar PPA e vários problemas assosiated com ele

Para instalá-lo

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

e

sudo apt-get update

e

sudo apt-get install y-ppa-manager

Considerando a questão, apt está quebrado então, use esses comandos

sudo su

e

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

Agora digite y-ppa-manager

Você será presenteado com esta janela

Clique duas vezes em Avançado e você obterá esta janela

Faça as seguintes tarefas descritas em preto


A prevenção é melhor do que a cura

É melhor prevenir do que procurar por esta pergunta no AskUbuntu: D

Então, aqui estão as Diretrizes para mantê-lo seguro

Mantenha seu sistema atualizado

sempre execute o seguinte comando regularmente

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

ou, você sempre pode usar o Gerenciador de atualizações com este comando

gksu update-manager

Usando apenas PPA confiáveis

Use apenas PPA destinado a ser usado no Ubuntu também, use apenas PPA com fontes confiáveis. De fato, o pacote pode já estar nos repositórios do ubuntu

Fazer backup quando as coisas estão boas e restaurá-lo mais tarde

Para isso, você precisa do Y-PPA-Manager. As etapas para instalá-lo são fornecidas acima.

Execute este comando para abrir y-PPA-Manager

y-ppa-manager

Você será presenteado com esta janela

Clique duas vezes em Avançado e você obterá esta janela

Executar este:

Você será solicitado a salvar um alcatrão.arquivo gz com uma caixa de diálogo semelhante à abaixo. Salve-o em outra partição ou em um local seguro

Mais tarde, quando precisar restaurá-lo novamente, siga etapas semelhantes e,ao chegar à caixa de diálogo Avançado, clique nisso:

Você será solicitado a restaurar a partir do backup anterior que você salvou antes com uma caixa de diálogo semelhante à abaixo


Ainda não está funcionando?

Os erros de dependência de pacote nem sempre são genéricos e dependem do pacote a ser instalado.

Se seguir todas as etapas fornecidas para corrigir o erro não funcionar para você, você sempre poderá perguntar Pergunte Ao Ubuntu

Aqui estão alguns comandos que você precisa para postar a saída de

sudo apt-get install packagename

e

cat /etc/apt/sources.list

e

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

(Atraves Basharat Sial)

Há também outros arquivos / comandos que você precisa a saída de que pode ser erro específico, e os usuários provavelmente irá pedir-lhe nos comentários para postar o arquivo/comando.

Essas respostas até agora estão focadas em como ajudar o sistema a resolver automagicamente esse problema, principalmente na esperança de que ele se resolva, mas não focado em entender como investigar dependências. É importante tentar garantir que suas listas de pacotes estejam atualizadas primeiro; sempre certifique-se de que uma simples atualização ou limpeza do cache não resolva o problema antes de aprofundar. Se tudo nos bastidores está funcionando como deveria, no entanto, é fundamental entender as dependências. Às vezes, as camadas de dependências podem parecer esmagadoras, mas o conceito é simples e fundamental para entender como o software é instalado/desinstalado em um sistema Ubuntu.

Eu recomendo aptitude para qualquer um usando um.sistema baseado em deb, como Debian, Kali, Ubuntu ou qualquer um de seus derivados. Ele fornece uma interface para navegar por camadas de dependências, incluindo pacotes recomendados e sugeridos. É uma ferramenta inestimável para quando o apt-get não oferece uma solução para um conflito e para visualizar dependências em geral. (Sináptico também está disponível no Ubuntu.)

O resolvedor de conflitos do Aptitude irá orientá-lo através das possíveis combinações de pacotes instalados/removidos/atualizados/etc que satisfaçam suas ações solicitadas sem conflito. Isso geralmente pode ser bem-sucedido mesmo quando o apt não consegue encontrar uma solução. Como usuário do Ubuntu, normalmente não surgem situações que exigem que você investigue por que um determinado pacote está sendo instalado ou causando um conflito, mas é quase inevitável à medida que você usa mais o sistema.

>package1: depende: package2 (=1.8) mas 1.7.5-1ubuntu1 deve ser instalado

Explicação da mensagem:

  1. Para que sua instalação seja concluída, o package1 precisa do package2.
  2. >package2 tem que estar disponível na versão = 1.8
  3. O Gestor de pacotes verificou todos os repositórios e só encontrou a versão 1.7.5 - 1ubuntu1 que poderia ser instalada, o que não fará porque é < 1.8

Corrigir

Não há uma única resposta certa para esta pergunta e não há uma resposta simples.

Existem muitos cenários pelos quais isso pode acontecer e é preciso investigar todas as opções e tentar resolver as condições prévias que levam a esse erro.

Cenário A:

>>Todos os repositórios aos quais você tem acesso não têm package2 na versão = 1.8, então você terá que encontrar um repositório que o faça. Se você não conseguir encontrar um repositório com versões =1.8, talvez seja necessário criar e instalar o package2 a partir do código-fonte. E então tente instalar o package1.

Se você quiser saber como criar um pacote a partir da fonte, verifique outras perguntas/respostas ou poste uma nova.

Cenário B:

>Os repositórios incluem package2 em uma versão = 1.8, mas o Gerenciador de pacotes ainda deseja instalar uma versão mais antiga (1.7.5).

A razão para isso pode ser que as versões posteriores do package2 foram construídas por alguma tecnologia mais recente que não é suportada por outros pacotes que você já instalou.

>Isso pode não ser possível corrigir. Você pode tentar usar apt ou synaptic e procurar todas as versões do package2 que estão disponíveis nos repositórios e tentar instalar uma versão específica = 1.8

>Se você tiver outros pacotes incompatíveis e fizer isso, receberá uma lista de mensagens de erro semelhantes para todos os outros pacotes que impedem a instalação do package2=1.8.

>>>Nesse caso, você tem um problema maior. Você queria instalar o package1, que precisa que o package2 seja = 1.8, mas o package2 na versão =1.8 requer que o package3 esteja na versão = 6.7 e você tenha o package3 versão 6.3

O fato é que o Gerenciador de pacotes (APT) tenta resolver todas essas dependências automaticamente se for possível. Quando diz que não é possível (e emite uma mensagem como na pergunta), então você deve confiar nela.

Se você decidir não confiar no Gerenciador de pacotes e se tiver certeza de que não terá problemas, tente forçar a instalação das versões específicas necessárias de todos os pacotes, uma a uma, e espero estar bem.

Cuidado, fazer isso para pacotes do sistema pode criar sérios problemas. Você pode bloquear - se fora do sistema, bloquear serviços críticos etc.

Cenário C:

Não importa as razões para o problema, você sempre pode configurar para compilação manual e construir o pacote necessário e todas as suas dependências nas versões exatas necessárias do source. Com esta opção, você pode manter o que você construiu em um diretório separado e fora do Caminho do sistema para que ele não crie conflitos com o sistema. Esta é provavelmente a solução mais limpa e, às vezes, pode ser mais rápida de fazer.

Cenário D:

O Gerenciador de pacotes tem acesso a informações desatualizadas sobre pacotes e, portanto, não consegue encontrar uma solução. Olhe nas outras respostas.

Cenário E:

O Gerenciador de pacotes tem um bug no código de resolução de dependência.

Você tem que investigar que este é realmente o caso e, em seguida, emitir uma solicitação de bug.

...

Cenário Z:

Pode haver outros cenários.

Por exemplo, os mantenedores de pacotes poderiam estar errados e não verificaram se o package1 funcionaria mesmo com a versão do package2 & lt; 1.8 e na especificação eles definiram dependências erradas.

Esses métodos precisam ser seguidos sempre que você errar em relação a dependências não atendidas

Depois de seguir as instruções, tente instalar o software. Pelo menos um desses métodos dever trabalhar para você

1. Antes de tentar qualquer novo comando ou adicionar qualquer novo ppa, tente isso

Limpeza do cache do apt:

sudo apt-get clean

Limpeza de quaisquer dependências não utilizadas:

sudo apt-get autoremove

Atualização do apt-cache

sudo apt-get update

Isso removerá todo o cache e baixará um cache novo. Isso deve ser feito para obter novos pacotes de cache e atualizações mais recentes.

2. Tentar sudo apt-get install -f.

Provavelmente dará algumas sugestões sobre como remover e instalar pacotes, Faça o que parecer razoável.

3. Alterar o Download Server de Software Sources Porque às vezes os arquivos em um servidor estão corrompidos.

enter image description here
enter image description here

4. Isso também acontece se você antes adicionou um PPA externo para a dependência quebrada.Tente remover esse ppa por

  • qualquer digitação sudo add-apt-repository --remove ppa:someppa/ppa e, em seguida, remover manualmente os arquivos/bibliotecas instalados pelo ppa

ou

  • purgando um ppa (isso remove os arquivos instalados também)

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

5. Se no 4 não for o seu caso, pelo menos tente remover o pacote que está sendo mostrado como uma dependência quebrada.Em seguida, tente novamente instalar.Isso é relatado para ter workeed para algumas pessoas.

6. Sempre adicione a versão estável de um repositório / PPA.

7 Certifique - se também de ter todos os repositórios oficiais habilitados (em Software Sources)

enter image description here

Por favor, não habilite o Proposed Updates como eles são destinados a testes / Desenvolvedores.

enter image description here


Como disse doug:

Normalmente, o melhor primeiro passo para resolver isso é identificar a fonte de <pkg1> &lificador; <pkg2>.

>>Além disso, não é notado que em muitos, se não na maioria dos casos, "& lt; tudo o que deve ser instalado "realmente significa" & lt; tudo o que está instalado " e deve ser tentado a ser removido se nada mais funcionar (como no ponto 5).


Vou continuar adicionando mais coisas que vou encontrar para consertar unmet dependencies.

Para a maioria dos casos,instalar o pacote através de aptitude vai resolver não atendido dependencies.By padrão aptitude o pacote não foi instalado no seu pc.So Primeiro instale-o executando,

sudo apt-get updatesudo apt-get install aptitude

entao,

sudo aptitude install packagename

Por Exemplo,

    avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install ubuntu-sdkreading package lists... Árvore de dependência DoneBuilding Lendo informações do estado... Não foi possível instalar pacotes DoneSome. Isso pode significar que você tiverequestou uma situação impossível ou se você estiver usando o unstabledistribution que alguns pacotes necessários ainda não foram criadosou foi movido para fora da entrada.As informações a seguir podem ajudar a resolver a situação: os seguintes pacotes têm dependências não atendidas: ubuntu-sdk: Depends: qtcreator-plugin-ubuntu, mas não será installedE: incapaz de corrigir problemas, você realizou pacotes quebrados.

Instalando o pacote através aptitude

avinash@avinash-Lenovo IdeaPad-Z500:~$ sudo apt-get install ubuntu-sdkThe seguintes pacotes NOVOS serão instalados: apparmor-easyprof{a} o apparmor-easyprof-ubuntu{a} em{a} o build-essential{a} em{a} clique apparmor{a} clique-dev{a} clique-doc{a} cordova-ubuntu-2.8 cordova-ubuntu-2.8-exemplos{a} o debhelper{a} devscripts{a} dh-apparmor{a} dh-make{a} distro-info-dados{a} o comando dpkg-dev{a} dput{a} g++{a} g++-4.8{a} install-cigano{a} libalgorithm-diff-perl{a} libalgorithm-diff-xs-perl{a} libalgorithm-mala direta-perl{a} libboost-filesystem1.53.0{a} libboost-program-opções1.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-fibroso-perl{a} libjs-jquery - {a} libjs-sphinxdoc{a} libjs-sublinhado{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-longa-perl{a} libthumbnailer0{a} libu1db-qt5-3{a} libunity-ação-qt1{a} libupstart-app-launch1{a} libusermetricsinput1{a} libxml2-dev{a} libxslt1-dev{a} po-debconf{a} python3-apparmor-clique em{a} python3-clique em{a} python3-magia{a} qmlscene qt3d5-dev qtbase5-doc{a} qtcreator{a} qtcreator-doc{a} qtcreator-plugin-ubuntu{a} qtcreator-plug-in-ubuntu-comum{a} qtdeclarative5-contas-plugin qtdeclarative5-córdoba-2.8-plugin{a} qtdeclarative5-dev-tools qtdeclarative5-doc-html{a} qtdeclarative5-doc-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-ativos{a} qtdeclarative5-ubuntu-interface do usuário-kit de ferramentas-plugin{a} qtdeclarative5-unidade-ação-plugin{a} qtdeclarative5-usermetrics0.1 qtdeclarative5-janela-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-recipiente ubuntu-html5-sdk{ab} ubuntu-html5-tema{a} ubuntu-html5-tema-exemplos ubuntu-ubuntu sdk-sdk-libs ubuntu-sdk-libs-dev{a} ubuntu-interface do usuário-kit de ferramentas-doc{a} ubuntu-interface do usuário-kit de ferramentas-exemplos{a} ubuntu-interface do usuário-kit de ferramentas-tema{a} a unidade de ação-doc{a} o upstart-app-lançamento{a} o upstart-app-lançamento-ferramentas de{a} usermetricsservice{a} wdiff{a} zlib1g-dev{a} os pacotes A seguir serão atualizados: cpp-4.8 gcc gcc 4.8-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 libstdc++6 libtsan0 15 pacotes atualizados, 151 novos instalados, 0 a remover e 293 não atualizados.Precisa obter 108 MB/126 MB de arquivos. Depois de desembalar 273 MB serão usados.Os seguintes pacotes têm dependências não atendidas: ubuntu-html5-sdk: Depends: qtdeclarative5-ubuntu-webapps-api que é um pacote virtual.                    Depende: ubuntu-html5-ui-toolkit mas não vai ser instalado.As seguintes ações resolverão essas dependências: mantenha os seguintes pacotes em sua versão atual: 1) QtCreator-plugin-ubuntu [não instalado] 2) ubuntu-html5-sdk [não instalado] 3) ubuntu-sdk [não instalado] deixe as seguintes dependências não resolvidas: 4) libhud-client2 recomenda hud (= 13.10.1+13.10.20131014-0ubuntu1)5) qtcreator-plugin-ubuntu-common recomenda qtcreator-plugin-ubuntuaccept esta solução? [Y / n / q/?] yThe seguintes pacotes NOVOS serão instalados: apparmor-easyprof{a} o apparmor-easyprof-ubuntu{a} o build-essential{a} em{a} clique apparmor{a} cordova-ubuntu-2.8 debhelper{a} dh-apparmor{a} dh-make{a} o comando dpkg-dev{a} g++{a} g++-4.8{a} install-cigano{a} libalgorithm-diff-perl{a} libalgorithm-diff-xs-perl{a} libalgorithm-mala direta-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-longa-perl{a} libthumbnailer0{a} libu1db-qt5-3{a} libunity-ação-qt1{a} libupstart-app-launch1{a} libusermetricsinput1{a} libxml2-dev{a} libxslt1-dev{a} po-debconf{a} python3-apparmor-clique em{a} python3-clique em{a} qmlscene qt3d5-dev qtdeclarative5-contas-plugin qtdeclarative5-córdoba-2.8-plugin{a} qtdeclarative5-dev-tools qtdeclarative5-doc-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-ativos{a} qtdeclarative5-ubuntu-interface do usuário-kit de ferramentas-plugin{a} qtdeclarative5-unidade-ação-plugin{a} qtdeclarative5-usermetrics0.1 qtdeclarative5-janela-plugin{a} qtdeclarative5-xmllistmodel-plugin qtlocation5-dev{a} qtmultimedia5-dev qtscript5-dev qtsensors5-dev{a} qttools5-dev qttools5-dev-tools sqlite3{a} ubuntu-html5-recipiente ubuntu-html5-tema{a} ubuntu-html5-tema-exemplos ubuntu-sdk-libs ubuntu-interface do usuário-kit de ferramentas-tema{a} o upstart-app-lançamento{a} o upstart-app-lançamento-ferramentas de{a} usermetricsservice{a} wdiff{a} zlib1g-dev{a} os pacotes A seguir serão atualizados: cpp-4.8 gcc gcc 4.8-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 libstdc++6 libtsan0 15 pacotes atualizados, 108 novos instalados, 0 a remover e 293 não atualizados.Precisa obter 27.1 MB/45.8 MB de arquivos. Depois de desembalar 104 MB será used.Do queres continuar? [Y / n/?] 

Minha resposta é semelhante à de rick acima.

Mear apt-get clean, apt-get autoclean, apt-get autoremove, apt-get upgrade, apt-get update, apt-get -u dist-upgrade, etc. tudo não funcionou para mim.

Finalmente resolvi esse problema descendo para a árvore de dependência por meio de apt-get install, ilustrado com um exemplo abaixo. No meu caso, eu queria instalar libmagickwand-dev:

apt-get install libmagickwand-dev

Eu tenho esse erro:

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

Então, eu corri apt-get install para uma das dependências com falha:

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

Desci mais abaixo na árvore:

apt-get install libgraphviz-dev

com outro erro:

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

Mais uma vez mais fundo na árvore:

apt-get install libgvc5

Por algum motivo estranho, isso foi bem-sucedido e consegui instalar o pacote original com o qual queria 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 respostas! Mas hoje meu caso parece diferente do seu. Aqui está o meu conselho.

Problema:

Não consegui instalar o apache2 no 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

Solucao:

Minha maneira é adicionar o pacote dependente na lista de instalação.

Se 'sudo apt-get install apache2' falhar, tente 'sudo apt-get install apache2 apache2. 2-comum'.

Vês? apache2. 2-comum vem do log de erros da etapa anterior.

Finalmente descobri que há uma cadeia de dependências como esta:

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

Para os primeiros 3 pacotes, apt-get log me disse 'não vai ser instalado',

mas para o último pacote, ele mostra 'libaprutil1-ldap: Depends: libaprutil1 (=1.3.9+dfsg-3build1), mas 1.3.9 + dfsg-3ubuntu0.10.10.1 deve ser instalado'

Eu tenho uma versão diferente existente no meu lib, então:

sudo apt-get remove libaprutil1sudo apt-get install apache2

Agora está tudo bem.

o que é um erro de dependências não atendidas

Em pacotes Ubuntu são a principal maneira que o software é construído, implantado e instalado. Muito simplesmente, os pacotes são uma alternativa para baixar, construir e instalar software do zero. Eles oferecem uma série de vantagens em termos de instalação, remoção, monitoramento e manipulação de interações entre peças de software sobre o modelo padrão "build from source". Ubuntu usa sistema de embalagem centralizado, ou seja, cada pacote é depende de alguns outros pacotes .Quando instalamos um pacote, suas dependências serão instaladas, o erro de dependências não atendidas ocorre quando as dependências do pacote não estão disponíveis para instalação

Causa

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

Vamos tentar resolvê - lo

  1. Conecte - se à internet: D
  2. Certifique-se de que todos os repositórios padrão estejam habilitados

    >- Você pode adicioná-los facilmente no Software Center>>>>- Editar-Fontes De Software-Outras Fontes-Adicionar"

    >- Iniciar o Software Center.

    >-. No painel vá para Edit e selecione Software Sources.

    edit-software-sources

    >- Verifique se todos os repositórios estão verificadosenter image description here

  3. Atualizar o catálogo de software

    clique no ícone superior direito e escolha Atualizar-entrada disponível no menu
    enter image description here

e pressione o botão de verificação

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

5.Purgar o ppa adicionado recentemente usando ppa-purge ppa-purga

Este programa desativa um PPA de suas fontes de Software e reverte seu sistema de volta para os pacotes oficiais do Ubuntu. Você pode usar isso para retornar seu sistema ao normal após testar uma nova versão de um PPA.

Sintaxe

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

Exemplo

sudo ppa-purge ppa:ubuntu-mozilla-daily/ppa
  1. abra o centro de software e tente instalar qualquer software, se a seguinte caixa de diálogo aparecer, pressione o botão reparar e aguarde

enter image description here

Maistipo ctrl+alt+t para abrir o terminal e o tipo sudo apt-get install -f e siga as instruções na tela

Se ainda ocorrer um erro, sinta-se à vontade para perguntar askbuntu

...não se esqueça de ' build-dep`

Além dessas respostas acima - eu tenho que admitir que estou surpreso que ninguém tenha mencionado essa abordagem que, é o que eu sempre usei como uma "bala de prata" a qualquer momento eu encontrei conflitos apt-get ou pacotes não resolvidos (ou mesmo se o sistema está sendo teimoso....ha!).

Editado: usando sudo dpkg -r [package] é encorajado, pois tem uma função de remoção bastante poderosa. Desde apt-get trabalha ao lado de dpkg, o que significa apt-get obedecerá dpkg funcao.

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

Você chama apt-get para limpar o pacote com falha que estava tentando instalar no sistema e, em seguida, chama o comando build-dep, que o apt-get irá capturar e instalar dependências pertencentes individualmente a este pacote, de modo que elas satisfaçam o pacote anterior. Então, finalmente, chame o apt-get install:

sudo apt-get install [package]

...."Ugh! Vamos torcer o braço até gritar " tio!"'

Isso raramente aconteceu durante meus longos anos de Uso do linux, mas me vi usando essa abordagem de forma independente e consegui. Este é um exemplo da luta recente que tive no início de um mês atrás com pacotes mysql-client/mysql-server. Depois de uma dúzia de tentativas fracassadas de redefinir minha senha raiz com mysql-server (mesmo via -- skip-grant-tables techqiue, mas ainda falhou), finalmente consegui 'torcer o braço do Linux até que ele gritasse" tio!"':

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 é a chave nesta solução

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, " é para ser instalado " realmente significa "

Esqueça o nome exato do pacote. É irrelevante para esta questão. Estou tentando criar uma pergunta canônica. como tal, o pacote exato não é relevante nesta instância específica.

@ doug adicione isso como uma resposta e não um comentário, é muito bom! :slight_smile:

E onde está a minha pergunta de resolução de problemas? :smiley:

@ Braiam Whaaaat tem um ponto, porém, a pergunta não é específica para um PPA e algumas respostas também não são. Eu sei que as duas principais respostas sobrecarregam um pouco os outros, mas não tenho certeza se mudar a natureza da pergunta é a solução certa, especialmente porque você anula as outras respostas. Estou deixando isso por enquanto, já que Não tenho uma resposta melhor, mas é algo em que pensar.

Na verdade, se você vê cada resposta tem mais ou menos a mesma coisa. Eles poderiam ser mesclados em uma wiki da comunidade?

No meu caso, esse tipo de problema foi causado pelo fato de que as atualizações foram desativadas para todas as fontes em Software e atualizações.

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

@whaa como você pode ver no meta discussion, a mudança foi deliberada e ninguém levantou questões com ela. Apesar do que você possa pensar, a mudança é necessária para evitar mais uso indevido dessa questão, como apontei na meta discussão.