保留升级/安装软件包的能力,而无需实际升级 Linux Mint

保留升级/安装软件包的能力,而无需实际升级 Linux Mint

Linux Mint 升级说明首先说:

如果您的 Linux Mint 版本仍然受支持,并且您对当前的系统感到满意,那么您不需要升级。

我有时发现自己所处的情况是对我当前的系统感到满意,但我的版本是不是支持的。特别是,我对进行一次巨大的升级持谨慎态度,因为它会升级所有内容并可能破坏事物。但如果我不升级,当我的版本不再受支持时,我将无法再使用 apt-get 安装或升级单个软件包。

基于 Ubuntu 的发行版的升级说明(例如这些旧的升级说明对于 Mint)经常说,基本上你所做的就是将 APT 指向新发行版,然后使用升级或 dist-upgrade 升级你的软件包。

我想知道的是,是否可以“更新”我的系统,使新软件包(或现有软件包的新版本)可用,但是没有实际上升级了任何东西,特别是没有一次性升级所有东西?我想做的是保留安装单个新软件包以及已安装软件包的新版本的能力,但无需对系统上的所有内容进行整体升级。

这似乎是一个奇怪的目标,但我经常在不常使用的计算机上使用 Linux。启动一台旧计算机来做某事,然后发现我无法安装任何东西,因为 apt 源消失了,然后不得不祈祷并尝试可能会破坏所有内容的升级,这是非常令人沮丧的。我更愿意采用增量方法,在这种方法中,安装或升级单个程序的需要不需要大跃进并升级整个系统。

我问这个问题也是因为,从理论上讲,我很好奇升级过程实际上是做什么的。如果系统上的所有内容都是由包定义的,那么“升级到 Mint 17 上的 CoolPackage 版本 X”和“升级到 Mint 18 上的 CoolPackage 版本 X”之间有什么区别?操作系统版本本身实际上以什么方式影响软件包的升级?或者,最极端的是,如果升级操作系统只是升级所有软件包,那么为什么您需要升级操作系统本身,而不是根据需要升级每个软件包(及其依赖项)?我也很好奇不同的发行版是否会使这种增量升级变得更困难或更容易。

(请注意,我不是在谈论忽略依赖关系;我意识到升级一个包可能需要升级特定的其他包。但我想知道为什么需要操作系统级升级的概念,而不仅仅是每个单独的包的概念需要升级该软件包。答案是否只是,经过足够的时间,所有软件包最终都间接依赖于基本软件包的新版本,因此升级任何软件包实际上都需要升级所有内容才能满足依赖关系?)

答案1

是否可以“更新”我的系统,即提供新的软件包(或现有软件包的新版本),但实际上无需升级任何内容,特别是无需立即升级所有内容?

理论上这是可能的,但它比升级整个发行版要复杂得多。与你的想法相反,它的风险更大。

包之间经常交互,并且相互依赖。特别是,程序调用库。当新版本发布时,许多程序已经转移到一堆库的更新版本。而且库本身依赖于其他库,这可能会导致许多包继续运行。

谁决定使用更新的库版本?有时是程序的作者使用该库,因为他们想要新功能。有时,发行版这样做是为了使所有使用库的程序都使用相同版本的库。

由于库版本不兼容,混合不同版本的包通常不起作用。即使安装成功,您运行的版本组合也没有像正式版本中的组合那样经过测试。这就是为什么部分升级风险更大的原因。

您可以根据需要继续运行旧版本,尽管某些方面可能会过时(特别是,运行未获得安全更新的系统是一个非常糟糕的主意)。但是这样您就无法运行较新的程序版本。

如果您确实想继续运行旧版本,并且希望能够安装该版本中的软件包,则可能需要编辑软件包源列表(/etc/apt/sources.list或 中的文件/etc/apt/sources.list.d)。Ubuntu 在 http://old-releases.ubuntu.com/ 上存档其旧版本。您可以从那里获取 Ubuntu 软件包。我不知道是否有类似的 Mint 特定软件包网站。

相关内容