您好,登錄后才能下訂單哦!
怎么進行Linux中patch文件的使用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
patch就是利用diff制作的補丁來實現源文件(夾)和目的文件(夾)的轉換。
的功能就是用來比較兩個文件的不同,然后記錄下來,也就是所謂的diff補丁,linux下patch文件的使用
通過diff工具生成補丁, patch工具打上補丁.在使用diff之前,需要保留一份未修改過的源碼, 然后在其它地方修改源碼的一份拷貝. diff對比這兩份源碼生成patch. 修改過的源碼必須保留原來的文件名, 例如, 如果你修改源碼中的a.c文件, 那么, 修改后的文件還是名為a.c, 在修改之前你可以復制a.c為a.orig.c進行備份.
$ diff -up linux-2.6.28.8/net/sunrpc/svc.orig.c linux-2.6.28.8/net/sunrpc/svc.c > xx.patch
這條命令會產生類似如下的輸出, 你將它重定向到一個文件中, 這個文件就是patch.
1 diff -up linux-2.6.28.8/net/sunrpc/svc.orig.c 2009-03-17 08:50:04.000000000 +0800 2 +++ linux-2.6.28.8/net/sunrpc/svc.c 2009-03-30 19:18:41.859375000 +0800 3 @@ -1050,11 +1050,11 @@ svc_process(struct svc_rqst *rqstp)
-u 顯示有差異行的前后幾行(上下文), 默認是前后各3行, 這樣, patch中帶有更多的信息. -p 顯示代碼所在的c函數的信息.
為多個文件生成補丁時,通常將多個文件分別組織在源文件目錄及新文件目錄中,然后利用diff命令生成補丁
$ diff -uprN linux-2.6.28.8.orig/net/sunrpc/ linux-2.6.28.8/net/sunrpc/ > patch
這條命令對比了linux-2.6.28.8.orig/net/sunrpc/和linux-2.6.28.8/net/sunrpc/兩個目錄下的所有源碼差異. 參數詳解: -r 遞歸地對比一個目錄和它的所有子目錄(即整個目錄樹). -N 如果某個文件缺少了, 就當作是空文件來對比. 如果不使用本選項, 當diff發現舊代碼或者新代碼缺少文件時, 只簡單的提示缺少文件. 如果使用本選項, 會將新添加的文件全新打印出來作為新增的部分.
生成的補丁中包含路徑信息,打補丁時需要查看patch文件,一般是第一行,檢查patch文件包含在幾層目錄中,然后對應于patch命令的 -p幾,-p后邊的數字表示忽視幾層目錄
$ patch -p1
看完上述內容,你們掌握怎么進行Linux中patch文件的使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。