Linux 制作补丁 打补丁 撤销补丁
1、制作补丁
diff - 逐行比较文件
格式
diff 参数 旧文件/旧文件夹 新文件/新文件夹
-N 将不存在的文件看作是空的
-a 将所有文件都视为文本文件
-u 以合并的方式来显示文件内容的不同
-r 以递归地方式比较所有子目录
// 比较Test2在Test1版本上的更新并输出
diff -Naru Test1 Test2
// 比较Test2在Test1版本上的更新并输出到文件diff.patch
diff -Naru Test1 Test2 > diff.patch
aaron@build:~/test$ cat .c abcdefg
hijklmn
opq
rst
uvw
xyz aaron@build:~/test$ cat .c abcdefg
ABCDEFG
hijklmn
oq
rst
UVW
xyz aaron@build:~/test$ diff -Naru .c .c
--- .c -- ::03.687450043 -
+++ .c -- ::19.867441496 -
@@ -, +, @@ - //删除此行
+ //增加此行,等于将67890改为67908
abcdefg
+ABCDEFG //新增加
hijklmn
-opq
+oq
rst
-uvw
+UVW
xyz aaron@build:~/test$ diff -Naru .c .c > diff.patch aaron@build:~/test$ ls
.c .c diff.patch aaron@build:~/test$ cat diff.patch
--- .c -- ::03.687450043 -
+++ .c -- ::19.867441496 -
@@ -, +, @@ -
+
abcdefg
+ABCDEFG
hijklmn
-opq
+oq
rst
-uvw
+UVW
xyz
2、打补丁
patch - 将一个diff文件应用到一个原始文件
格式
patch 参数 < 补丁
-b 备份原始文件,打补丁时,会复制或者重命名原始文件来备份
-R 撤销补丁
-p(num) 表示忽略num层路径
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
假设补丁头是上面一行
如果使用 -p0,就从 / 目录开始,也就是从 kernel 目录开始;
如果使用 -p1,就从 drivers 目录开始,也就是从 kernel/drivers 目录开始,忽略 kernel 当前目录下的差异文件;
以此类推。
// 将上面生成的补丁diff.patch打到1.c上,就和2.c相同
aaron@build:~/test$ cat .c abcdefg
hijklmn
opq
rst
uvw
xyz aaron@build:~/test$ patch -bp0 < diff.patch
patching file .c aaron@build:~/test$ cat .c abcdefg
ABCDEFG
hijklmn
oq
rst
UVW
xyz aaron@build:~/test$ ls
.c .c.orig .c diff.patch // 1.c.orig备份文件 aaron@build:~/test$ rm .c.orig // 确定打补丁成功后删除备份文件
3、撤销补丁
patch - 将一个diff文件应用到一个原始文件
格式
patch 参数 < 补丁
-R 撤销已打的补丁
// 将上一步打的补丁撤销,还原1.c的初始模样
aaron@build:~/test$ cat .c abcdefg
ABCDEFG
hijklmn
oq
rst
UVW
xyz aaron@build:~/test$ patch -Rp0 < diff.patch
patching file .c aaron@build:~/test$ cat .c abcdefg
hijklmn
opq
rst
uvw
xyz
Linux 制作补丁 打补丁 撤销补丁的更多相关文章
- Linux 补丁 的简单使用: 制作补丁,打补丁,撤销补丁
背景: 补丁的使用对于嵌入式开发人员来说,在维护或者开发中都比较方便. 制作补丁: diff - 逐行比较文件. 格式: diff 参数 旧文件/旧文件夹 新文件/新文件夹 (注意顺序 新旧文件夹 ...
- 在Linux下的找不同-打补丁
Q:为什么要找不同,为什么要打补丁? A: 在Linux应用中,作为DBA,我们知道MySQL跑在Linux系统之上,数据库最重要的追求就是性能,"稳"是重中之重,所以不能动不动就 ...
- weblogic补丁下载与安装补丁的方法
文章目录1.根据漏洞报告下载补丁2.补丁包上传解压到Linux3.关于OPatch4.安装补丁4.1单个补丁安装4.2查看已安装的补丁4.3多个补丁安装4.4单个补丁回滚4.5多个补丁回滚4.6验证补 ...
- linux制作RPM包
制作rpm包 1.制作流程1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制 ...
- python在linux制作图形界面(snack)
snack是一个用于在linux制作图形界面(GUI)的模块,该模块由c编写,而且redhat的系统都自带这个模块. 1.获取模块 虽然redhat系统会自带这个模块,但是直接去import snac ...
- win10 + linux 制作双系统教程(我本身是win10系统)
1.制作启动U盘 准备工作: .linux镜像 .硬盘空余空间>8G,越大越好 .制作启动U盘的软件 .最好3.0U盘一个>4G 下载启动软件的工具(UItraIOS制作的U盘启动盘无法安 ...
- linux vim vi编辑时撤销输入操作
linux vim vi编辑时撤销输入操作 1,esc退出输入状态 2,u 撤销上次操作 3,ctrl+r 恢复撤销
- diff生成补丁与patch打补丁
1.使用diff生成补丁: diff是Linux下的文件比较命令,参数这里就不说了,直接man一下就行了,不仅可以比较文件,也可以比较两个目录,并且可以将不同之处生成补丁文件,其实就是一种打补丁的命令 ...
- Win10 PC一周年更新正式版14393.447 32位/64位更新补丁KB3200970下载 Flash补丁Kb3202790下载
微软在今天凌晨推送了Win10 PC一周年更新正式版14393.447,本次更新补丁代号为KB3200970,面向Win10一周年更新正式版的PC用户. 更新日志 • 提升了多媒体音频.远程桌面以及I ...
随机推荐
- poj 1724 ROADS 很水的dfs
题意:给你N个城市和M条路和K块钱,每条路有话费,问你从1走到N的在K块钱内所能走的最短距离是多少 链接:http://poj.org/problem?id=1724 直接dfs搜一遍就是 代码: # ...
- 获取代理服务器ip列表的方法
开源项目:https://github.com/SpiderClub/haipproxy,看爬代理的网址列表应该是最多的. CRAWLER_TASKS = [ { 'name': 'mogumiao. ...
- 036——VUE中表单控件处理之动态绑定文章的属性的处理方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Git远程操作详解(新手必备)
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...
- New Concept English Two 33 94
$课文92 自找麻烦 1016. It must have been about two in the morning when I returned home. 我回到家时,肯定已是凌晨两点左右了 ...
- Spring报错: org.springframework.beans.factory.support.BeanDefinitionValidationException: Couldn't find an init method named 'init' on bean with name 'car'(待解答)
在Spring工程里,有一个Car类的bean,Main.java主程序,MyBeanPostProcessor.java是Bean后置处理器. 文件目录结构如下: Car.java package ...
- 手机通过笔记本开的WIFI访问TOMCAT服务器站点示例
我一直想用手机连上笔记本上的服务器TOMCAT,尝试了好久没连上,实验室一个妹子会这个技术,我也想学,自己摸索着学了几次,没成功,今晚想个办法试了一下,可以连接了,以后可以做手机网站开发了,这也是移动 ...
- Buildroot构建指南--Overview
使用Buildroot,让嵌入式Linux系统构建更加便捷.本文以Buildroot-2016.05的版本为基础来讲解,不同版本之间有细节差异,需要根据读者使用的版本自行调整. Buildroot是什 ...
- React-Native基础_4.View组件
View组件 对应ios 的UIView android 中的view 使用要先导入View import { View } from 'react-native'; 使用就是View标签,可以添加S ...
- 从JDK源码角度看Byte
Java的Byte类主要的作用就是对基本类型byte进行封装,提供了一些处理byte类型的方法,比如byte到String类型的转换方法或String类型到byte类型的转换方法,当然也包含与其他类型 ...