Linux内核补丁的目的是什么?


21

对于每个Linux内核版本,都有一个可供下载的补丁文件。例如,linux-3.12.22有一个对应的patch-3.12.22

该补丁的目的是什么?要始终在编译相应内核之前对其进行修补,还是将先前的内核版本与该修补程序所匹配的内核一起更新(在本例中为3.12.22)?

Answers:


31

目的是节省大量流量。

Linux压缩包约为75MB,而补丁通常只有几个KB。

因此,如果您编译自己的内核并在发行之日更新到每个新的次要版本,而不是为每个次要更新重新下载新的75MB tarball,则只需下载(例如)一次给定版本的主tarball,然后您实际想要的版本的补丁。有更新时,您可以重新使用已经下载的主tarball。

linux-3.14.tar.xz+ patch-3.14.{1..n}.xz总计低于100MB。

linux-3.14.tar.xz+ linux-3.14.{1..n}.tar.xz是100MB的数倍。

修补没有不利之处,除非您做错了什么,否则最终结果是相同的。


9
如所写,这并不能完全回答问题。明确地说,修补程序的目的是将其应用于源的版本n-1“升级”至版本n。的优势在于,它可以节省大量的流量,作为答案描述。
David Richerby 2014年

1
我不是母语人士。但是优势听起来对我来说太弱了。节省带宽/流量对于任何服务器都很重要。它有目的。
弗罗斯特斯2014年

您没有明确回答的部分是:“要始终在编译相应内核之前先对其进行补丁,或者使先前的内核版本与该补丁匹配的内核保持最新(在这种情况下为3.12.22?)? ” patch-3.12.22将从版本3.12.21升级到.22,在编译它们之前不应用于3.12.22源。
David Richerby 2014年

补丁通常用于.0例如VERSION = 3 PATCHLEVEL = 12 -SUBLEVEL = 0 +SUBLEVEL = 22。经历20个补丁会很烦人……
frostschutz

这样的流量节省方案比例如拥有存储库的git clone并在git pull发布新版本时执行更好?
Ruslan 2014年

5

这些称为“补丁集”。补丁集是一组具有相同功能,相关或逐步实现功能的补丁。这些尤其是内核的主要修订版(XY)与后续的次要/维护修订版(XY Z)之间的区别,其中包含以下几点建议:

  • 节省服务器空间。
  • 节省带宽。
  • 易于应用和分发

请记住,这些补丁集是增量的。首先必须在.2之前应用补丁.1,然后才能应用.3。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.