Linux下Patch制作(打补丁)
2017-10-23 10:10
330 查看
在linux下我们可以使用制作Patch的方式给代码打补丁,用于修复BUG、漏洞等问题。其本质就是通过diff命令比较修改前后的代码差异,将结果另存为一个Patch文件,即补丁文件。其他人通过patch命令将发布的Patch文件中的内容同步到自己的代码中,即可完成代码的升级。
1、新建一个demo/demo1/demo2/此目录包含a.c文件,内容如下:
#include <stdio.h>
int
main(void)
{
printf("This is a demo!\n");
return 0;
}
2、拷贝这个目录,命名为demo_new
3、将demo_new中的a.c文件改为如下内容:
#include <stdio.h>
int
main(void)
{
printf("This is a demo!\n");
printf("This source has been changed!\n");
return 0;
}
4、使用diff比较两个文件,结果重定向到demo.patch中
@diff -Naur demo/ demo_new/ > demo.patch
-Naur是固定参数,每次都这么用就行了
5、使用patch命令打补丁
@patch -p0 < demo.patch
再打开demo下的文件可以看到代码已经被更新了;
6、路径参数说明
patch命令后跟的参数-p0表示当前目录级数,目前是0,还可以是1、2、3......
这个计数是什么意思呢?让我们打开demo.patch文件查看第一行:
从patch文件中可以看到当前更新目录为demo/demo1/demo2/a.c,参数-p0表示执行patch命令是所在的位置是demo目录的上级目录。如果这里填-p1就表示此时处于demo目录中,以此类推。因此在使用diff命令制作patch时一定不要使用绝对路径,否则在打patch时就需要从根目录开始数当前处于哪一级了。
1、新建一个demo/demo1/demo2/此目录包含a.c文件,内容如下:
#include <stdio.h>
int
main(void)
{
printf("This is a demo!\n");
return 0;
}
2、拷贝这个目录,命名为demo_new
3、将demo_new中的a.c文件改为如下内容:
#include <stdio.h>
int
main(void)
{
printf("This is a demo!\n");
printf("This source has been changed!\n");
return 0;
}
4、使用diff比较两个文件,结果重定向到demo.patch中
@diff -Naur demo/ demo_new/ > demo.patch
-Naur是固定参数,每次都这么用就行了
5、使用patch命令打补丁
@patch -p0 < demo.patch
再打开demo下的文件可以看到代码已经被更新了;
6、路径参数说明
patch命令后跟的参数-p0表示当前目录级数,目前是0,还可以是1、2、3......
这个计数是什么意思呢?让我们打开demo.patch文件查看第一行:
从patch文件中可以看到当前更新目录为demo/demo1/demo2/a.c,参数-p0表示执行patch命令是所在的位置是demo目录的上级目录。如果这里填-p1就表示此时处于demo目录中,以此类推。因此在使用diff命令制作patch时一定不要使用绝对路径,否则在打patch时就需要从根目录开始数当前处于哪一级了。
相关文章推荐
- Linux补丁(patch)制作与应用
- 【linux】利用patch和diff命令制作文件补丁
- 如何制作patch文件及如何打patch 附带linux打补丁命令
- Linux下使用diff和patch制作及打补丁(已经实践可行!)
- Linux-学习patch命令打补丁,diff命令制作补丁(3)
- linux下diff、patch制作补丁
- Linux下给内核或源码制作和打补丁操作命令--diff、patch
- Linux使用diff和patch制作和安装补丁实例
- Linux下使用diff和patch制作及打补丁
- Linux下patch的制作和打补丁
- Linux编程中制作&打补丁:diff & patch
- linux 补丁(patch)的制作与应用
- linux下补丁(patch)的制作与应用
- Linux 补丁(patch)的制作和使用
- 【转】Linux下使用diff和patch制作及打补丁
- Linux下使用diff/patch制作/使用补丁文件
- linux下补丁(patch)的制作与应用
- 【linux】利用patch和diff命令制作文件补丁
- 【linux】利用patch和diff命令制作文件补丁
- linux利用patch和diff命令制作文件补丁