resolve kept back packages on Ubuntu20.04
Hi I recently upgraded the OS from Ubuntu18.04 to Ubuntu20.04. Now I notice that when I do sudo apt-get upgrade
, I have packages kept back:
The following packages have been kept back:
build-essential cpp g++ gcc gfortran liblapack-dev liblapack3
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
I tried the methods mentioned here. To resolve this I tried
sudo apt-get dist-upgrade
but the output is the same as before.
I also tried sudo aptitude full-upgrade and the solution is also to keep the packages at their current version. The output is the following:
The following NEW packages will be installed:
cpp-9{ab} g++-9{ab} gcc-9{ab} gfortran-9{ab} libasan5{ab} libgcc-9-dev{ab} libgfortran-9-dev{ab} libgfortran5{ab} libstdc++-9-dev{ab}
libubsan1{ab}
The following packages will be upgraded:
build-essential cpp g++ gcc gfortran liblapack-dev liblapack3
7 packages upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 44.5 MB of archives. After unpacking 170 MB will be used.
The following packages have unmet dependencies:
cpp-9 : Depends: gcc-9-base (= 9.3.0-17ubuntu1~20.04) but 9.4.0-1ubuntu1~18.04 is installed
libgfortran-9-dev : Depends: gcc-9-base (= 9.3.0-17ubuntu1~20.04) but 9.4.0-1ubuntu1~18.04 is installed
libasan5 : Depends: gcc-9-base (= 9.3.0-17ubuntu1~20.04) but 9.4.0-1ubuntu1~18.04 is installed
libstdc++-9-dev : Depends: gcc-9-base (= 9.3.0-17ubuntu1~20.04) but 9.4.0-1ubuntu1~18.04 is installed
libubsan1 : Depends: gcc-10-base (= 10.2.0-5ubuntu1~20.04) but 10.3.0-1ubuntu1~18.04~1 is installed
g++-9 : Depends: gcc-9-base (= 9.3.0-17ubuntu1~20.04) but 9.4.0-1ubuntu1~18.04 is installed
libgfortran5 : Depends: gcc-10-base (= 10.2.0-5ubuntu1~20.04) but 10.3.0-1ubuntu1~18.04~1 is installed
gcc-9 : Depends: gcc-9-base (= 9.3.0-17ubuntu1~20.04) but 9.4.0-1ubuntu1~18.04 is installed
gfortran-9 : Depends: gcc-9-base (= 9.3.0-17ubuntu1~20.04) but 9.4.0-1ubuntu1~18.04 is installed
libgcc-9-dev : Depends: gcc-9-base (= 9.3.0-17ubuntu1~20.04) but 9.4.0-1ubuntu1~18.04 is installed
The following actions will resolve these dependencies:
Keep the following packages at their current version:
1) build-essential [12.4ubuntu1 (now)]
2) cpp [4:7.4.0-1ubuntu2.3 (now)]
3) cpp-9 [Not Installed]
4) g++ [4:7.4.0-1ubuntu2.3 (now)]
5) g++-9 [Not Installed]
6) gcc [4:7.4.0-1ubuntu2.3 (now)]
7) gcc-9 [Not Installed]
8) gfortran [4:7.4.0-1ubuntu2.3 (now)]
9) gfortran-9 [Not Installed]
10) libasan5 [Not Installed]
11) libgcc-9-dev [Not Installed]
12) libgfortran-9-dev [Not Installed]
13) libgfortran5 [Not Installed]
14) liblapack-dev [3.7.1-4ubuntu1 (now)]
15) liblapack3 [3.7.1-4ubuntu1 (now)]
16) libstdc++-9-dev [Not Installed]
17) libubsan1 [Not Installed]
Can someone give me some suggestions? Thanks!
Solution 1:
It turns out I need to sudo apt-get remove gcc-9-base
and then sudo apt-get install gcc-9-base
. Same thing needs to done for gcc-10-base as well.
Solution 2:
I also had a similar error, with the gcc-9-base package. What worked for me was:
-
Check for available versions. Like this:
$ apt-cache madison gcc-9-base
The result may look something like this:
gcc-9-base | 9.3.0-17ubuntu1~20.04 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
gcc-9-base | 9.3.0-17ubuntu1~20.04 | http://archive.ubuntu.com/ubuntu focal-security/main amd64 Packages
gcc-9-base | 9.3.0-10ubuntu2 | http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
-
Choose the needed version, in this case 9.3.0-17ubuntu1~20.04, and install like this:
$ sudo apt-get install gcc-9-base=9.3.0-17ubuntu1~20.04
apt-get should manage to fix your broken packages now.
P.S.: I know this question is a bit old now, but here's the solution for anyone that has had a similar problem.