搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
很楠不爱3
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
ERROR: Attempting to operate on hdfs journalnode as rootERROR: but there is no HDFS_JOURNALNODE_USE
2
ALS爱立思 安装及使用教程_als爱立思官网
3
基于javaweb的学生管理系统_通过javaweb实现学生管理系统
4
【Linux】学习之yum,vim,gcc/g++,gdb,make/Makefile等工具_yum make
5
蓝易云 - 在Ubuntu下,postman出现gpu-disable错误的解决方式
6
Web前端面试问项目难点,推荐21个顶级的Vue UI库! – TalkingData,怒肝三个月啃完这110道面试题_vue 推荐 ui
7
2024年软件测试最新最佳的10款App安全测试工具_安全测试技术和工具,2024年最新熬夜整理2024最新软件测试高级笔试题
8
大数据环境-Hadoop-hdfs内存不足_hadoop磁盘空间不足
9
用数组实现栈_栈 数组实现
10
Linux:进程地址空间、进程控制(一.进程创建、进程终止、进程等待)
当前位置:
article
> 正文
Linux内核补丁与patch/diff使用详解_linux内核 patch下载
作者:很楠不爱3 | 2024-05-29 07:23:30
赞
踩
linux内核 patch下载
转发自:http://blog.chinaunix.net/uid-7295895-id-2230796.html
注意下述内容部分不能应用到3.x系列内核。
一、Linux内核版本类型及patch简介:
1) 2.6.x为基础版本,patch位置:
http://www.kernel.org/pub/linux/kernel/v2.6/
2) 2.6.x.y为2.6.x基础版本之上派生出来的修正版本,称为-stable内核版本,patch位置:
http://www.kernel.org/pub/linux/kernel/v2.6/
3) 2.6.x.rcN(
Release Candidate
)内核,是在2.6.(x-1)之上派生出来的之后版本的侯选版本;此种内核
不稳定,发布的时候表示可以用来测试了;
例如对2.6.21加了新功能后派生出2.6.22-rc1,patch位置:
http://www.kernel.org/pub/linux/kernel/v2.6/testing/
4) git内核是每日内核树的快照,此类型比rc内核更不稳定,从基础版本或rc版本派生出来;
例如2.6.26-git1,2.6.26-rc9-git2,patch位置:
http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/
5) mm内核是专门针对内核的mm模块维护的版本,类似于git版本从基础版本或rc版本派生出来;
例如2.6.21-mm2, 2.6.21-rc2-mm1,patch位置:
http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/
不同类型内核的patch名称在前面加上“patch-”(mm内核除外,直接用的版本号),例如:patch-2.6.21, patch-2.6.21.7, patch-2.6.26-git1, patch-2.6.26-rc9-git2, 2.6.21-mm2, 2.6.21-rc2-mm1
二、内核补丁类型
1) 增量补丁
同一类型的版本的补丁是用本版本对相邻的前一个版本制作的。
例如,patch-2.6.21是对2.6.20做的补丁,patch-2.6.22是对2.6.21做的补丁,这就是增量补丁。
2.6.x基础版本内核,采用的是增量补丁。
2) 非增量补丁
也增量补丁相反,是基本某一固定版本制作的补丁,而非相邻的前一个版本。
例如,patch-2.6.21.3是2.6.21.3版本相对于2.6.21基础版本做的补丁,patch-2.6.21.4是2.6.21.4版本相对于2.6.21基础版本做的补丁,也就是说2.6.21.4与2.6.21.3之前没有补丁可用。
rc内核,git内核和mm内核都是非增量补丁,都是相对于当前基础版本或rc版本制作出来的补丁。
另外,对于rc内核,git内核,相应的patch目录下面有inc目录中,包含有增量补丁。
三、使用patch命令为内核补丁
1.现有基础内核版本2.6.21,想转成2.6.21.7内核stable版本,应该怎么办?
a) 去
http://www.kernel.org/pub/linux/kernel/v2.6/
下载patch-2.6.21.7;
b) Linux shell下面,cd到2.6.21内核源文件根目录(linux-2.6.21),将patch-2.6.21.7也放在本目
录(命令执行的当前止录),执行patch命令::patch -p1 < patch-2.6.21.7
(p1的意思是忽略patch文件(即diff文件)内容中的第一个路径)
c) 打完补丁后,即变成了2.6.21.7的内核了,如果想回退至2.6.21基础版本,执行如下命令即可:
patch -R -p1 < patch-2.6.21.7
(-R的参数意思表示回退这个patch)
2.现有基础内核版本2.6.21,想转成2.6.23.1内核stable版本,应该怎么办?
a) 同1中下载patch-2.6.22, patch-2.6.23, patch-2.6.23.1文件,并设置执行路径和环境;
b) patch -p1 < patch-2.6.22 变成了2.6.22
patch -p1 < patch-2.6.23 变成了2.6.23
patch -p1 < patch-2.6.23.1 变成了2.6.23.1
c) 回退操作
patch -R -p1 < patch-2.6.23.1 变成了2.6.23
patch -R -p1 < patch-2.6.23 变成了2.6.22
patch -R -p1 < patch-2.6.22 变成了2.6.21
3.现有基础内核版本2.6.21-git2,想转成2.6.22-rc1-mm2内核stable版本,应该怎么办?
a) 同1中下载patch-2.6.21-git2, patch-2.6.22-rc1, 2.6.22-rc1-mm2文件,
并设置执行路径和环境;
b) patch -R -p1 < patch-2.6.21-git2 变成了2.6.21
patch -p1 < patch-2.6.22-rc1 变成了2.6.22-rc1
patch -p1 < 2.6.22-rc1-mm2 变成了2.6.22-rc1-mm2
c) 回退操作
patch -R -p1 < 2.6.22-rc1-mm2 变成了2.6.22-rc1
patch -R -p1 < patch-2.6.22-rc1 变成了2.6.21
patch -p1 < patch-2.6.21-git2 变成了2.6.21-git2
到这里应该明白了内核打补丁是怎么一回事儿了吧,就这么简单。
四、使用patch和diff动手制作补丁
1.diff命令制作单个patch
diff -uN src dst > src2dst.patch
我们的patch制作完毕了,原来patch实际上就是diff生成的内容,简单吧。
patch -p0 < src2dst.patch 将src文件打补丁变成dst文件
(注:因为diff命令生成的内容的路径是当前路径,因此-p0表示不去除路径)
自己实际操作一下就明白了。
2.diff命令制作多个patch - patch合并
a) 方法一
对多个文件依次使用diff命令生成多个patch,然后将这些patch合并成一个patch文件即可(如使用重
定向,对于patch1和patch2:echo patch1 > patch1patch2;echo patch2 >> patch1patch2);
b) 方法二
对文件夹的diff命令:diff -uNr srcDir dstDir > all.patch
五、总结
diff -urN src dst > patch 生成patch
patch -p[0-n] -s < patch 使用patch,-s参数即silent,表示终端无信息输出
patch -Rp[0-n] < patch 回退patch
patch -p[0-n] --dry-run < patch 只显示运行结果,不实际生效
另外,当patch命令检测到冲突时会弹出提示,还会生成一些.rej文件,可查看.rej文件来手动修改。
日常的学习或工作中,使用diff+patch可以提升重复合代码的效率。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/很楠不爱3/article/detail/641150
推荐阅读
article
【论文阅读】14-
Accurate
Multiple
View
3D Reconstruction ...
【论文阅读】14-
Accurate
Multiple
View
3D Reconstruction Using Patc...
赞
踩
article
基于置信度
的
深度图
融合来稠密
点云
:
Accurate
Multiple
View
3D Reconst...
openMVS中,稠密
点云
的
方法采用
的
是
深度图
融合,该方法分为四个步骤进行。stereo pair selection,...
赞
踩
article
【保姆级教程】
Windows
远程登陆
Linux
服务器
的两种方式:
SSH
+ VS
Code
,开...
无论是通过
SSH
命令行还是VS
Code
,都能实现
Windows
系统下对
Linux
服务器
的远程连接和开发。选择哪种方法取...
赞
踩
article
三分钟上手
安全
渗透
系统
Kali
Linux
...
kali linux
系统
集成了常用的
安全
渗透工具,省去了安装工具的时间,做
安全
相关的工作是非常推荐使用的。三分钟上手
安全
...
赞
踩
article
Linux
文件系统
ext4
、
xfs
等详解_
xfs
和
ex4...
本文旨在对
Linux
系统中两种常用的
文件系统
——
ext4
和
XFS进行详细的解析
和
比较。文章首先介绍了
Linux
文件系统
的...
赞
踩
article
线程
池
【
Linux
】_
linux
线程
池
...
1. 引入2. 应用3. 实现封装
线程
封装
线程
池
线程
函数生产消费逻辑互斥锁条件变量
线程
函数主
线程
测试14. 优化5. 日...
赞
踩
article
安装
android
studio
后配置
gradle
文件
(
linux
+
windows
)_
linux
a...
Ubuntu下安装AndroidStudio通过官网下载tar.gz
文件
:解压至任意目录即可使用命令打开:./start...
赞
踩
article
Windows
和
Linux
下的
Gradle
配置
_
gradle
linux...
本文介绍了在
Windows
和
Linux
下
配置
Gradle
的步骤,包括安装Java环境和下载安装包。对于
Windows
环境...
赞
踩
article
Azkaban
【环境搭建 01】
Linux
环境
CentOS
Linux
release
7.5.1...
Azkaban
【环境搭建 01】
Linux
环境
CentOS
Linux
release
7.5.1804
安装
配置azk...
赞
踩
article
Golang
起步篇(
Windows
、
Linux
、mac三种系统安装
配置
go
环境
以及
IDE
推荐以及入门...
Golang
起步篇(
Windows
、
Linux
、mac三种系统安装
配置
go
环境
以及
IDE
推荐以及入门语法详细释义)_
go
...
赞
踩
article
Linux
ubuntu
安装搭建
DooTask
_
dootask
离线部署...
GitHub地址:https://github.com/kuaifan/
dootask
/blob/master/READ...
赞
踩
article
【
Linux
】---
Linux
编译器
-
gcc
/g
++
、调试器-
gdb
、项目自动化构建工具-
make
...
Linux
编译器
-
gcc
/g
++
、调试器-
gdb
、项目自动化构建工具-
make
/
Makefile
使用_
gdb
编译器
gd...
赞
踩
article
Linux
——
网络
套
接字
1
|
socket
编程_
套
接字
0
套
接字
1
...
IP地址(公网IP),标定了主机的唯一性。通常情况,把数据送到对方的机器是目的吗?不是的,真正的
网络
通信过程其实是进程间...
赞
踩
article
【Linux】
升级
openssl
版本
_
linux
升级
openssl
版本
...
为什么要
升级
openssl
版本
,一是解决旧的OpenSSL
版本
可能会存在一些安全漏洞。这些漏洞可能会被黑客利用,对系统和...
赞
踩
article
Linux
/
Windows
下部署
OpenCV
环境(Java/
SpringBoot
/IDEA)_spr...
本文基于
Linux
(CentOS 7)、
SpringBoot
部署运行
OpenCV
4.5.5,并顺带记录
Windows
/...
赞
踩
article
Linux
环境搭建
OpenCV
运行
java
-
cv
代码_
java
open
cv
linux
...
Linux
环境运行
java
cv
代码_
java
open
cv
linux
java
open
cv
linux
...
赞
踩
article
OPENCV
源码
编译
生成
java
依赖及遇到问题(linux,
mac
,
win10
)_
opencv
编译
j...
源码版本:GitHub -
opencv
/
opencv
at 4.5.5一、MAC系统下
编译
mac
版本:
mac
OS Bi...
赞
踩
article
java
在
linux
下编译使用
opencv
_
java
opencv
linux
...
java
opencv
_
java
opencv
linux
java
opencv
linux
说...
赞
踩
article
java
linux
opencv
,
OpenCV
for
Java
On
linux
学习笔记...
8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?环境配置下载并安装
Java
JDK下载安装E...
赞
踩
article
OpenCV
linux
安装
及
java
项目运行需要的依赖和配置_
linux
安装
opencv
...
1.2.将文件
opencv
_contrib 文件夹放入
opencv
文件夹上传到
linux
服务器中注意:需要配置好...
赞
踩
相关标签
计算机视觉
mvs
服务器
windows
linux
网络
web安全
网络安全
黑客
安全
学习
Kali Linux
运维
Linux
文件系统
xfs
ext4
生产消费模型
单例模式
android studio
gradle
sdk
idea
自动化
azkaban