为Centos系统打补丁
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏