linux系统打补丁

news/2024/11/24 10:50:38/

        linux系统打补丁常用的方式很多,如果是联网的情况下,直接使用yum update命令即可。如果没有联网或者有特殊的情况也可以使用diff 和patch命令来打补丁。

方法:     

1、生成补丁

        补丁⽂件是使用diff命令⽣成的,⽣成补丁⽂件的命令使⽤格式如下:

        diff -uNr  oldfile   newfile > patch_file.patch

        diff命令,它的功能就是逐⾏⽐较两个⽂件的不同,然后输出⽐较的结果输出到补丁文件。

        参数解析:

        -u:选项以统⼀格式创建补丁⽂件,这种格式⽐缺省格式更紧凑些

        -N:选项确保补丁⽂件将正确地处理已经创建和删除⽂件的情况

        -r:递归选项,设置了这个选项,会将两个不同版本源代码⽬录中的所有对应⽂件全部都进⾏⼀次⽐较,包括⼦⽬录⽂件

        oldfile:源⽂件(⽬录),未进⾏修改的

        newfile:以oldfile为基础,根据需求对⾥⾯的⽂件内容修改之后结果

        patch_file.patch补丁文件⼀般以.patch为后缀。

注解:

        补丁命令的功能就是逐个⽐较源⽂件(夹)和⽬标⽂件(夹)的所有⽂件,将差异信息记录到patch_file.patch中。下面对补丁文件内容进行讲解:

补丁头部分:

        1、--- test1.txt 表示源文件(被修改的文件

        2、+++ test2.txt 表示目的文件

块部分(@@    @@ 表示一个块的开始):

        3、@@ -1,3 表示源文件从第1行开始,一共有3行有差异

        4、@@  1,3 表示目的文件从第1行开始,一共有3行有差异

正文:

        5、-zzzzzxxccv 表示被修改的文件要删除这一行

        6、+bbbbbbbbgd表示被修改的文件要增加这一行

2、打补丁

        打补丁是通过patch命令完成的。⼀般情况下,打补丁命令使⽤格式如下(这⾥只介绍了对源⽂件(夹)进⾏打补丁操作):

patch -pN < xxx.patch

参数解析:

-pN:选项打补丁时要忽略掉第N层⽬录。

举个例子: 如果补丁文件包含路径名称 /curds/whey/src/blurfl/blurfl.c,那么:

  -p 0 使用完整路径名
  -p 1 除去前导斜杠,留下 curds/whey/src/blurfl/blurfl.c。
  -p 4 除去前导斜杠和前三个目录,留下 blurfl/blurfl.c。

下面给大家举个例子:

        1、在/tmp目录下创建test1.txt ,并查看文件内容

         2、同样在/tmp目录下创建test2.txt,并查看文件内容

         3、制作补丁,并检查补丁内容

         4、打补丁

        5、检查test1.txt打补丁是否成功,内容是否被修改

         此时可以看到test1.txt 和test2.txt的内容已经一致,说明打补丁成功。

        


http://www.ppmy.cn/news/142751.html

相关文章

Windows系统补丁管理工具

Windows补丁管理 在全球范围内&#xff0c;最常用的操作系统平台是Windows&#xff0c;由微软公司提供。Windows平台简单易用&#xff0c;因此广泛使用。但是&#xff0c;修补网络中所有端点的Windows更新有时会令人头疼。这就需要在企业网络中使用补丁管理软件。补丁管理程序…

Win11 22527.201更新补丁包下载

今日微软向Win11预览版用户推出新的更新补丁Windows 11 22572.201 &#xff08;KB5012886&#xff09;&#xff0c;旨在测试我们在开发频道中构建的服务管道。下面我们就来看看详细的更新内容&#xff0c;有需要的用户可以下载安装&#xff01;微软Windows 11 22572.201&#x…

shell 清理日志文件内容

一般日志文件都是 按照yyyy-MM-dd 格式划分的文件 #! /bin/bash function read_dir(){ls_datedate %Y-%m-%dfor file in ls $1 doif [ -d $1"/"$file ]thenread_dir $1"/"$fileelseresult$(echo $file | grep "${ls_date}")if [[ "$res…

框架解耦神器 -- REventBus

REventBus背景 在实际的项目开发中&#xff0c;经常会遇到业务与业务&#xff0c;组件与组件&#xff0c;业务与组件之间的通信&#xff0c;举个例子&#xff1a;当有烟雾传感器检测到烟雾超标时&#xff0c;需要打开排气扇排气&#xff0c;同时显示烟雾浓度显示到显示器中&am…

opencv的Mat相关操作

cv Mat类型的使用 下载安装好opencv&#xff0c;使用时只需添加如下头文件&#xff1a; #include<opencv2/opencv.hpp>另外在工程的属性页中要添加opencv的包含目录与库目录&#xff1a; 在写稍大一些工程的时候&#xff0c;尽量不要直接用using namespace cv; 因为在…

尾行注释转行上注释 正则表达式

尾行注释转行上注释 正则表达式 匹配 ( *)(.;)( *// *)(.) 替换为 $1// $4\n$1$2

space-between时尾行排版优化

在使用justify-content: space-between;时,经常会遇到下列问题, ul {width: 500px;height: 500px;display: flex;justify-content: space-between;flex-wrap: wrap;}li {width: 130px;list-style: none;background-color: pink;height: 30px;margin: 20px 0;}ul:last-child::af…

vi中跳到首行或尾行

跳到首行&#xff1a;gg 跳到尾行&#xff1a;G