給Linux核心打patch

2021-08-06 03:02:21 字數 1305 閱讀 5233

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...