zoukankan      html  css  js  c++  java
  • 为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









  • 相关阅读:
    Qt学习笔记12:基本会话框4——总结
    Python游戏-实现键盘控制功能
    Unity c# 状态机的简单入门
    Unity3D windows平台视频录制录屏插件 UnityRecorder
    kubeadm安装Kubernetes13.1集群-三
    windows server安装zabbix-agent
    teamviewer被识别为商业用途
    Linux入侵检测工具
    k8s-StatefulSet控制器-十四
    k8s-存储卷2-configMap-Secret-十三
  • 原文地址:https://www.cnblogs.com/LiuChang-blog/p/14704205.html
Copyright © 2011-2022 走看看