出于第三方软件兼容性的原因,我想安装 ubuntu 14.04.1 并保留 14.04.1 版本,直到我允许升级到 14.04.2、14.04.3 等...
我已经阅读了 ubuntu 固定说明并查看了两个类似的与包裹保存有关的 Ask Ubuntu 问题,但我没有看到明确的方法来做到这一点:
我能看到的最好的事情就是用这种巧妙的方式阻止一切:
保存状态:
`dpkg --get-selections > current_selections.txt`
保留所有包裹:
`dpkg --get-selections | sed -r "s/\tinstall/hold/" |dpkg --set-selections`
在将来的某个时间点恢复未保留的包裹:
`dpkg --set-selections < current_selections.txt`
然而这似乎有点过分,我想继续运行apt-get update && apt-get upgrade
并接收所有软件包的更新,除了那些构成从版本 14.04.1 升级到更高版本的软件包。
我是不是疯了,这是否违背了使用 apt-get upgrade 的精神以及 Ubuntu 关于 LTS 版本的点发布的理念,(如果是这样,那么为什么 LTS 版本会有点发布,从而破坏与其他软件的兼容性,它们不是应该是稳定且合理的静态目标吗?)
我还想到,也许将内核保持在 14.04.1 (3.13.0-32) 版本会起作用,因为 14.04.2 及更高版本的其余部分将依赖于较新的内核。我还有一种预感,是较新的内核破坏了我使用的软件,尽管供应商文档没有具体说明,我也没有得到他们的答复。
为了清楚起见,我想补充一点,我目前不知道我所运行的软件与 Ubuntu 版本 >14.04.1 之间不兼容的根源在哪里,只是供应商告诉我的,而且情况似乎确实如此。虽然我弄清楚了这些不兼容问题出在哪里,但我正在寻找一种方法,让我能够继续使用 14.04.1,同时更新不构成任何 >14.04.1 的软件包。如果答案是你不能,那没关系,我只是想知道。
TL:DR
1) 我怎样才能将 Ubuntu 保持在 14.04.1 版本并防止升级到 14.04.2 或 14.04.3,同时保留对我的软件包应用更新的能力。
2)我是否误解了 Ubuntu LTS 策略和小版本,期望小版本不会发生太大的改变以破坏兼容性?
3)我可以通过将内核保持在 14.04.1(3.13.0-32)版本来实现我的目标吗?这合理吗?
谢谢。
答案1
您(可能还有您的二进制文件的供应商)误解了 Ubuntu 点版本的含义。事情是这样的,在 14.04 发布后的某个时间点,Ubuntu 开发人员说:“好吧,14.04 已经发布一段时间了,有很多更新。对于现在安装 14.04 的人来说,必须安装所有这些更新有点令人沮丧,所以让我们创建 14.04 加上迄今为止发布的所有更新的 ISO,并将其称为 14.04.1。”然后,之后又发生了同样的事情,产生了 14.04.2,等等。
因此,“保留 14.04.1 但仍然安装更新”是矛盾的。如果您从 14.04.1 ISO 安装,然后安装更新,您将转向 14.04.2,最终您将达到它。您或您的二进制文件的供应商需要找出究竟是什么原因导致它在 14.04.1 裸机安装上可以工作,但在 14.04.2 上却不行。这是由于在安装 14.04.1 后安装了一些更新,您需要找出哪些更新,以便阻止它们。否则,它们也将作为正常更新的一部分安装。
哦,还有你的其他问题:
2) 并非如此;可以合理地假设 Ubuntu 点发布不会破坏任何东西。遗憾的是,即使是最合理的假设有时也会失败。
3) 保留内核版本是可能的,并且不会破坏您的系统。您甚至不需要做任何事情:即使安装了新内核,旧内核仍然可用。当然,如果您使用旧内核,您将无法从新内核的错误修复中受益。
答案2
你并不需要刻意地“坚持某一点发布”。
点版本之间的主要区别是 HWE Stack 包含新的内核主版本和新的xorg
相关用户空间驱动程序。
当您进行常规软件包升级时,您将永远不会移动到新的内核主版本或新的图形堆栈。
内核 3.13 将获得安全和错误修复更新,直至 14.04 EOL。您无需冻结3.13.0-32
。
当前3.13
版本是3.13.0.71.77
。
如果您担心版本号,您可以base-files
通过运行以下命令来冻结软件包:
sudo apt-mark hold base-files
在这种情况下,您将获得所有更新,但您永远不会看到“点”发布号码。
如果你已经安装了 14.04.3,可以通过运行以下命令切换到内核 3.13:
sudo apt-get install linux-generic
然后您将需要删除linux-image
3.19linux-headers
版本。