![云原生应用构建:基于OpenShift](https://wfqqreader-1252317822.image.myqcloud.com/cover/173/32436173/b_32436173.jpg)
上QQ阅读APP看书,第一时间看更新
2.3 给软件打补丁
在计算机软件中,补丁是用来修复代码中的漏洞的。软件中的补丁表示与源代码之间的不同之处。接下来,我们从原始源代码创建补丁,然后应用补丁。
创建补丁的第一步是备份原始源代码,通常是将它另存为.orig文件,以cello.c为例。首先备份cello.c,然后修改cello.c中的内容,如图2-4所示,我们修改了源代码中的描述。
![](https://epubservercos.yuewen.com/20751C/17517094506695406/epubprivate/OEBPS/Images/t2-4.jpg?sign=1738981796-f4hyVYu3zpCt6ERRDK9es3M7Q3gvmo7x-0-46a68c7e2779dcf99267e5f6cb79972f)
图2-4 备份并修改源码
查看两个源码文件的不同之处,如图2-5所示。
![](https://epubservercos.yuewen.com/20751C/17517094506695406/epubprivate/OEBPS/Images/t2-5.jpg?sign=1738981796-JkQM1FBFxQncZDRNaK3UDt5mGkhpJRhp-0-8cbfbb73572319f0ac445b168043bd7c)
图2-5 查看两个源码文件的不同
将两个源码的不同之处保存到cello-output-first-patch.patch中。
# diff -Naur cello.c.orig cello.c > cello-output-first-patch.patch
为了验证打补丁的效果,将cello.c文件恢复为原始源代码,如图2-6所示。
![](https://epubservercos.yuewen.com/20751C/17517094506695406/epubprivate/OEBPS/Images/t2-6.jpg?sign=1738981796-2lMbu9BWSa8I3CLsesJnXJPq1TNLXK5G-0-8088519e25794fda4cee594e3a7e5503)
图2-6 恢复cello.c初始内容
将补丁文件重定向到补丁,给源码打补丁,如图2-7所示。
![](https://epubservercos.yuewen.com/20751C/17517094506695406/epubprivate/OEBPS/Images/t2-7.jpg?sign=1738981796-DEcrBDDZ2maO4kGXgFhJIEjo4zz1iShk-0-621a90f4691e27a8ae6c31d1374c0f14)
图2-7 给源码打补丁
从图2-7cat命令的输出中可以看到补丁已成功构建并运行,如图2-8所示。
![](https://epubservercos.yuewen.com/20751C/17517094506695406/epubprivate/OEBPS/Images/t2-8.jpg?sign=1738981796-i4SQPArmR6KnHlenK979p7lns999UO9u-0-acc7f8f4561bf3fbf6f404be62ac99e5)
图2-8 构建源码并运行
至此,证明打补丁成功。