为了应用一个从2.6.11到2.6.12的补丁,你最好按照下面来做(注意这些补丁不能应用于2.6.x.y的内核, 而是应用在2.6.x的基础内核---如果你需要从2.6.x.y到2.6.x+1,那么你首先需要卸载掉2.6.x.y的补丁)
下面是一些例子:
#从2.6.11到2.6.12
$ cd ~/linux-2.6.11 # 切换到内核源代码目录 $ patch -p1 < ../patch-2.6.12 # 应用2.6.12补丁 $ cd ..
$ mv linux-2.6.11 linux-2.6.12 # 重命名源代码目录
# moving from 2.6.11.1 to 2.6.12
$ cd ~/linux-2.6.11.1 # 切换到内核源代码目录 $ patch -p1 -R < ../patch-2.6.11.1 # 恢复出来2.6.11.1 # 源代码目录现在是2.6.11
$ patch -p1 < ../patch-2.6.12 # 应用新的2.6.12补丁 $ cd ..
$ mv linux-2.6.11.1 linux-2.6.12 # 重命名源代码目录
2.6.x.y内核 -----------
带有四位数字版本号的内核是-stable的内核。他们包含了对一个给定的2.6.x内核的一些安全 问题以及发现的重要的退化的修复。
对于那些想要最近的稳定内核并且对于测试开发中的试验性的版本没有兴趣的 用户来说,我们推荐这个分支。
如果没有可用的2.6.x.y内核,那么最高数字的2.6.x内核是目前的稳定内核。
注意:维护稳定内核的团队通常会做一些增量的补丁,就像是基于最近的主流版本发布 的补丁一样。但是在下面我仅仅说明了非增量的情况。那些增量式的版本可以在下面的ftp 处找到: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/incr/.
这些补丁不是增量式的,意味着例如对于2.6.12.3补丁不能应用于2.6.12.2的内核源代码 上去,但是可以应用在2.6.12内核代码上。
因此,为了为了把2.6.12.3的补丁应用到你使用的2.6.12.2的内核源代码上,你不得不卸载掉 2.5.12.2补丁(因此你可以得到一个基础的2.6.12的内核源代码),并且应用新的2.6.12.3补丁。
下面是一个小例子:
$ cd ~/linux-2.6.12.2 # 切换到内核源代码目录 $ patch -p1 -R < ../patch-2.6.12.2 # 回归2.6.12.2补丁 $ patch -p1 < ../patch-2.6.12.3 # 应用新的2.6.12.3补丁 $ cd ..
$ mv linux-2.6.12.2 linux-2.6.12.3 # 重新命名内核源代码目录 -rc内核 -------
这些是候选的发布内核。当Linus认为目前的git(内核的源代码管理工具)内核树处于一个 健全的稳定状态足以用来测试的时候,而发布的开发内核。
这些内核是不稳定的,如果你试着运行他们应该会想到可能会不时地有问题出现。 但是这是主开发分支上的最稳定的内核,并且最终会变成下一个稳定的内核。因此 让尽可能多的人来测试它就显得格外重要。
对于那些想帮忙测试开发中的内核但是又不想跑那些试验性的东西的人来说,这将是 一个非常好的分支。(这样的人应该参照下面的关于-git和-mm内核的部分)
-rc补丁是非增量式的,他们应用于2.6.x内核上,就像上面描述的2.6.x.y内核一样。在-rcN 后缀之前的内核版本号代表了这个-rc的内核最终会变成的内核版本。
因此,2.6.13-rc5意思是这是2.6.13内核的第五个候选的发布版本,并且这个补丁应该打在 2.6.12的内核源代码上。
下面是3个关于怎样打这些补丁的例子:
# 首先是一个从2.6.12到2.6.13-rc3的例子
$ cd ~/linux-2.6.12 # 切换到2.6.12的源代码目录 $ patch -p1 < ../patch-2.6.13-rc3 # 打上2.6.13-rc3的补丁 $ cd ..
$ mv linux-2.6.12 linux-2.6.13-rc3 # 重新命名源代码目录
# 现在从2.6.13-rc3迁移到2.6.13-rc5
$ cd ~/linux-2.6.13-rc3 # 切换到2.6.12的源代码目录
$ patch -p1 -R < ../patch-2.6.13-rc3 # 卸载掉2.6.13-rc3补丁 $ patch -p1 < ../patch-2.6.13-rc5 # 应用新的2.6.13-rc5补丁 $ cd ..
$ mv linux-2.6.13-rc3 linux-2.6.13-rc5 # 重新命名源代码目录
# 最后让我们试着从2.6.12.3到2.6.13-rc5
$ cd ~/linux-2.6.12.3 # 切换到内核源代码目录 $ patch -p1 -R < ../patch-2.6.12.3 # 回返2.6.12.3补丁 $ patch -p1 < ../patch-2.6.13-rc5 # 应用新的2.6.13-rc5补丁 $ cd ..
$ mv linux-2.6.12.3 linux-2.6.13-rc5 # 重新命名源代码目录 -git内核 --------
这些是每天Linus的内核树的快照(在一个git仓库中管理着,因此得名)。
这些补丁通常每天都发布而且代表了的Linus的内核树的当前状态,由于它们是自动产生的 甚至没有任何一个光标的骚动来看它们是不是健全的,所以它们比-rc内核更具有试验性。
-git补丁不是增量的,它们或者是应用在2.6.x内核上或者是应用在一个基础的 2.6.x-rc内核上---这一点你可以从他们的名字上看出来。一个名字是2.6.12-git1的 补丁应用在2.6.12内核源代码上,一个名字为2.6.13-rc3-git2的补丁应用在2.6.13-rc3 的内核源代码上。
这里是一些怎样打这些补丁的例子:
# 从2.6.12迁移到2.6.12-git1
$ cd ~/linux-2.6.12 # 切换到内核源代码目录 $ patch -p1 < ../patch-2.6.12-git1 # 应用2.6.12-git1补丁 $ cd ..
$ mv linux-2.6.12 linux-2.6.12-git1 # 重新命名内核源代码目录
# 从2.6.12-git1迁移到2.6.13-rc2-git3
$ cd ~/linux-2.6.12-git1 # 切换到内核源代码目录 $ patch -p1 -R < ../patch-2.6.12-git1 # 回返2.6.12-git1补丁 # 我们现在有了一个2.6.12内核
$ patch -p1 < ../patch-2.6.13-rc2 # 打上2.6.13-rc2补丁
# 内核现在是2.6.13-rc2
$ patch -p1 < ../patch-2.6.13-rc2-git3 # 打上2.6.13-rc2-git3补丁 # 内核现在是2.6.13-rc2-git3 $ cd ..
$ mv linux-2.6.12-git1 linux-2.6.13-rc2-git3 # 重新命名内核源代码目录
-mm内核 -------
这是Andrew Morton发布的实验性的内核
-mm树作为一个新特性和实验性的补丁的实验场。一旦一个补丁在-mm中经过一段时间被证明 有价值,为了使它能包含在主流内核中,Andrew就会把它推给Linus。
尽管鼓励的方法是通过-mm树把补丁推给Linus,这个步骤并不是总被实行。子系统的维护者 (或者个人)有些时候直接把补丁推给Linus,尽管(或者之后)它们已经被它并到了-mm中并得 到了测试(或者有些时候并没有事前在-mm中得到测试)。
通常情况下你应该尽力使你的补丁通过-mm中最大程度测试后再到达主流内核中。
这个分支是一个持续的变化并且包含了一些实验性的特征,很多正在debug的补丁并不适合于 主流的内核等等。这个分支是这个文档中描述的最具有试验性的分支。
这些内核内核不适合于应用在要求稳定的系统上面,并且在运行中比其他任何的分支都可能承担 更大的风险(确信你有最新的备份---跟踪了任何试验性的内核但是甚至更多,于是达到-mm内核)。
这些内核除了包含所有的试验性的补丁以外,它们还包含了在主流-git内核发布的时候任何 可用的改变。
对-mm内核测试会得到极大的赏识,因为这个分支的总的目的就是为了在改变被加到更加稳定的 主流的Linus内核树之前,消除退化、死机、数据失败bug、build失败(以及任何通常意义上的bug)。
但是-mm的测试者应该清醒地认识到这个源代码树中的失败会比其他任何树中的都要普遍。
-mm内核并不会以一个固定的时间发布,但是通常一些-mm内核会在每一个-rc内核(通常1到3个) 发布的中间。-mm内核或者是应用于一个基础的2.6.x内核(当还没有-rc内核发布的时候)或者应用于
一个Linus -rc的内核。
这里有一个打-mm补丁的例子
# 从2.6.12到2.6.12-mm1
$ cd ~/linux-2.6.12 # 切换到2.6.12的源文件目录 $ patch -p1 < ../2.6.12-mm1 # 打一个2.6.12-mm1的补丁 $ cd ..
$ mv linux-2.6.12 linux-2.6.12-mm1 # 重新正确命名这个源文件
# 从2.6.12-mm1到2.6.13-rc3-mm3
$ cd ~/linux-2.6.12-mm1
$ patch -p1 -R < ../2.6.12-mm1 # 卸载掉2.6.12-mm1补丁 # 现在我们得到了一个2.6.12的源文件
$ patch -p1 < ../patch-2.6.13-rc3 # 打一个2.6.13-rc3的补丁 # 我们现在得到一个2.6.13-rc3的源文件
$ patch -p1 < ../2.6.13-rc3-mm3 # 打一个2.6.13-rc3-mm3的补丁 $ cd ..
$ mv linux-2.6.12-mm1 linux-2.6.13-rc3-mm3 # 重新命名源文件目录
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库LINUX patch(2)在线全文阅读。
相关推荐: