4.1、操作系統打補丁:
1、centos更新說明:
centos 官方沒有發布關於centos操作系統的補丁。
centos 操作系統更新可以參考如下建議。
2、更新操作系統軟件包,操作系統版本、內核版本:
yum update
等價於
yum upgrade
3、根據需求更新軟件包:
# 檢查可更新的軟件包
yum check-update
# 根據可更新軟件包列表,安裝自己需要的軟件包
yum install <package_name>
4、只更新軟件包,不更系統版本和系統內核:
yum --exclude=kernel* --exclude=centos-release* update
4.2、使用patch命令給軟件包打補丁,適用於名稱相同文件的操作:
1、創建實驗環境:
[root@controlnode ~]# mkdir -p /tools/ && cd /tools/
[root@controlnode tools]# mkdir demo/ && cd demo/
[root@controlnode demo]# mkdir -p old/a/b/
[root@controlnode demo]# mkdir -p new/a/b/
[root@controlnode demo]# vim old/a/b/foo.txt
old_line_1
old_line_2
[root@controlnode demo]# vim new/a/b/foo.txt
new_line_1
new_line_2
2、制作補丁:old目錄和new目錄數據保持一致,把對old目錄需要做的操作記錄下來:
[root@controlnode demo]# diff -Naur old/ new/ > foo.patch
3、查看補丁文件:
[root@controlnode demo]# cat foo.patch
diff -Naur old/a/b/foo.txt new/a/b/foo.txt
--- old/a/b/foo.txt 2020-08-11 23:03:27.006968726 +0800
+++ new/a/b/foo.txt 2020-08-11 23:03:50.258730620 +0800
@@ -1,2 +1,2 @@
-old_line_1
-old_line_2
+new_line_1
+new_line_2
4、應用補丁:
[root@controlnode demo]# patch -p0 < foo.patch
patching file old/a/b/foo.txt
[root@controlnode demo]# cat old/a/b/foo.txt
new_line_1
new_line_2
等價於
[root@controlnode old]# pwd
/tools/demo/old
[root@controlnode old]# patch -p1 < ../foo.patch
等價於
[root@controlnode a]# pwd
/tools/demo/old/a
[root@controlnode a]# patch -p2 < ../../foo.patch
5、patch 補充:
(1)參數說明:
-pn:p為path的縮寫,n指將patch文件里的path第n條'/'及其左邊部分取消
-R:卸載patch包
--dry-run:嘗試patch軟件,並不真正改動軟件
(2)如果打過補丁再次使用patch命令,系統會問你是否想還原回去:
1)patch -p0 < foo.patch
patching file old/a/b/foo.txt
Reversed (or previously applied) patch detected! Assume -R? [n] y
2)查看一下目標文件,你會發現內容已經還原成舊的了
# cat old/a/b/foo.txt
old_line_1
old_line_2
3)如果你想嚴格指定是應用補丁可以使用下面命令(就是增加N參數)
# patch -Np0 < foo.patch
4)如果你想嚴格指定是還原補丁可以使用下面命令(就是增加R參數)
# patch -Rp0 < foo.patch