Como resolver dependências não atendidas? Não é possível instalar ou remover pacotes

1
$sudo apt-get -f install google-chrome-stable

Eu tentei instalar o java no Ubuntu, mas ele não foi instalado com sucesso, mas depois disso, quando tento instalar / remover qualquer outro pacote, estou recebendo estes erros:

Reading package lists... Done  
Building dependency tree  
Reading state information... Done  
You might want to run 'apt-get -f install' to correct these:  

The following packages have unmet dependencies:

    bleachbit : Depends: menu but it is not going to be installed

    ca-certificates-java : Depends: openjdk-6-jre-headless (>= 6b16-1.6.1-2) or
                                    java6-runtime-headless

    icedtea-6-plugin : Depends: openjdk-6-jre

    icedtea-netx : Depends: openjdk-6-jre (>= 6b23~pre10~) or
                            openjdk-7-jre

**E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).**

Quando eu executo o sudo dpkg --configure -a para obter todas as dependências, eu encontrei:

dpkg: dependency problems prevent configuration of icedtea-netx:    

icedtea-netx depends on openjdk-6-jre (>= 6b23~pre10~) | openjdk-7-jre; however:   
Package openjdk-6-jre is not installed.  
Package openjdk-7-jre is not installed.

dpkg: error processing icedtea-netx (--configure):

dependency problems - leaving unconfigured

dpkg: dependency problems prevent configuration of bleachbit:

bleachbit depends on python-central (>= 0.6.7); however:

  Package python-central is not installed.

  bleachbit depends on menu; however:

  Package menu is not installed.


dpkg: error processing bleachbit (--configure):

 dependency problems - leaving unconfigured

dpkg: dependency problems prevent configuration of ca-certificates-java:

 ca-certificates-java depends on openjdk-6-jre-headless (>= 6b16-1.6.1-2) | java6-runtime-headless; however:

  Package openjdk-6-jre-headless is not installed.

  Package java6-runtime-headless is not installed.

dpkg: error processing ca-certificates-java (--configure):
 dependency problems - leaving unconfigured

dpkg: dependency problems prevent configuration of icedtea-6-plugin:

 icedtea-6-plugin depends on openjdk-6-jre; however:  Package openjdk-6-jre is not installed.   icedtea-6-plugin depends on icedtea-netx (= 1.2-2ubuntu1); however:
 Package icedtea-netx is not configured yet.



dpkg: error processing icedtea-6-plugin (--configure):

 dependency problems - leaving unconfigured

Errors were encountered while processing:

    icedtea-netx

    bleachbit

    ca-certificates-java

    icedtea-6-plugin

Quando eu abro o Ubuntu. centro para instalar / remover qualquer pacote Eu também recebo este erro:

Package dependencies cannot be resolved

The following packages have unmet dependencies:

bleachbit: Depends: python (>= 2.4) but 2.7.3-0ubuntu2 is installed
       Depends: python-gtk2 (>= 2.6) but 2.24.0-3 is installed
       Depends: python-central (>= 0.6.7) but it is not installed
       Depends: menu but it is not installed

 ca-certificates-java: Depends: java6-runtime-headless but it is a virtual package
 icedtea-6-plugin: Depends: openjdk-6-jre but it is not installed
              Depends: icedtea-netx (= 1.2-2ubuntu1) but 1.2-2ubuntu1 is installed
              Depends: libc6 (>= 2.4) but 2.15-0ubuntu10.3 is installed
              Depends: libgcc1 (>= 1:4.1.1) but 1:4.6.3-1ubuntu5 is installed
              Depends: libglib2.0-0 (>= 2.31.8) but 2.32.3-0ubuntu1 is installed
              Depends: libgtk2.0-0 (>= 2.8.0) but 2.24.10-0ubuntu6 is installed
              Depends: libstdc++6 (>= 4.6) but 4.6.3-1ubuntu5 is installed

  icedtea-netx: Depends: icedtea-netx-common (>= 1.2-2ubuntu1) but 1.2-2ubuntu1 is installed
          Depends: openjdk-7-jre but it is not installed
    
por Gaurav Sharma 21.08.2013 / 10:33

2 respostas

10

Tente instalar o manual openjdk-6-jre (sudo apt-get install openjdk-6-jre) - quando não for possível rode "apt-cache policy openjdk-6-jre" para ver se você tem uma fonte para isto. Quando você não tem uma fonte, você sente falta do universo e / ou das fontes de segurança em seu /etc/apt/sources.list. É possível que você também perca um "sudo apt-get update"?

ou tente remover os pacotes com:

sudo dpkg --purge bleachbit ca-certificates-java icedtea-6-plugin icedtea-netx

Em seguida, tente novamente instalar o que você deseja instalar ou instale o oracle java:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
    
por TCr 26.08.2013 / 11:00
4

Acho que você está confundindo apt e dpkg . Você recebe a mensagem

Try 'apt-get -f install' with no packages (or specify a solution)

mas em vez de apt-get -f install você executa sudo dpkg --configure -a "para obter todas as dependências". Isso não é o que dpkg faz.

Na página de manual de dpkg :

   --configure package...|-a|--pending
          Configure a package which has been unpacked but not yet  config‐
          ured.   If  -a  or  --pending  is  given instead of package, all
          unpacked but unconfigured packages are configured.

Esse não é o problema aqui. Aparentemente, dpkg não é capaz de configurar alguns pacotes com sucesso devido a dependências não atendidas - não porque a descompactação de pacotes foi interrompida por algum motivo. Resolver dependências instalando pacotes perdidos é o domínio do apt. Na página do apt-get:

   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. 

Portanto, o comando que vem à mão e que foi anunciado pela mensagem de erro é:

sudo apt-get install -f

Das verdadeiras dependências quebradas que são apresentadas na sua cópia e colagem, considero que esse comando simples deve resolver o problema. Caso contrário, consulte esta pergunta ou poste mensagens de erro exatas do comando acima.

A causa disso pode ser que você não fez um apt-get update de antemão. A lista de pacotes que o apt contém aponta para pacotes individuais no repositório. Quando um ou mais pacotes são atualizados no repositório por qualquer motivo, pacotes mais antigos serão eliminados. Os pacotes dependentes apontam para pacotes que não são mais fornecidos.

Você não precisa executar apt-get update toda vez que fizer uma instalação, mas poderá acabar com uma situação como essa. No entanto, isso é facilmente corrigido por sudo apt-get update && sudo apt-get install -f .

    
por Johannes 26.08.2013 / 10:49