【问题标题】:how to get linux patch util to use env var in patch file如何让 linux patch util 在补丁文件中使用 env var
【发布时间】:2016-04-18 09:42:28
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: linux git patch rpm


    【解决方案1】:

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

    patch <<EOF
    index 3eb3efd..1feae45 100644
    --- a/cli/common.py
    +++ b/cli/common.py
    @@ -72,8 +72,12 @@
    
    +++  - {'OLDPATH': 'NEWPATH/%{ENVVAR}}'
    EOF
    

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

    进一步阅读:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 2011-04-14
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多