linux,打补丁问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 02:37:17
我是2.6.28的内核,下载了patch-2.6.28.4-lttng-0.88.tar.gz的补丁,在打补丁的时候,我输入命令gunzip -c xxxxxx.gz | patch -p1时出现了类似--------------------------
|diff --git a/.mailmap b/.mailmap
|index dfab12f..97f7b4f 100644
|--- a/.mailmap
|+++ b/.mailmap
--------------------------
File to patch: 的问题
我输入了上面提到的文件(有路径和没有路径的我各输入了一次),可是提示没有该文件,并提示是否skip。像这样的询问的个数是patch-2.6.28.4-lttng-0.88.tar.gz中文件的个数,请问我是出了什么问题呢?谢谢

-p 的参数有错误,打补丁是需要结合目录层数配套的。这个参数的作用是忽略几层目录去寻找这个文件。而且这个参数和你当前目录也有关系。有的补丁前几层都是错的,所以必须进入到源代码的几个目录里面才能正确打上补丁。有的 -px 忽略几层目录就行了,有的必须两个配合。

并不是所有的 patch 都可以直接 -p1 来补的。
具体的可以看 patch 内容,里面写着文件名和目录,结合当前的目录就能推算出用什么 -p ,和在哪个目录里面去打补丁。