Привет, я недавно обновил ОС с Ubuntu18.04 в Ubuntu20.04. Теперь я заметил, что когда я выполняю sudo apt-get upgrade
, у меня остаются пакеты:
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.
Я пробовал методы, упомянутые здесь . Чтобы решить эту проблему, я попробовал
sudo apt-get dist-upgrade
, но результат такой же, как и раньше.
Я также попробовал sudo aptitude full-upgrade , и решение также состоит в том, чтобы сохранить пакеты в их текущей версии. Результат следующий:
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]
Кто-нибудь может дать мне несколько предложений? Спасибо!
Для более подробного объяснения, когда пакет «хранится», это означает, что доступна его новая версия, но установка этой новой версии потребует удаления некоторых пакетов или установки других новых, а команда upgrade
не будет делать это автоматически.
Вместо этого вы хотите использовать команду install
; например:
sudo apt-get install build-essential cpp g++ gcc gfortran liblapack-dev liblapack3
Это также установит (или удалит) любые другие пакеты, необходимые для удовлетворения этих обновлений. Внимательно прочитайте выходные данные, прежде чем принять их; Если причина, по которой пакет сохраняется, заключается в том, что новая версия конфликтует с другим установленным пакетом, APT может захотеть решить проблему, удалив этот пакет, поэтому удваиваетсяПроверьте все, что он говорит, что собирается удалить, чтобы убедиться, что это приемлемо.
Оказывается, мне нужно sudo apt-get remove gcc-9-base
, а затем sudo apt-get install gcc-9-base
. То же самое нужно сделать и для gcc-10-base.