Não é possível instalar o build-essential / gcc / g ++ após a atualização para o 17.04

7

Desde a atualização do Ubuntu 16.04 para o 17.04, não consigo mais instalar gcc-7 ou g++-7 do link repositório. Na verdade, não consigo instalar build-essential .

Em Software e amp; Atualizações > Outro Software , o repositório é listado assim:

http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu zesty main

Tentando instalar build-essential :

$ sudo apt install build-essential
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 build-essential : Depends: gcc (>= 4:5.2) but it is not going to be installed
                   Depends: g++ (>= 4:5.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

No entanto:

$ gcc --version
gcc (Ubuntu 5.4.1-8ubuntu1) 5.4.1 20170304
...
$ g++ --version
g++ (Ubuntu 5.4.1-8ubuntu1) 5.4.1 20170304
...

Então, como posso instalar o build-essential novamente?

    
por kleinfreund 18.07.2017 / 10:24

1 resposta

3

Então, consegui instalar o build-essential novamente seguindo estas etapas:

$ sudo apt install build-essential
...
The following packages have unmet dependencies:
 build-essential : Depends: gcc (>= 4:5.2) but it is not going to be installed
                   Depends: g++ (>= 4:5.2) but it is not going to be installed

É necessária uma gcc versão maior de 5.2, portanto, vamos tentar instalar gcc .

$ sudo apt install gcc
...
The following packages have unmet dependencies:
gcc : Depends: cpp (>= 4:6.3.0-2ubuntu1) but it is not going to be installed
      Depends: gcc-6 (>= 6.3.0-9~) but it is not going to be installed

Ok. Algo mais está faltando. Vamos tentar instalar isso.

$ sudo apt install cpp
...
The following packages have unmet dependencies:
 cpp : Depends: cpp-6 (>= 6.3.0-9~) but it is not going to be installed

Ainda nada. Tentando novamente.

$ sudo apt install cpp-6
...
The following packages have unmet dependencies:
 cpp-6 : Depends: gcc-6-base (= 6.3.0-12ubuntu2) but 6.3.0-18ubuntu2~16.04 is to be installed

Mais uma vez.

$ sudo apt install gcc-6-base
...
gcc-6-base is already the newest version (6.3.0-18ubuntu2~16.04).

Então, aqui não sei exatamente o que deu errado. Deve-se observar que há uma string 16.04 no final desse número de versão. Isso parecia estranho. Eu removi esse pacote.

$ sudo apt remove gcc-6-base

Agora consegui instalar build-essential novamente. Isso também irá reinstalar gcc-6-base .

$ sudo apt install build-essential

Problema restante:

$ sudo apt upgrade
...
The following packages have been kept back:
  cpp g++ gcc

A raiz do problema é semelhante à acima, gcc-7-base está com defeito, mas não posso simplesmente removê-lo, pois recebo isso:

The following packages have unmet dependencies:
 libgcc1 : Depends: gcc-7-base (= 7.1.0-5ubuntu2~16.04) but it is not going to be installed
 va-driver-all : Depends: mesa-va-drivers but it is not going to be installed or
                          vdpau-va-driver but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Zona de perigo :

Consegui resolver este problema com os seguintes passos:

$ sudo apt install aptitude
$ sudo dpkg --force-all -P gcc-7-base
$ sudo dpkg --force-all -P gcc-7-base:i386
$ sudo aptitude install gcc-7-base

Isso é super perigoso e pode quebrar sua instalação. A execução de dpkg --force-all -P removerá um pacote com força, ignorando quaisquer dependências deste pacote. Depois disso, um apt upgrade normal pode remover quase todos os softwares relevantes da sua instalação.

Eu só consegui me recuperar de lá usando usind aptitude , que resolveu todos os problemas de dependência que eu tinha.

    
por kleinfreund 18.07.2017 / 19:26