您的位置:首页 > 运维架构 > Linux

Linux中patch补丁命令

2016-02-25 22:33 453 查看
patch [-R] {-p(n)} [–dry-run] < patch_file_name

p:为path的缩写。

n:指将patch文件中的path第n条’/’及其左边部分取消。

-R:卸载patch包。

–dry-run:尝试patch软件,并不真正修改软件。

使用实例:/home/sense/patch-2.6.19.1
=============================================================
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
index d12fb97..c8f96cf 100644
--- a/arch/i386/kernel/acpi/boot.c
+++ b/arch/i386/kernel/acpi/boot.c
@@ -333,7 +333,7 @@ acpi_parse_ioapic(acpi_table_entry_heade
/*
* Parse Interrupt Source Override for the ACPI SCI
*/
-static void acpi_sci_ioapic_setup(u32 bus_irq, u32 gsi, u16 polarity, u16 trigger)
+static void acpi_sci_ioapic_setup(u32 gsi, u16 polarity, u16 trigger)
=============================================================


此patch文件的path=a/arch/i386/kernel/acpi(patch文件指示路径)

[sense@ssn src]pwd/usr/src[sense@ssnsrc] pwd
/usr/src
[sense@ssn src] tree

.

-- a
– arch

-- i386
– kernel

`– acpi

和a/同目录时:

[sense@ssn src]pwd/usr/src[sense@ssnsrc] pwd
/usr/src
[sense@ssn src] patch -p0 < /home/sense/patch-2.6.19.1 安装补丁

[sense@ssn src]patch−p0−R</home/sense/patch−2.6.19.1卸载补丁和a/arch/同目录时:[sense@ssnsrc] patch -p0 -R < /home/sense/patch-2.6.19.1 卸载补丁
和a/arch/同目录时:
[sense@ssn src] pwd

/usr/src/a/

[sense@ssn src]patch−p1</home/sense/patch−2.6.19.1安装补丁[sense@ssnsrc] patch -p1 < /home/sense/patch-2.6.19.1 安装补丁
[sense@ssn src] patch -p1 -R < /home/sense/patch-2.6.19.1 卸载补丁

和a/arch/i386/同目录时:

[sense@ssn src]pwd/usr/src/a/arch/[sense@ssnsrc] pwd
/usr/src/a/arch/
[sense@ssn src] patch -p2 < /home/sense/patch-2.6.19.1 安装补丁

[sense@ssn src]$ patch -p2 -R < /home/sense/patch-2.6.19.1 卸载补丁

小结:

-p后的数值与2个路径有关:

1. 当前所在路径;

2. patch文件首的打patch的源文件指示路径。

!!!与patch文件所在路径无关。

找到当前路径下的源码根目录,再与patch文件首打patch的源码目录进行比对,该目录名之前的目录个数就是-p后面的数值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: