linux系统打补丁
????????linux系統(tǒng)打補丁常用的方式很多,如果是聯(lián)網(wǎng)的情況下,直接使用yum update命令即可。如果沒有聯(lián)網(wǎng)或者有特殊的情況也可以使用diff 和patch命令來打補丁。
方法:?????
1、生成補丁
????????補丁?件是使用diff命令?成的,?成補丁?件的命令使?格式如下:
????????diff?-uNr? oldfile ? newfile >?patch_file.patch
????????diff命令,它的功能就是逐??較兩個?件的不同,然后輸出?較的結(jié)果輸出到補丁文件。
????????參數(shù)解析:
????????-u:選項以統(tǒng)?格式創(chuàng)建補丁?件,這種格式?缺省格式更緊湊些
????????-N:選項確保補丁?件將正確地處理已經(jīng)創(chuàng)建和刪除?件的情況
????????-r:遞歸選項,設(shè)置了這個選項,會將兩個不同版本源代碼?錄中的所有對應(yīng)?件全部都進??次?較,包括??錄?件
????????oldfile:源?件(?錄),未進?修改的
????????newfile:以oldfile為基礎(chǔ),根據(jù)需求對??的?件內(nèi)容修改之后結(jié)果
????????patch_file.patch補丁文件?般以.patch為后綴。
注解:
????????補丁命令的功能就是逐個?較源?件(夾)和?標?件(夾)的所有?件,將差異信息記錄到patch_file.patch中。下面對補丁文件內(nèi)容進行講解:
補丁頭部分:
??????? 1、--- test1.txt 表示源文件(被修改的文件)
??????? 2、+++ test2.txt 表示目的文件
塊部分(@@??? @@ 表示一個塊的開始):
??????? 3、@@ -1,3 表示源文件從第1行開始,一共有3行有差異
??????? 4、@@? 1,3 表示目的文件從第1行開始,一共有3行有差異
正文:
??????? 5、-zzzzzxxccv 表示被修改的文件要刪除這一行
??????? 6、+bbbbbbbbgd表示被修改的文件要增加這一行
2、打補丁
????????打補丁是通過patch命令完成的。?般情況下,打補丁命令使?格式如下(這?只介紹了對源?件(夾)進?打補丁操作):
patch?-pN?<?xxx.patch
參數(shù)解析:
-pN:選項打補丁時要忽略掉第N層?錄。
舉個例子: 如果補丁文件包含路徑名稱 /curds/whey/src/blurfl/blurfl.c,那么:
? -p 0 使用完整路徑名
??-p 1 除去前導(dǎo)斜杠,留下 curds/whey/src/blurfl/blurfl.c。
??-p 4 除去前導(dǎo)斜杠和前三個目錄,留下 blurfl/blurfl.c。
下面給大家舉個例子:
??????? 1、在/tmp目錄下創(chuàng)建test1.txt ,并查看文件內(nèi)容
?????????2、同樣在/tmp目錄下創(chuàng)建test2.txt,并查看文件內(nèi)容
???????? 3、制作補丁,并檢查補丁內(nèi)容
???????? 4、打補丁
????????5、檢查test1.txt打補丁是否成功,內(nèi)容是否被修改
???????? 此時可以看到test1.txt 和test2.txt的內(nèi)容已經(jīng)一致,說明打補丁成功。
????????
總結(jié)
以上是生活随笔為你收集整理的linux系统打补丁的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【渗透测试实战】—社会工程学利用详解
- 下一篇: C#深度优先遍历实现全排列