![卡住的 GCC 版本阻止我安装软件包](https://linux22.com/image/926080/%E5%8D%A1%E4%BD%8F%E7%9A%84%20GCC%20%E7%89%88%E6%9C%AC%E9%98%BB%E6%AD%A2%E6%88%91%E5%AE%89%E8%A3%85%E8%BD%AF%E4%BB%B6%E5%8C%85.png)
我正在运行一个相当新(未发布升级)的 Kubuntu 20.04 安装。我处于“完全更新”状态,因为 apt update + apt full-upgrade 告诉我我已更新。
我想要安装:
sudo apt install mesa-opencl-icd
但:
The following packages have unmet dependencies:
mesa-opencl-icd : Depends: libclc-r600 (>= 0.2.0+git20180312-1~) but it is not going to be installed
Depends: libclc-amdgcn (>= 0.2.0+git20180312-1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
这最初是由于:
sudo apt install mesa-opencl-icd libclc-r600 libclc-amdgcn libclang-common-9-dev lib32gcc-s1 lib32stdc++6 gcc-10-base lib32gcc1
gcc-10-base is already the newest version (10.1.0-2ubuntu1~18.04).
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:
lib32gcc-s1 : Depends: gcc-10-base (= 10-20200411-0ubuntu1) but 10.1.0-2ubuntu1~18.04 is to be installed
lib32gcc1 : Depends: gcc-10-base (= 10-20200411-0ubuntu1) but 10.1.0-2ubuntu1~18.04 is to be installed
lib32stdc++6 : Depends: gcc-10-base (= 10-20200411-0ubuntu1) but 10.1.0-2ubuntu1~18.04 is to be installed
E: Unable to correct problems, you have held broken packages.
Synaptic 显示有一个较新的版本,而我当前的版本已经过时:
我无法删除它,因为我有依赖于它的软件包,而这些软件包基本上又依赖于我的所有软件包:
sudo apt remove gcc-10-base libgcc-s1 libstdc++6 libc6 zlib1g util-linux openjdk-11-jre-headless libxtst6 libxrender1 libxi6 libxext6 libx11-6 libpcsclite1 libnss3 liblcms2-2 libjpeg8 libfreetype6 libfontconfig1 libcups2 libasound2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package 'openjdk-11-jre-headless' is not installed, so not removed
The following packages were automatically installed and are no longer required:
alsa-topology-conf alsa-ucm-conf amd64-microcode apport-symptoms binutils-common breeze-cursor-theme cgroupfs-mount colord-data
cups-common cups-server-common debconf-kde-data distro-info-data dns-root-data emacsen-common filezilla-common
... ALL THE PACKAGES BASICALLY ...
libsmartcols1 (due to fdisk) findutils grep libpcre3 (due to grep) install-info (due to grep) gzip hostname init
systemd-sysv (due to init) init-system-helpers (due to init) perl-base (due to init-system-helpers) libc-bin login
libaudit1 (due to login) libpam0g (due to login) libpam-runtime (due to login) libpam-modules (due to login) mount
util-linux (due to mount) ncurses-bin sed sysvinit-utils libcap-ng0 (due to util-linux) libudev1 (due to util-linux)
0 upgraded, 0 newly installed, 1738 to remove and 0 not upgraded.
After this operation, 5.705 MB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
这些是我活跃的 apt 存储库:
deb http://de.archive.ubuntu.com/ubuntu/ focal main restricted
deb http://de.archive.ubuntu.com/ubuntu/ focal-updates main restricted
deb http://de.archive.ubuntu.com/ubuntu/ focal universe
deb http://de.archive.ubuntu.com/ubuntu/ focal-updates universe
deb http://de.archive.ubuntu.com/ubuntu/ focal multiverse
deb http://de.archive.ubuntu.com/ubuntu/ focal-updates multiverse
deb http://de.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu focal-security main restricted
deb http://security.ubuntu.com/ubuntu focal-security universe
deb http://security.ubuntu.com/ubuntu focal-security multiverse
deb http://ppa.launchpad.net/serge-rider/dbeaver-ce/ubuntu eoan main
deb http://ppa.launchpad.net/tiagohillebrandt/postman/ubuntu focal main
deb http://ppa.launchpad.net/rolfbensch/sane-git/ubuntu focal main
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
deb http://deb.xanmod.org releases main
deb http://ppa.launchpad.net/rpardini/adoptopenjdk/ubuntu focal main
我尝试强制替换 synaptic 中的版本,但正如预期的那样,这仍然会删除基本上所有的软件包。我还尝试从 deb 文件手动安装当前版本,但这也破坏了一致性。所以我的问题是,如何替换 gcc-10-base 和其他“过时”的软件包,而不必重新安装所有内容,以便我可以继续安装我想要的软件包?
更新 1:我用过
aptitude search ?obsolete
查找并删除两个不相关的、真正过时的软件包。gcc-10-base 不在其中,所以我猜它不是过时的,但它也不是最新版本,而且没有可用的更新。既然整个操作系统都依赖于它,它从何而来?
更新 2:我删除了所有第三方 deb,以确保没有奇怪的冲突。但这没有帮助。
更新 3:无法重新安装,因为它不再在任何存储库上。
root@anvil:/etc/apt# sudo dpkg -l | grep gcc-10-base
ii gcc-10-base:amd64 10.1.0-2ubuntu1~18.04 amd64 GCC, the GNU Compiler Collection (base package)
root@anvil:/etc/apt# sudo apt install --reinstall gcc-10-base
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reinstallation of gcc-10-base is not possible, it cannot be downloaded.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.