linux patch 简单学习
使用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 也有类似的功能
参考资料
linux patch 简单学习的更多相关文章
- WSL Windows subsytem linux 的简单学习与使用
1. win10 1709 以上的版本应该都增加上了 ctrl +r 运行 winver 查看版本 2. 添加删除程序 增加 wsl 增加一个功能 3. 打开cmd 输入 bash 即可 4. 可以将 ...
- Linux——软件包简单学习笔记
Linux中的是那种软件包: (这里学习是基于redHat的Cent-OS) 1: 二进制软件包管理(RPM.YUM) 2:源代码包安装 3: 脚本安装(Shell或Java脚本) 一: 二进制软件 ...
- Linux 基本命令简单学习
平常工作中需要使用到的一些Linux基本命令,简单记录: 通过订单号查看日志: cat /---/---/xxxx20190908.log | grep C52918588112261 -C 5 ...
- Linux——shell简单学习(二)
流控制语句: for…done语句 格式:for 变量 in 名字表 do 命令列表 done 例子: #!/bin/sh for DAY in Sunday Monday Tuesday ...
- Linux——GRUB简单学习笔记
GRUB的配置文件默认为 :/boot/grub/grub.conf # ls -l /etc/grub.conf GRUB配置选项: default定义缺省启动系统 timeout定义缺省等待时间 ...
- linux IPC简单学习
Posix和system v区别 所谓的IPC(进程间通信)指的是消息队列,共享内存,信号量3种机制合并起来,当然,这是个狭义的概念,只包含这三种.IPC又可以分为system v进程间通信和posi ...
- Linux——shell简单学习(一)
首先来一个小程序,来查看所在目录,以及该目录下的文件 #!/bin/sh # “#!”指定用sh执行shell脚本 #this is to show workstation # “#” 表示注释 ec ...
- Linux yum的配置 , python环境管理, nginx搭建简单学习
Linux yum的配置 , python环境管理, nginx搭建简单学习 一丶配置yum的数据仓库 ### yum 工具, 方便,自行解决软件之间的依赖关系. # 配置yum源仓库 (可以使用,清 ...
- Linux——帮助命令简单学习笔记
Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...
随机推荐
- pytest_assert断言
前言 断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了.什么是断言呢? 简单来讲就是实际结果和期望结果去对比,符合预期那就测试pass,不符合预期那就测试 failed ...
- 24H玩转 Grafana 被工程师称相当专业,如何做到?
国庆假期发生了两件小事,其一是我默默度过 35 周岁生日,其二是玩了下grafana `并在节后第一天被工程师 M 称赞:相当专业. 1.我为什么要玩 grafana 呢? 数月前我提交了一份数据后台 ...
- Jquery+CSS实现遮罩效果
JavaScript: (function ($) { $.fn.ShowMask = function (options) { var defaults = { top: 150, left: 20 ...
- Java实现树的遍历以及打印(递归,非递归)
import java.util.LinkedList; import java.util.Stack; public class BinarySearchTree1<E extends Com ...
- 【开发笔记】- 转义html特殊字符
package com.juihai.util; import org.apache.commons.lang.StringUtils; import org.springframework.web. ...
- oracle 数据库导入导出语句
oracle的exp/imp命令用于实现对数据库的导出/导入操作;exp命令用于把数据从远程数据库服务器导到本地,生成.dmp文件;imp命令用于把本地的数据库.dmp文件从本地导入到远程的oracl ...
- k8s维护常用命令
k8s维护 1. 不可调度 kubectl cordon k8s-node-1 kubectl uncordon k8s-node-1 #取消 2.驱逐已经运行的业务容器 kubectl drain ...
- python 中json和字符串互相转换
string =" { "status": "error", "messages": ["Could not f ...
- OAuth 2.0 的一个简单解释
OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取用户数据. 这个标准比较抽象,使用了很多术语,初学者不容易理解.其实说起来并不复杂,下面我就通过一个简单的类比,帮助大家轻松理解,O ...
- oracle 11g导出少了空表,原因分析
oracle 11g导出少了空表 使用exp命令的时候,会出现少表的情况,是因为在11g版本中如果一个表里面是空的,为了节省空间,默认是不会给这个表分配空间的,在导出的时候也就不会将空表导出的,自然导 ...