使用patch 我们可以方便的进行软件补丁包处理,以下演示一个简单的c 项目补丁处理

原代码

app.c

#include <stdio.h>
int main(){
printf("this is a demo app");
return 0;
}

补丁修改代码

命名旧的app.c 为app.c.origin

cp app.c  app.c.origin

#include <stdio.h>
int main(){
printf("dalong demo app");
return 0;
}

diff 查看变动

diff -Nur app.c.origin app.c

效果

--- app.c.origin    2019-05-22 16:57:58.027468908 +0800
+++ app.c 2019-05-22 15:55:00.007459150 +0800
@@ -1,5 +1,5 @@
#include <stdio.h>
int main(){
- printf("this is a demo app");
+ printf("dalong demo app");
return 0;
}

生成patch

 diff -Nur app.c.origin app.c > app-output-patch.patch

效果

--- app.c.origin    2019-05-22 16:57:58.027468908 +0800
+++ app.c 2019-05-22 15:55:00.007459150 +0800
@@ -1,5 +1,5 @@
#include <stdio.h>
int main(){
- printf("this is a demo app");
+ printf("dalong demo app");
return 0;
}

代码打补丁

  • 重命名app.c.origin 为app.c 删除新的app.c 通过补丁文件添加
  • 应用patch
patch < app-output-patch.patch 

效果

cat app.c
#include <stdio.h>
int main(){
printf("dalong demo app");
return 0;
}

说明

以上只是一个简单的patch 测试,linux 软件包的开发好多都是基于patch bug修复,git 也有类似的功能

参考资料

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/rpm_packaging_guide/preparing-software-for-packaging#patching-software

 
 
 
 

linux patch 简单学习的更多相关文章

  1. WSL Windows subsytem linux 的简单学习与使用

    1. win10 1709 以上的版本应该都增加上了 ctrl +r 运行 winver 查看版本 2. 添加删除程序 增加 wsl 增加一个功能 3. 打开cmd 输入 bash 即可 4. 可以将 ...

  2. Linux——软件包简单学习笔记

    Linux中的是那种软件包:  (这里学习是基于redHat的Cent-OS) 1: 二进制软件包管理(RPM.YUM) 2:源代码包安装 3: 脚本安装(Shell或Java脚本) 一: 二进制软件 ...

  3. Linux 基本命令简单学习

    平常工作中需要使用到的一些Linux基本命令,简单记录: 通过订单号查看日志:   cat /---/---/xxxx20190908.log | grep C52918588112261 -C 5 ...

  4. Linux——shell简单学习(二)

    流控制语句: for…done语句 格式:for  变量   in   名字表 do  命令列表 done 例子: #!/bin/sh for DAY in Sunday Monday Tuesday ...

  5. Linux——GRUB简单学习笔记

    GRUB的配置文件默认为  :/boot/grub/grub.conf # ls -l /etc/grub.conf GRUB配置选项: default定义缺省启动系统 timeout定义缺省等待时间 ...

  6. linux IPC简单学习

    Posix和system v区别 所谓的IPC(进程间通信)指的是消息队列,共享内存,信号量3种机制合并起来,当然,这是个狭义的概念,只包含这三种.IPC又可以分为system v进程间通信和posi ...

  7. Linux——shell简单学习(一)

    首先来一个小程序,来查看所在目录,以及该目录下的文件 #!/bin/sh # “#!”指定用sh执行shell脚本 #this is to show workstation # “#” 表示注释 ec ...

  8. Linux yum的配置 , python环境管理, nginx搭建简单学习

    Linux yum的配置 , python环境管理, nginx搭建简单学习 一丶配置yum的数据仓库 ### yum 工具, 方便,自行解决软件之间的依赖关系. # 配置yum源仓库 (可以使用,清 ...

  9. Linux——帮助命令简单学习笔记

    Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...

随机推荐

  1. python自动化测试之appium环境安装

    1.安装client pip install Appium-Python-Clinet  若有两个版本的python则使用(python3 -m pip install Appium-Python-C ...

  2. MVC学习笔记(四)---使用linq多表联查(SQL)

    1.数据库原型(Students表中的ID和Scores表中的StudentID是对应的) 2.实现效果:查询出每个学生各个科目的成绩(用的是MVC学习笔记(三)—用EF向数据库中添加数据的架构) C ...

  3. Matlab代码优化之道

    一. 遵守Performance Acceleration的规则 关于什么是“Performance Acceleration”请参阅matlab的帮助文件.1.只有使用以下数据类型,matlab才会 ...

  4. 财政FINAUNCE英文FINAUNCE金融

    中文名金融 外文名Finance.Finaunce 概括为货币的发行与回笼 从事金融机构有银行.信托投资公司 目录 1 基本定义 2 关于概念 ? 概念新解 ? 概念现状 ? 熊德平新解 3 金融特征 ...

  5. springboot feign too many bytes written executing POST

    解決办法: pom添加: <dependency><groupId>io.github.openfeign</groupId><artifactId>f ...

  6. 【RAC】 RAC For W2K8R2 安装--总体规划 (一)

    [RAC] RAC For W2K8R2 安装--总体规划 (一) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一 ...

  7. 身份证验证PHP类

    PHP根据身份证号,自动获取对应的星座函数,然后自动返回对应的星座,自动返回性别,判断是否成年 <?php class IdcardAction extends Action{ // PHP根据 ...

  8. Java开发环境之JDK

    查看更多Java开发环境配置,请点击<Java开发环境配置大全> 零章:JDK安装教程 1)下载JDK安装包 http://www.oracle.com/technetwork/java/ ...

  9. Upgrade Windows Server 2016 to Windows Server 2019

    Pre-Upgrade Upgrade path: Windows Server 2016 can be upgraded to Windows 2019 in a single upgrade pr ...

  10. XAMPP + PhpStorm + Xdebug本地实验环境搭建

    参考: 下载合适的XDebug 点击这里,选择合适xdebug XAMPP配置 php_xdebug-xxxx.dll 拷贝dll至 D:\XAMPP\php\ext php.ini 文末追加 [XD ...