我正在运行 Ubuntu 22.04,我正在尝试将 gcc-12 及其所有相关依赖项(当前版本 12.1.0-7)更新到 jammy-security 中可用的最新版本(12.1.0-2ubuntu1~22.04),但我的系统坚持要求gcc-12 已经是最新版本了。
据我了解,根据 apt_preferences 的手册页,它指出,
在典型情况下,已安装的软件包版本(优先级 100)不如sources.list(5) 文件中列出的源中可用的版本之一(优先级 500 或 990)新。然后,当执行 apt-get install some-package 或 apt-get upload 时,软件包将被升级。
然而,尽管 jammy-security 具有比当前版本更高的 pin 优先级,但安装的 gcc-12 拒绝升级。
我知道我可以通过指定版本和目标存储库来强制更新
sudo apt-get install gcc-12=12.1.0-2ubuntu1~22.04 -t jammy-security
但随后我必须对所有 gcc-12 的依赖项以及相应依赖项的依赖项执行此操作。有人知道无需单独升级每个软件包的修复方法吗?
这是我的几个终端输出:
须藤 apt-get 安装
sudo apt-get install gcc-12
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
gcc-12 is already the newest version (12.1.0-7).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
apt-cache 策略 gcc-12
gcc-12:
Installed: 12.1.0-7
Candidate: 12.1.0-7
Version table:
*** 12.1.0-7 100
100 /var/lib/dpkg/status
12.1.0-2ubuntu1~22.04 500
500 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages
500 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages
12-20220319-1ubuntu1 500
500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
/etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu jammy main universe restricted
deb http://security.ubuntu.com/ubuntu/ jammy-security main universe restricted
deb http://archive.ubuntu.com/ubuntu jammy-updates main universe restricted
答案1
据可以确定,您的gcc-12
软件包确实比 提供的版本更新:12.1.0-7 是比 12.1.0-2ubuntu1~22.04 更高的版本。jammy-security
apt
要降级您的软件包,您需要将它们固定为大于 1000 的优先级。请参阅Debian 批量将软件包降级到当前可下载的版本一种可能的方法。