我在一台新笔记本电脑上安装了 Ubuntu 18.04.1,这个垃圾操作系统已经出现故障了。
基本问题是我无法安装apt-get install
任何依赖于gcc-7-base
或 的包gcc-8-base
。例如,
libquadmath0 : Depends: gcc-8-base (= 8-20180414-1ubuntu2) but 8.2.0-1ubuntu2~18.04 is installed
libgfortran4 : Depends: gcc-7-base (= 7.3.0-16ubuntu3) but 7.3.0-27ubuntu1~18.04 is installed
据,这些是或 的apt-cache policy
当前版本:gcc-7-base
gcc-8-base
$ apt-cache policy gcc-7-base
gcc-7-base:
Installed: 7.3.0-27ubuntu1~18.04
Candidate: 7.3.0-27ubuntu1~18.04
Version table:
*** 7.3.0-27ubuntu1~18.04 100
100 /var/lib/dpkg/status
7.3.0-16ubuntu3 500
500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
$ apt-cache policy gcc-8-base
gcc-8-base:
Installed: 8.2.0-1ubuntu2~18.04
Candidate: 8.2.0-1ubuntu2~18.04
Version table:
*** 8.2.0-1ubuntu2~18.04 100
100 /var/lib/dpkg/status
8-20180414-1ubuntu2 500
500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
已安装版本的名称与存储库中的版本不同;存储库中的版本的名称与其他软件包似乎期望的名称相同。
$ apt-cache showpkg gcc-7-base
显示两个版本具有完全相同的“文件”来源和 MD5 哈希值:
$ apt-cache showpkg gcc-7-base
Package: gcc-7-base
Versions:
7.3.0-27ubuntu1~18.04 (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic_main_binary-amd64_Packages
MD5: b6e93638a6d08ea7a18929d7cf078e5d
...
7.3.0-16ubuntu3 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic_main_binary-amd64_Packages)
Description Language:
File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic_main_binary-amd64_Packages
MD5: b6e93638a6d08ea7a18929d7cf078e5d
(与 的结果类似gcc-8-base
,如果有人询问,我会发布它)。据我所知,“坏的”(已安装的)软件包与“好的”(预期的)软件包完全相同,并且来自同一来源,但由于某种原因,它们具有不同的名称,并且阻止了诸如libquadmath0
和 之类的东西libgfortran4
的安装。
在网上搜索“7.3.0-27ubuntu1~18.04”会得到以下结果描述页面对于 bionic-updates repo 来说这是唯一相关的匹配,但是我的唯一“更新”repo/etc/apt/sources.list
被注释掉了,而且我从来没有故意启用过它们。
所以我的第一个问题是
1)这些软件包是如何7.3.0-27ubuntu1~18.04
安装8.2.0-1ubuntu2~18.04
在我的计算机上的?有什么方法可以知道吗?
我的第二个问题是
2)我该如何使用 来修复它apt-get
?由于 的输出中每个版本的最高优先级版本apt-cache policy
都是“正确”版本,因此
$ apt-get remove gcc-7-base
$ apt-get install gcc-7-base
分别为包和生成具有7.3.0-16ubuntu3
和安装的正确配置? 8-20180414-1ubuntu2
gcc-7-base
gcc-8-base
顺便说一下,我尝试过更新/升级/自动删除循环,尝试过apt-get install -f
,也尝试过apt-get clean
。但这些都没有任何效果。
答案1
问题 1 的回答:您询问的版本似乎是 18.04 的默认软件包版本(这是我的输出):
jan@jan-XPS-9550:~$ sudo apt-get install libquadmath0 libgfortran4 Reading package lists... Done Building dependency tree
Reading state information... Done libgfortran4 is already the newest version (7.3.0-27ubuntu1~18.04). libquadmath0 is already the newest version (8.2.0-1ubuntu2~18.04).
问题 2 的答案:我认为最好的选择是:
apt-get remove --purge libgfortran4 libquadmath0 gcc-7-base gcc-8-base apt-get autoremove reboot (just in case, most likely not needed at all) install packages again
然后它应该回到默认/不冲突的