如何在 Arch 中递归降级软件包及其依赖项

如何在 Arch 中递归降级软件包及其依赖项

我需要降级 xmonad,因为在最新升级后,当我运行特定程序(特别是 fldigi)时,它会崩溃。与问题相反如何在 arch linux 中降级多个软件包?,我需要递归地降级软件包及其依赖项。

为了降级 xmonad,我需要降级 haskell-x11,它依赖于 haskell-...,它依赖于 ~20 个其他软件包,但只有 ~20 个。在这种情况下,这组包不会失控,尽管一次处理一个包会很乏味,但就足够了。

一旦我确认降级可以解决问题,我打算再次前滚并帮助真正了解 Haskell 的人调试这个问题。

答案1

这是二进制分发的限制。每个二进制发行版都会设置一定的策略,用户必须遵守它,否则就会遇到困难。具体来说,您将面临 ABI 损坏或需要重建复杂的软件包链并并行安装这些软件包,这将违背 Arch 哲学。

简单的架构哲学意味着仅将最新版本集成到其核心组件中,因此版本的选择实际上不是由设计给出的,据说是因为这会使工具链变得过于复杂。

相比之下,基于 deb 的发行版能够拥有多个版本的包,并具有自动依赖性解析功能。然而,它仅在升级时表现良好,而在降级时则表现不佳。降级通常最终会卸载整个软件包链并重新安装旧版本。设置封装引脚和清除是一项漫长而耗时的任务。所以,这并不是一个理想的情况。

您在这里试图实现的是一个无策略的环境,您自己定义系统的策略。基本上,您需要一个基于源代码的发行版。我推荐Gentoo。然而,这种自由是有代价的,因为大多数软件包都不以二进制格式提供。另外,请务必尝试Calculate Linux 和RedCore,因为它们包含更大的预构建二进制存储库,同时保持靠近Gentoo 根。

相关内容