![云原生应用构建:基于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=1738980300-FUSxQhpw9bzeXhS8kwLKZdVyj51mEpuy-0-4bfbf65baad95a22be736bed3fe87c49)
图2-4 备份并修改源码
查看两个源码文件的不同之处,如图2-5所示。
![](https://epubservercos.yuewen.com/20751C/17517094506695406/epubprivate/OEBPS/Images/t2-5.jpg?sign=1738980300-MVlfAaUJGcJ2Zdmsz0Ga7J0nD93IprkM-0-c216c5234d02163bff605189d2c65e3a)
图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=1738980300-BfYikLpJgNxmeOe4gzWeEJrgAaho0BOR-0-8292031d4c4963ab9aa8390af3372d66)
图2-6 恢复cello.c初始内容
将补丁文件重定向到补丁,给源码打补丁,如图2-7所示。
![](https://epubservercos.yuewen.com/20751C/17517094506695406/epubprivate/OEBPS/Images/t2-7.jpg?sign=1738980300-CsivXyTCrbmk0g4pQxciQ6YWTUibl4j9-0-979b119edaed2ee6f1a635509614282a)
图2-7 给源码打补丁
从图2-7cat命令的输出中可以看到补丁已成功构建并运行,如图2-8所示。
![](https://epubservercos.yuewen.com/20751C/17517094506695406/epubprivate/OEBPS/Images/t2-8.jpg?sign=1738980300-jKUSj8tZzVaFeZFrcof5mmFGghZToAlB-0-e13fd1165212e8d0616e79e1bf1e9f0c)
图2-8 构建源码并运行
至此,证明打补丁成功。