如何让linux patch util在补丁文件中使用env var

时间:2016-04-18 09:42:28

标签: linux git patch rpm

我正在使用omnibus来构建一个cli包,我在其中使用了一个补丁,用于向文件中注入一些东西。 补丁本身就是一个git diff。 我想将环境变量用作内容的一部分。 类似的东西:

diff --git a/cli/common.py b/cli/common.py
index 3eb3efd..1feae45 100644
--- a/cli/common.py
+++ b/cli/common.py
@@ -72,8 +72,12 @@

+++  - {'OLDPATH': 'NEWPATH/%{ENVVAR}}'

这是我们使用rpm构建时使用的语法。 它似乎不再起作用,我确信ENVVAR已设置,因为它已成功用于打包器脚本的其他部分。

谢谢!

1 个答案:

答案 0 :(得分:0)

patch程序对RPM变量一无所知。您可以在RPM规范文件中使用diff-file作为here-document运行patch,它将尝试替换脚本中的值。它可能看起来像这样:

patch <<EOF
index 3eb3efd..1feae45 100644
--- a/cli/common.py
+++ b/cli/common.py
@@ -72,8 +72,12 @@

+++  - {'OLDPATH': 'NEWPATH/%{ENVVAR}}'
EOF

RPM只会在其scriptlet中替换变量,而不是在单独的文件中。

进一步阅读: