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



我正在使用omnibus构建一个cli包,其中我有一个补丁,用于将一些东西注入到文件中。补丁本身就是一个数字差异。我想使用环境变量作为内容的一部分。类似于:

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,因为它已成功用于打包程序脚本的其他部分。

谢谢!

patch程序对RPM变量一无所知。可以在RPM规范文件中使用diff文件作为here文档运行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中的变量,而不是单独的文件中的变量。

进一步阅读:

  • RPM安装脚本中的环境变量

最新更新