国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Linux服務器 > 正文

如何為Linux生成和打上patch

2024-09-05 23:01:29
字體:
來源:轉載
供稿:網友

通過diff工具生成補丁, patch工具打上補丁.

在使用diff之前, 你需要保留一份未修改過的源碼, 然后在其它地方修改源碼的一份拷貝. diff對比這兩份源碼生成patch. 修改過的源碼必須保留原來的文件名, 例如, 如果你修改源碼中的a.c文件, 那么, 修改后的文件還是名為a.c, 在修改之前你可以復制a.c為a.orig.c進行備份.

diff命令必須在整個Linux源碼的根目錄的上一級目錄中執行.

1. 為單個文件生成補丁

diff -up linux-2.6.28.8/net/sunrpc/svc.orig.c linux-2.6.28.8/net/sunrpc/svc.c

這條命令會產生類似如下的輸出, 你將它重定向到一個文件中, 這個文件就是patch.

— linux-2.6.28.8/net/sunrpc/svc.orig.c 2009-03-17 08:50:04.000000000 +0800
+++ linux-2.6.28.8/net/sunrpc/svc.c 2009-03-30 19:18:41.859375000 +0800
@@ -1050,11 +1050,11 @@ svc_process(struct svc_rqst *rqstp)

參數詳解:
-u 顯示有差異行的前后幾行(上下文), 默認是前后各3行, 這樣, patch中帶有更多的信息.
-p 顯示代碼所在的c函數的信息.

2. 為多個文件生成補丁

diff -uprN linux-2.6.28.8.orig/net/sunrpc/ linux-2.6.28.8/net/sunrpc/

這條命令對比了linux-2.6.28.8.orig/net/sunrpc/和linux-2.6.28.8/net/sunrpc/兩個目錄的源碼差異. 不像只需要單個文件, 如果修改多個文件, 那么就需要拷貝整個Linux源碼樹.

參數詳解:
-r 遞歸地對比一個目錄和它的所有子目錄(即整個目錄樹).
-N 如果某個文件缺少了, 就當作是空文件來對比. 如果不使用本選項, 當diff發現舊代碼或者新代碼缺少文件時, 只簡單的提示缺少文件. 如果使用本選項, 會將新添加的文件全新打印出來作為新增的部分.

3. 打補丁

生成的補丁中, 路徑信息包含了你的Linux源碼根目錄的名稱, 但其他人的源碼根目錄可能是其它名字, 所以, 打補丁時, 要進入你的Linux源碼根目錄, 并且告訴patch工具, 請忽略補丁中的路徑的第一級目錄(參數-p1).

patch -p1 < patch1.diff

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂平市| 汽车| 洪泽县| 凌源市| 新乡县| 淳安县| 宁安市| 库伦旗| 台南市| 托里县| 西平县| 海安县| 土默特左旗| 鹤岗市| 四川省| 漳平市| 道孚县| 孟连| 抚松县| 建宁县| 巨野县| 海晏县| 库伦旗| 鄂温| 谷城县| 茌平县| 福建省| 阳高县| 汉阴县| 鹤壁市| 定兴县| 湘潭县| 扎赉特旗| 蒲江县| 宝鸡市| 军事| 循化| 吉林省| 榆社县| 芒康县| 南川市|