良许Linux教程网 干货合集 Linux中patch文件的使用

Linux中patch文件的使用

diff的功能就是用来比较两个文件的不同,然后记录下来,也就是所谓的diff补丁,patch就是利用diff制作的补丁来实现源文件(夹)和目的文件(夹)的转换,下面良许教程网为大家分享一下Linux中patch文件的使用。

u=2180431356,1301502486&fm=26&gp=0

linux下patch文件的使用2

通过diff工具生成补丁, patch工具打上补丁.在使用diff之前,需要保留一份未修改过的源码, 然后在其它地方修改源码的一份拷贝. diff对比这两份源码生成patch. 修改过的源码必须保留原来的文件名, 例如, 如果你修改源码中的a.c文件, 那么, 修改后的文件还是名为a.c, 在修改之前你可以复制a.c为a.orig.c进行备份.

diff生成补丁

  $ diff -up linux-2.6.28.8/net/sunrpc/svc.orig.c linux-2.6.28.8/net/sunrpc/svc.c > xx.patch

这条命令会产生类似如下的输出, 你将它重定向到一个文件中, 这个文件就是patch.

 1 diff -up linux-2.6.28.8/net/sunrpc/svc.orig.c 2009-03-17 08:50:04.000000000 +0800
 2 +++ linux-2.6.28.8/net/sunrpc/svc.c 2009-03-30 19:18:41.859375000 +0800
 3 @@ -1050,11 +1050,11 @@ svc_process(struct svc_rqst *rqstp)

-u 显示有差异行的前后几行(上下文), 默认是前后各3行, 这样, patch中带有更多的信息. -p 显示代码所在的c函数的信息.

为多个文件生成补丁时,通常将多个文件分别组织在源文件目录及新文件目录中,然后利用diff命令生成补丁

  $ diff -uprN linux-2.6.28.8.orig/net/sunrpc/ linux-2.6.28.8/net/sunrpc/ > patch

这条命令对比了linux-2.6.28.8.orig/net/sunrpc/和linux-2.6.28.8/net/sunrpc/两个目录下的所有源码差异. 参数详解: -r 递归地对比一个目录和它的所有子目录(即整个目录树). -N 如果某个文件缺少了, 就当作是空文件来对比. 如果不使用本选项, 当diff发现旧代码或者新代码缺少文件时, 只简单的提示缺少文件. 如果使用本选项, 会将新添加的文件全新打印出来作为新增的部分.

打补丁

生成的补丁中包含路径信息,打补丁时需要查看patch文件,一般是第一行,检查patch文件包含在几层目录中,然后对应于patch命令的 -p几,-p后边的数字表示忽视几层目录

 $ patch -p1 

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部