patch [ -b [ -b prefix ] ] [ -f ] [ -l ] [ -n ] [ -r ] [ -s ] [ -v ] [ -c | -e | -n ] [ -d directory ] [ -d define ] [ -f number ] [ -i patchfile ] [ -o outfile ] [ -p number ] [ -r rejectfile ] [ -x number ] originalfile < patchfile
常使用的 patch 引數:
-pnum指定目錄級別(從路徑全稱中除去幾層目錄)比如patchfile路徑為 /u/howard/src/blurfl/blurfl.c,setting -p0 gives the entire file name unmodified, -p1 gives u/howard/src/blurfl/blurfl.c without the leading slash, -p4 gives blurfl/blurfl.c and not specifying -p at all just gives you blurfl.c。
-d directory 打補丁前,更改當前目錄到指定目錄。
-i patchfile 從指定檔案,而不是從標準輸入中讀取補丁資訊。
-r 逆向補丁,這個選項在防止打錯補丁很有用處。
比如我們常用的核心版本有3.2.4, 3.2.6,3.6.12。
2.解壓檔案linux-3.2.tar.gz
tar -xzf linux-3.2.tar.gz
3.將檔案linux-3.2更改為需要的核心版本號,如linux-3.2.4,
mv linux-3.2 linux-3.2.4
4.解壓patch-3.2.4.gz
gunzip -d patch-3.2.4.gz
5.給核心打補丁
patch -d linux-3.2.4 -p1 < patch-3.2.4
使用zcat命令可以在不解壓的情況下給核心打補丁
zcat patch-3.2.4 | patch -d linux-3.2.4 -p1
檢視linux-3.2.4目錄下的makefile檔案,如果version = 3,patchlevel = 2,sublevel = 4則表明打補丁成功。
核心版本回退到3.2.0
patch -r -d linux-3.2.4 -p1 < patch-3.2.4
或者zcat patch-3.2.4.gz | patch -r -d linux-3.2.4 -p1
注意打補丁前最好不要修改核心檔案,否則可能會導致打補丁失敗
如何給 Drupal 打 patch?
第一步,獲取到patch檔案,例如 deprecated each2925449 106.patch 第二步,把布丁檔案放到正確的目錄下。例如,上面這個布丁是核心補丁,開啟檔案看見第一行 diff git a includes bootstrap.inc b includes bootstrap.i...
Linux下生成patch和打patch
通過diff工具生成補丁,patch工具打上補丁.在使用diff之前,你需要保留乙份未修改過的原始碼,然後在其它地方修改原始碼的乙份拷貝.diff對比這兩份原始碼生成patch.修改過的原始碼必須保留原來的檔名,例如,如果你修改原始碼中的a.c檔案,那麼,修改後的檔案還是名為a.c,在修改之前你可以...
Linux下生成patch和打patch
在使用diff之前,你需要保留乙份未修改過的原始碼,然後在其它地方修改原始碼的乙份拷貝.diff對比這兩份原始碼生成patch.修改過的原始碼必須保留原來的檔名,例如,如果你修改原始碼中的a.c檔案,那麼,修改後的檔案還是名為a.c,在修改之前你可以複製a.c為a.orig.c進行備份.1 diff...