在“sources.list”中包含来自不同发行版的源是否安全?

在“sources.list”中包含来自不同发行版的源是否安全?

我正在运行 Debian 测试(bookworm在撰写本文时),并且我需要一个仅在较旧的 Debian 10 中可用的软件包(buster;今天它的编码为“旧稳定”)。

我设法将相关buster行添加到sources.list、更新并安装该包。但后来我担心这可能会给系统带来一些不一致,所以删除了该行。

拥有main来自两个不同发行版的两个组件是否安全?发行版版本之间的距离很可能会有所不同,因为该软件包未包含在 Debian 11 中。执行此操作的建议方法是什么?

答案1

这不安全,从某种意义上说,它今天可能有效,但更新后就无效了。由于它使用的是新库,因此某些事情可能会以难以追踪的方式出现故障。所以,总而言之,不,不是安全的

更好的方法是获取源代码并重建包使用当前 Debian 中的开发工具。这可能需要一些时间(某些开发库可能不再可用,您还必须从源代码获取它们)。

不管怎样,请检查 Debian 中的软件包页面,以了解更多关于它不再发布的原因。这也可能有助于解决重建时的其他问题。

答案2

只要两个发行版不会在同一个包上发生冲突,它就是安全的。不,我们无法预测是否会发生此类冲突。

将特定于应用程序的源添加到源列表中通常是安全的。例如,由于我使用 VS Code,因此我经常在列表中保留 Microsoft 的存储库。我相对确定它不会与 Ubuntu 的存储库冲突,这是我机器上的主要存储库。

但对于您所描述的情况(使用同一发行版的另一个版本的应用程序),下载单个应用程序包并在本地安装会更容易、更安全。它很可能需要一些其他库,但将从主库(您真正的主“主”发行版)中获取它们,因此不会发生冲突。

下载特定软件包的唯一缺点:它不会自动更新。如果开发人员发布了新版本,您将必须自己手动进行更新。在这种情况下,这将是受控下载,您将看到新版本的应用程序需要哪些附加包,因此冲突的可能性会降到最低。

如果您从旧版本的发行版中获取应用程序,则可能需要现代发行版中不存在的旧库。在这种情况下,知道需要哪个包,您可以重复该过程:下载该附加包,在本地安装它,确保依赖项不存在冲突。尝试再次安装该应用程序。如有必要,请重复。

相关内容