免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3884 | 回复: 11

[讨论]内核打补丁方法 [复制链接]

论坛徽章:
0
发表于 2006-01-19 16:10 |显示全部楼层
升级内核免不了要打补丁,方法也不尽相同.网上不少文章有如下用法,对此我抱怀疑态度
bunzip2 -dv /download/patch-2.6.10-bk4.bz2 |patch -p1
输出:bunzip2 :done
当这条命令输完,任务也就完成了,没这么快吧?
再看/download/patch-2.6.10-bk4.bz2 所在目录,
patch-2.6.10-bk4.bz2 被解压了,其他什么也没做!

其他方法:
patch -p0 <  /download/patch-2.6.10-bk4 或
patch -p0  -i /download/patch-2.6.10-bk4  
我认为这样才是真的在做patch
patch -R //对new和old文件通通应用patch
      -N //忽略反向的或已经应用的补丁
      -f  //不回答[y/n],假定不选择-R
      -t //不回答[y/n],假定选择-R
例:让它自动完成patch -tp0 < patch-file  

对此有其他见解的也请贴出来,大家评评!

论坛徽章:
0
发表于 2006-01-19 17:08 |显示全部楼层
偶現在想知道怎麼1次打多個補丁

论坛徽章:
0
发表于 2006-01-20 10:03 |显示全部楼层

回复 2楼 albcamus 的帖子

应该是-dc,不是-dv

bzip2 -dc /download/patch-2.6.10-bk4.bz2 |patch -p1
一次打多个,
bzip2 -dc /download/patch-*.bz2 |patch -p1
但要求patch-*.bz2的字母排列顺序和补丁顺序是一样的.

论坛徽章:
0
发表于 2006-01-20 10:55 |显示全部楼层
试验了一下
bunzip2 -dv /download/patch-2.6.10-bk4.bz2 |patch -p1
diff linux-2.6.10 ~/linux-2.6.10 还是没有打入补丁

论坛徽章:
0
发表于 2006-01-20 11:04 |显示全部楼层
原帖由 wheelz 于 2006-1-20 10:03 发表
应该是-dc,不是-dv

bzip2 -dc /download/patch-2.6.10-bk4.bz2 |patch -p1
一次打多个,
bzip2 -dc /download/patch-*.bz2 |patch -p1
但要求patch-*.bz2的字母排列顺序和补丁顺序是一样的.


老大, 这个“补丁顺序”一般是补丁发布者给的吗? 我上回下了nlkd的补丁, 打上之后发现它依赖kdb, 而用vi打开, 只看到开头这样:
diff -Npru /home/jbeulich/tmp/linux-2.6.14/Makefile 2.6.14/Makefile
--- /home/jbeulich/tmp/linux-2.6.14/Makefile        2005-10-28 02:02:08.000000000 +0200
+++ 2.6.14/Makefile        2005-11-04 15:05:23.000000000 +0100

也不知道依赖哪个版本的kdb, 先打nlkd还是先打kdb , 几种可能性反复实验, 还是编译时没一次成功

论坛徽章:
0
发表于 2006-01-20 20:00 |显示全部楼层

回复 5楼 albcamus 的帖子

不同补丁的依赖关系好象只能事先知道吧?

论坛徽章:
0
发表于 2006-01-20 20:05 |显示全部楼层
原帖由 wheelz 于 2006-1-20 20:00 发表
不同补丁的依赖关系好象只能事先知道吧?


知道了, 謝謝

论坛徽章:
0
发表于 2006-01-21 09:08 |显示全部楼层
同时打多个patch,很有可能会导致冲突,每个patch against某个特定的版本,所以一个可行的办法之一是先对所有patch作一些操作,合并成一个patch。

你可以借助以下工具,
wiggle: 在有冲突时打patch
quilt: 操作多个patch
patchutils: 一个操作patch的工具集

不过上面工具我都没有用过,

我个人认为,要解决patch冲突问题,只能读懂你要打的patch,否则内核很可能不正确。

论坛徽章:
0
发表于 2006-01-21 17:39 |显示全部楼层
谢谢wheelz和xiaozhaoz二位大侠

论坛徽章:
0
发表于 2006-01-21 19:26 |显示全部楼层
原帖由 albcamus 于 2006-1-19 17:08 发表
偶現在想知道怎麼1次打多個補丁

当需要多个补丁,而不知道顺序的时候,我一般用肉眼比较目标文件和 diff 补丁文件,然后根据实际情况手动更改(因为有可能有冲突,有可能位置不对,也有可能有交叉情况),待成功后,自己再利用 diff 工具做出一个新的 patch-xxx.diff 文件保存
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

基于案例的 SQL 优化实战训练营

讲师:中电福富特级专家梁敬彬,参与本次课程培训,你将收获:
1. 能编写出较为高效的 SQL;
2. 能解决70%以上的数据库常见优化问题;
3. 能得到老师提供的高效的相关工具和解决方案;
4. 能举一反三,收获不仅仅是 SQL 优化。
现在购票享受8.8折优惠!
----------------------------------------
优惠时间:2019年3月20日前

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP