扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:51CTO.COM 2007年10月18日
关键字:
在本页阅读全文(共3页)
本质上制作补丁程序只有两个步骤,如下描述:
a) 在计算机A上产生一个补丁文件(计算机A就是那台既有新内核的源代码又有老内核的源代码的计算机)。并且将这个补丁文件复制到一张软盘上。
b) 在计算机B上读取保存有补丁文件的软盘,并利用补丁文件将计算机B上的旧内核升级为新的内核。
下面我们进行详细的说明。其中第1到第4步描述了怎样制作一个补丁文件,并把它复制到软盘上。第5到第6步描述了怎么样使用补丁文件将旧的操作系统内核升级到新的版本。
*****************************************************************************
第1步:清理两个内核的源代码文件(没有*.o的文件或者.*文件)
*****************************************************************************
我们假定这两个内核的源代码路径分别是:
/usr/src/linux-2.4.5kh2和/usr/src/linux-2.4.5kh3
运行如下命令:
cd /usr/src/linux-2.4.5kh2
make distclean
cd /usr/src/linux-2.4.5kh3
make distclean
*****************************************************************************
第2步:在两个内核源代码版本之间产生一个“context diffs”文件(这个文件指明了两个不同版本源代码之间的所有不同)。
*****************************************************************************
运行如下命令(首先是旧的内核,然后是新的内核):
cd /usr/src
diff -ruN linux-2.4.5kh2 linux-2.4.5kh3 >patch-2.4.5kh3
*****************************************************************************
第3步:检查补丁文件。
*****************************************************************************
运行如下命令查看补丁文件以确定它没有包含任何的垃圾:
less patch-2.4.5kh3
这里所说的垃圾就是非ASCI码的乱码,或控制字符。如果发现补丁文件中存在着不是文本的内容,那就是有垃圾了。这是我们需要重新操作第1至第3步
*****************************************************************************
第4步:将补丁文件复制到一张软盘上。
*****************************************************************************
mount /flp
cp /usr/src/patch-2.4.5kh3 /flp
umount /flp
由于我们的补丁文件一般都很小,所以我们不需要压缩它。现在我们拿着这张带有补丁程序的软盘转移到计算机B前面去。
*****************************************************************************
第5步:从软盘中读取补丁文件。
*****************************************************************************
cd /usr/src
mount /flp
cp /flp/patch-2.4.5kh3 patch-2.4.5kh3
umount /flp
*****************************************************************************
第6步:使用这个补丁文件将旧内核的源代码升级到新内核的版本。
*****************************************************************************
a) 执行奇妙的patch命令:
patch -p0 patch命令作用在输入的补丁文件patch-2.4.5kh3上,并将对应的老版本的内核源代码中所有的文件和子目录升级到对应的新版本(当然这里的老版本一定要和我们在计算机A上运行diff命令时的那个老版本是一样的)。在我们的例子中,旧的内核源代码版本是Linux-2.4.5kh2。这里参数–p0用来保证文件名不被改变(既不被修改,也不被删除)。 b) 重新命名内核源代码: mv linux-2.4.5kh2 linux-2.4.5kh3
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。