linux下打补丁和生成补丁

本文介绍了在Linux环境中如何打补丁、生成补丁、撤销补丁的详细步骤,强调了打补丁时的注意事项,包括补丁的顺序和验证,以及提供了生成和应用补丁的命令操作。

之前在公司做项目的时候用到了在linux打补丁的技术(呵呵,其实也不是什么技术说大了就是一条命令),感觉这个还是挺有用的,因为很多原厂都是给出源码基础或是他们修改基础上的补丁包都我们,让我们自己打上去来更新一些代码的功能的。

一、打补丁最需要注意有以下两点:


1、要打补丁的文件必须是未做任何修改的(这个可以打开补丁文件看一下删除的文件的日期是否和我们要打补丁的文件一样就可以了)。我之前就是因为修改了厂商给的源码所以打补丁的时间打不进去,会出错,后来找资料才明白不能改打补丁前的文件。

2、还有一个就是有的补丁要一个一个的打,那是补丁做成这样的,一般厂商给说明是否需要一个一个的打,还直接打最后一个版本的就OK了,但我认为一个一个的打的补丁要严谨些,因为它的每一个补丁表示了一次功能性的修改,这样每次都可以验证补丁的正确性了。


二、生成补丁(针对于发布补丁文件的人)


命令:diff -Naur 路径1/file_old文件   路径2/file_new文件 > xxx.patch文件

注:xxx.patch文件就是新旧文件生成的补丁文件,路径2最好是修改文件的当前路径这样打补丁的时候就把补丁文件放到要打补丁文件所在目录下一起打,file_new文件最好保存下来以便打补丁者打不上或者打错的时间对比下那里没有打上。


三、打补丁(针对于打补丁的人)


命令:patch -bp1 < xxx.patch

注:把xxx.patch和要打补丁的文件放到一起到要打补丁文件 目录下执行上述命令会把补丁打进去更新现有文件,由于加入了参数-b所以还有生成一个.org后缀的文件它是打补丁前的源文件,确定打好了可以删除之。



四、撤销打的补丁(针对打补丁的人)


命令:patch -Rp1 < xxx.patch

注:执行它也是在打完xxx.patch的补丁的文件的基础上执行。
### 应用Linux系统的实时补丁 #### 准备工作 在应用任何类型的补丁前,确保已经备份了重要的数据并创建了系统快照[^3]。这一步骤对于防止意外情况发生至关重要。 #### 获取适合的RT补丁 访问官方内核网站上的实时(RT)补丁页面来下载与当前使用的Linux内核相匹配版本的补丁文件[^2]。例如,如果正在运行的是5.x系列的内核,则应寻找针对该特定版本范围设计的最新稳定版RT补丁。 #### 下载并解压源码树 通常建议从`kernel.org`获取对应版本未修改过的标准内核源代码压缩包,并将其放置于一个干净的工作目录中进行后续处理。假设已获得名为`linux-x.y.z.tar.gz`的标准发行版源码: ```bash tar -xf linux-x.y.z.tar.gz cd linux-x.y.z/ ``` #### 打上实时补丁 利用`patch`工具可以方便地将事先准备好的`.patch`格式的差分文件应用于现有的项目源码之中。这里假定所处路径即为目标内核源码根目录,并且RT补丁已被置于同一级位置: ```bash patch -p1 < ../path_to_rt_patch_file.patch ``` 上述命令中的参数`-p1`意味着去掉最前面的一层路径信息再尝试定位待替换的目标文件;而重定向符后面的部分则指明了实际存放着预加载的RT特性集描述文档的具体位置。 #### 编译配置新内核 完成打补丁过程后,按照常规流程编译新的带有实时特性的自定义化内核镜像即可。一般情况下会先执行菜单驱动式的交互界面来进行必要的选项设定调整(`make menuconfig`),接着便是构建整个工程(`make`)直至最终产出可用于启动的新vmlinuz二进制映象体。 #### 测试验证 部署更新后的内核之前,在受控环境下充分检验其稳定性及性能表现是非常有必要的。通过Bochs/QEMU/KVM/Xen等虚拟机平台或者直接重启物理主机进入GRUB引导菜单选择临时启用候选方案都是可行的方法之一。务必密切关注日志输出状况以及应用程序响应速度变化趋势等方面的表现特征。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值