一、 給linux核心打補丁
給linux核心打補丁首先要明白每個新版本的補丁都是基於某個穩定版做的,所以我們先要理解linux核心的版本號代表的意思:
linux核心版本有兩種:穩定版和開發版 ,linux核心版本號由3組數字組成:第乙個組數字.第二組數字.第三組數字
第乙個組數字:目前發布的核心主版本。
第二個組數字:偶數表示穩定版本;奇數表示開發中版本。
第三個組數字:錯誤修補的次數。
例如我的電腦的核心版本為2.6.32-38,代表的意思就是主版本為2,是穩定版本,第32次修改,38代表的是當前版本的第38次微調patch。
假設我已經在核心的目錄中。補丁放在核心目錄。
xzcat patch-2.6.32.38.xz | patch -p0 -r #回退到2.6.32
xzcat patch-2.6.32.39.xz | patch -p0 #公升級到2.6.32.39
如果我要公升級到2.6.33版本呢?一樣的,先要回退大都2.6.32版本,然後從2.6.32公升級到2.6.33版本,方法和前面一樣。
二、 製作自己的補丁檔案
準備乙個舊檔案macro.c,它的內容如下:
#include structtest
;struct
test p;
#define inc(rq, field) do while (0)
int main(void
)
準備乙個新檔案macro_new.c,它的內容如下:
#include structtest
;struct
test p;
#define inc(rq, field) do while (0)
int main(void
)
製作補丁檔案:
diff -up macro.c macro_new.c > patch-macro-2013-10-30
製作的patch-macro-2013-10-30補丁檔案內容為:
1 --- macro.c 2013-10-3017:29:44.594212235 +0800
2 +++ macro_new.c 2013-10-30
18:33:49.164108493 +0800
3 @@ -20,6 +20,6 @@ int main(void
)4 pp->a = pp->b = 0;5
inc(pp, a);
6inc(pp, b);
7 - std::cout << pp->a << "
"<< pp->b <8 + /*
去掉列印語句*/9
return0;
10 }
第七行的-表示新檔案中去掉了該行,+表示新檔案中增加了改行。
根據補丁檔案修改原檔案為新檔案的內容:
patch -p0 < patch-macro-2013-10-30
這樣macro.c檔案的內容和macro_new.c一樣了。
回退到原來的檔案:
patch -p0 -r < patch-macro-2013-10-30
在Windows環境給Oracle打補丁
oracle補丁一共分為如下幾步 1 配置環境變數 2 更新opath 3 停用oracle服務 4 打補丁 這樣就完成了opatch的更新,其實就是替換檔案 按照嚮導一路按y,回車就行了 最後這樣就完成了 我們可以在用cmd進入opatch目錄,執行 opatch lsinventory,檢視下打...
在Windows環境給Oracle打補丁
之前一直使用sqlserver資料庫,這次有個專案要用oracle資料庫,正好還趕上要打scn補丁包,對oracle打補丁一點概念都沒有,在網上搜了搜,也許是比較簡單吧,網上的文件寫的也比較簡單 估計對這件事熟的人寫文章的時候會忽略一些東西,但這些東西對我這種沒弄過的還是有些影響的 而且大部分都是l...
製作原始碼補丁和給原始碼打補丁
1.製作原始碼補丁 假設原始的原始碼目錄為src code,修改後的原始碼目錄為src code new。通過如下命令,就可以製作出原始碼補丁檔案changes.patch。changes.patch中記錄了src code與src code new之間的差異。root localhost diff...