无法应用补丁

无法应用补丁

我已经解压了源代码efivar-0.23.tar.gz并尝试应用以下补丁:http://patchwork.openembedded.org/patch/117073/才能够编译它。

我已经进入解压后的目录,并发出以下命令:patch -Np1 ../efivar.patch,但什么也没发生。它只是等待(就像在做某事,但什么也没有发生)。

如何应用此补丁?我在网上浏览了不同的文章,但结果似乎是一样的。

答案1

patch命令需要 Patch stdin。因此,请将补丁导入命令中:

patch -Np1 < ../efivar.patch

或者用参数指定输入文件-i

patch -Np1 -i ../efivar.patch

如您所见,第一个 diff 来自文件a/meta-oe/recipes-extended/efivar/efivar/0001-efivar-fix-for-cross-compile.patch。让我们假设实际的相对文件路径efivar/0001-efivar-fix-for-cross-compile.patch来自您当前的工作目录。然后您必须告诉它忽略前 4 个目录级别,以便它可以找到要修补的文件。您可以通过说而不是patch来做到这一点。p4p1

答案2

或者,由于有问题的补丁是使用 Git 创建的,因此您可以使用 Git 来应用它:

curl patchwork.openembedded.org/patch/117073/mbox/ | git am

或者:

curl patchwork.openembedded.org/patch/117073/raw/ | git apply

补丁在 Git 中如何工作?

相关内容