嗨,我最近把操作系统从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智能全面升级,解决方案也是保持目前版本的软件包。输出如下:
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] 有人能给我一些建议吗?谢谢!
发布于 2021-06-05 22:43:43
原来我需要sudo apt-get remove gcc-9-base,然后是sudo apt-get install gcc-9-base。gcc-10垒也需要做同样的事情。
发布于 2022-08-25 21:11:54
PLNewbie的答案有效:apt remove和install 包装名称解决了包“被隐藏”的问题。
到目前为止,没有首先删除apt install [*packagename*]的包装名称也在工作。例如:
sudo apt install nftables
这解决了自升级到22.040以来的少数软件包“被扣留”的问题。它显示更新或覆盖以前版本的相同:
sudo apt list -ia nftables
Listing... Done
nftables/jammy-updates,now 1.0.2-1ubuntu3 amd64
[installed] nftables/jammy 1.0.2-1ubuntu2 amd640通过软件更新提示符,没有明确的dist-upgrade由我。
发布于 2021-06-05 22:52:45
关于更多的解释,当一个包被“保留”时,这意味着它有一个新版本可用,但是安装新版本需要删除一些包或安装其他新的包,而upgrade命令不会自动做到这一点。
您希望使用install命令;例如:
sudo apt-get install build-essential cpp g++ gcc gfortran liblapack-dev liblapack3这还将安装(或删除)满足这些升级所需的任何其他包。在接受它之前仔细阅读它的输出;如果包被保留的原因是因为新版本与您已经安装的另一个包发生冲突,apt可能希望通过删除该包来解决问题,所以重复检查它将要删除的任何内容,以确保这是可以接受的。
https://askubuntu.com/questions/1343953
复制相似问题