转自;http://www.360doc.com/content/13/0323/23/8363527_273525975.shtml

之前在公司做项目的时候用到了在linux打补丁的技术(呵呵,其实也不是什么技术说大了就是一条命令),感觉这个还是挺有用的,因为很多原厂都是给出源码基础或是他们修改基础上的补丁包都我们,让我们自己打上去来更新一些代码的功能的。

一、打补丁最需要注意有以下两点:

1、要打补丁的文件必须是未做任何修改的(这个可以打开补丁文件看一下删除的文件的日期是否和我们要打补丁的文件一样就可以了)。我之前就是因为修改了厂商给的源码所以打补丁的时间打不进去,会出错,后来找资料才明白不能改打补丁前的文件。

2、还有一个就是有的补丁要一个一个的打,那是补丁做成这样的,一般厂商给说明是否需要一个一个的打,还直接打最后一个版本的就OK了,但我认为一个一个的打的补丁要严谨些,因为它的每一个补丁表示了一次功能性的修改,这样每次都可以验证补丁的正确性了。

二、生成补丁(针对于发布补丁文件的人)

命令: diff -Naur 路径1/file_old文件   路径2/file_new文件 > xxx.patch文件

注:xxx.patch文件就是新旧文件生成的补丁文件,路径2最好是修改文件的当前路径这样打补丁的时候就把补丁文件放到要打补丁文件所在目录下一起打,file_new文件最好保存下来以便打补丁者打不上或者打错的时间对比下那里没有打上。

三、打补丁(针对于打补丁的人)

命令: patch -bp1 < xxx.patch

注:把xxx.patch和要打补丁的文件放到一起到要打补丁文件 目录下执行上述命令会把补丁打进去更新现有文件,由于加入了参数-b所以还有生成一个.org后缀的文件它是打补丁前的源文件,确定打好了可以删除之。

四、撤销打的补丁(针对打补丁的人)

命令: patch -Rp1 < xxx.patch

注:执行它也是在打完xxx.patch的补丁的文件的基础上执行。

linux下打补丁和生成补丁相关推荐

  1. linux下安装navicat并生成桌面图标

    linux下安装navicat并生成桌面图标 下载客户端 下载连接 http://www.navicat.com.cn/dow... 从navicat官网下载试用客户端即可 下载ico http:// ...

  2. Linux下Makefile的automake生成全攻略(转)

    Linux下Makefile的automake生成全攻略(转)[@more@] 文/余涛 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便 ...

  3. java调用c 生成so,Java在linux下调用C/C++生成的so文件

    Java在linux下调用C/C++生成的so文件 1. CplusUtil.java是java web工程中的一个工具类 内容如下: CplusUtil.java package cn.undone ...

  4. linux生成缩略图,linux下使用imagemagick批量生成缩略图的python脚本

    linux下使用imagemagick批量生成缩略图的python脚本.程序用了递归,可以查找目录下所有的图片按照一定的规则生成指定宽度的缩略图. #!/usr/bin/env python # -* ...

  5. Linux下利用protoc命令生成protobuf的头文件和源文件,根据mesType.proto文件

    Linux下利用protoc命令生成protobuf的头文件和源文件,根据mesType.proto文件 protobuf的message文件为 msgType.proto 生成c++头文件和源文件的 ...

  6. linux下diff、patch制作补丁

    http://blog.csdn.net/goldfighter/article/details/6150309 学习资料的收集比较简单,方法一类似于这种初级问题网上资料非常丰富,google或者ba ...

  7. Linux下三个密码生成工具

    http://code.csdn.net/news/2820879 想出一个难破解且容易记的密码对不是一件简单的事情.在我为电脑设定一个新密码,或者在线注册了一个新的账号,需要输入密码的时候,脑袋就一 ...

  8. Linux下Makefile的automake生成全攻略--转

    http://www.yesky.com/120/1865620.shtml 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下 ...

  9. Linux下Makefile的automake生成全攻略

    From: http://fanqiang.chinaunix.net/system/linux/2005-12-14/3926.shtml 作为Linux下的程序开发人员,大家一定都遇到过Makef ...

最新文章

  1. NVME CLI -- nvme 命令查看NVME设备内部状态
  2. Git 远程分支的pull与push
  3. CPlus的简单线程的制作
  4. C#中将list进行二进制序列化并保存数据到文件
  5. VTK:AnimateActors用法实战
  6. Visual Studio Online 的 FAQ:iPad 支持、自托管环境、Azure 账号等
  7. python必须下载到c盘吗_python为什么要安装到c盘
  8. jQuery-$(document).ready和$(window).load有什么区别?
  9. 51nod-1445-变色DNA(最短路)
  10. 【图像修复】基于matlab GUI三维图像复原【含Matlab源码 963期】
  11. 基于TI CC2540汽车检测蓝牙4.0 BLE方案
  12. 关于神舟笔记本电脑结束睡眠后耳机没声音的解决方法
  13. DAVIS: Densely Annotated VIdeo Segmentation
  14. 编个故事,骗700元的稿费真容易啊!
  15. laragon mysql版本_laragon 使用(php版本升级切换)
  16. Android 关于RemoteViews的理解(一)
  17. mysql怎么登录_mysql怎么登录
  18. Oracle课表查询系统,Oracle SQL基础练习(一)(学生表-课程表-选课表)
  19. 线程局部变量 ThreadLocal
  20. 论文阅读:Self-supervised video representation learning with space-time cubic puzzles

热门文章

  1. 【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )
  2. 补码乘法运算(计算机组成原理18)
  3. java: Annotation processing is not supported for module cycles. Please ensure that all modules from
  4. PE格式详细讲解2 - 系统篇02
  5. MySQL学习笔记1:数据库概述(尚硅谷)
  6. haproxy负载均衡+pcs高可用+fence
  7. .net framework 4.5 未指定的错误
  8. C语言数据结构——遍历二叉树
  9. Android的swift语言Kotlin中文开发文档
  10. xenserver通过xencenter登陆后,虚拟机console页面空白问题解决