我需要将内核从版本 2.6.30 更新到 2.6.37。我将为此架构编译内核和内核模块并启动它。但也安装了很多软件包,我想知道是否必须为较新的内核更新所有软件包,或者我可以只更新我需要的其中一些软件包,并保留其他软件包的旧版本吗? (我这么问是因为该计算机没有互联网连接,我必须手动执行此操作)。我知道内核头是向后兼容的等等,但我仍然不确定。
答案1
2.6.37 已经很旧了,所以你真的应该问自己这是否是你想要的。这个年龄也意味着很多人可能已经忘记了当时发生了多少变化(我知道我已经忘记了),但这些版本足够接近,而且都是 2.6,所以我猜没有 API/ABI 更改,这意味着升级内核应该是安全的,除此之外别无其他。但我不承诺任何事情。
答案2
原则上,内核开发的黄金法则是“永远不要破坏用户空间”。因此,您可以升级内核,并且所有应用程序都应该可以运行。但在实践中,应该并不总是等于做。但这尤其适用于古老的内核版本;我想不出自 2.4 系列以来有什么真正的突破性变化。
主要是一般来说将要任何第三方内核模块都无法正常工作。与内核用户界面不同,模块使用的内核内核接口会随版本而变化,而且经常会发生变化,不仅在二进制级别,而且在源代码级别。如果您有任何第三方内核模块,并且升级了内核,那么您可能需要获取内核模块的匹配版本(如果存在)。
虽然最终用户应用程序通常是安全的,但某些管理或硬件相关工具依赖于被声明不稳定的内核接口。特别是,文件的组织/sys
在其生命周期中发生了变化,并且并非所有程序都通过保持稳定的接口访问它。接口/proc
更加稳定,但过去也有过变化;例如,防火墙接口在 2.2 ( ipfwadm
→ ipchains
) 中以向后不兼容的方式进行了更改,并在 2.4 ( ipchains
→ iptables
) 中再次更改(但此后不再更改)。
另一件可能改变的事情是条目的默认命名/dev
(例如,因为某些磁盘驱动程序从 更改hd?
为sd?
)。这可以通过 udev 来避免或掩盖。
答案3
这是古老的,古老的。侏罗纪为软呢帽。我会研究将整个发行版更新到 Fedora 23(24 计划在 6 月左右发布,所以 23 距离被放弃还有大约一年的时间)。只要您安装的“大量软件包”来自发行版,就应该没问题。但您可能需要重新安装,并在上面安装您的软件包。曾经有过巨大的自内核 2.6.x 以来发生了变化,不仅是内核端,还包括用户态。
如果 Fedora 一年左右的生命周期对您来说太快,您可以尝试中央操作系统(也是基于 RPM 的,是各种的克隆红帽企业 Linux,因此处理起来非常接近)。但对于企业来说,软件的选择要有限得多。您可能会考虑添加EPEL额外的包裹。
如果这是一台旧的、有限的机器,你最好看看例如发行观察用于旧/有限机器的发行版。