如何处理 Ubuntu 软件包循环破坏的依赖链(这里:“security [amd]”与“security [all]”)

如何处理 Ubuntu 软件包循环破坏的依赖链(这里:“security [amd]”与“security [all]”)

我尝试在全新安装的 ubuntu-20.04(昨天下载并安装)上安装一个非常常见的软件包 - “gnome-tweaks”。这遇到了无法解析的不可能依赖链,我正在尝试了解诊断/解决它的正确方法是什么。它看起来像一个如此常见/著名的软件包,几乎不可能是一个错误 - 相反,我的安装(不到 24 小时)一定出了问题。

  1. gnome-tweaks 仅存在于 3.34.0-2ubuntu
  2. ...需要 gnome-shell-extension-prefs
  3. ......仅存在版本 3.36-4-1ubuntu1~20.04.2
  4. ........需要 gnome-shell = 3.36.4-1ubuntu1~20.04.2
  5. 但新安装的操作系统有 gnome-shell = 3.36.9-0ubuntu0.20.04.2

我认为你应该如何处理这些问题

  1. 检查所有内容是否为当前最新版本(根据@changanAuto 的评论):这可能不是必需的,但大多数人大多数时候都想要这个,并且(在全新安装操作系统的情况下)它可能就是你想要的
  2. 检查 apt 源:如果我们只有标准源,上述情况应该是不可能的:不应该存在这样的设置:你的源中安装的核心包的版本应该比最新版本要新
  3. 如果所有来源都是无趣且标准的,则检查链中每个包的来源:如果其中一个来源很奇怪或损坏,则可能会缺少一些应该在其中的包,从而导致系统尝试满足来自不同来源的依赖关系(只有较旧或较新的版本)
  4. 如果仍然不起作用,请检查软件包本身是否已被作者/维护者删除,从而从最新来源中消失
  5. ...如果以上所有方法均不起作用:您正在访问损坏/损坏的源,并且发现了需要报告的错误。

如果上面我说的正确的话,那么看起来:

  • 我的所有来源都是平淡无奇的,我只使用“focal”(ubuntu-20.04),我看不到里面有什么奇怪的东西。我没有手动添加任何东西。
  • gnome-shell-common 来自:foal-security[all]
  • gnome-shell-extension-prefs 来自:focal-security[amd64]
  • gnome-shell-common 是较新的版本(与 gnome-shell-extension-prefs 不兼容)

...这是否意味着‘focal-security[all]’(目前)存在一个错误,阻止 amd64 机器使用?

...我们不应该默认安装安全更新吗?

答案1

在桌面上搜索后,我发现“软件和更新”>“更新”>“对于其他软件包,订阅”设置为:

“仅安全更新”

...鉴于我的问题似乎是“安全”存储库中的冲突,我尝试将其切换到“所有更新”,突然一切都好了。我假设“仅安全更新”是默认设置(但完全有可能我在安装操作系统后立即更改了它,然后忘记了)

因此,如果我理解正确的话,发生的事情是:

  1. 我认为我的 apt 源都是正确的,通过查看 apt/sources.list 并仔细检查其中的所有内容,我猜想它们都是正确的。
  2. ...但我误读了内容,没有意识到我以某种方式被阻止访问某些来源的定期更新
  3. ...并且其中一个安全更新要求我还进行非安全更新,以满足链。

相关内容