【问题标题】:How to override CONFIG_SITE in a spec file (best practice)如何在规范文件中覆盖 CONFIG_SITE(最佳实践)
【发布时间】:2011-05-26 15:05:43
【问题描述】:

如果用户在运行 rpmbuild 时尝试从 specfile 构建 rpm,并且在环境中设置了 CONFIG_SITE,并且 specfile 使用“./configure --prefix=/usr && make”构建,那么用户在 CONFIG_SITE 中的设置可以完全破坏构建。 (作为一个具体的例子,假设 /usr/share/config.site 有“prefix=/bar”这一行。那么 spec 文件的文件清单将完全错误,rpmbuild 将失败。)

处理此问题的最佳做法是什么?似乎通常的做法是忽略它。我决定在规范文件中设置 CONFIG_SITE=true:

CONFIG_SITE=true ./configure --prefix=/usr ...

在调用 rpmbuild 时假设一个原始环境是否更常见,并且没有像在 /usr/share/config.site 中重置前缀这样的愚蠢行为?还是维护者负责确保规范文件将按预期构建 rpm?

【问题讨论】:

    标签: linux autoconf rpm rpm-spec


    【解决方案1】:

    我认为如果用户设置了一个愚蠢的config.site 文件,那是他们自己的错。除了这种方法之外,当然还有无数其他方法可以削弱系统。我不会担心的。我从未见过担心这个问题的 rpm 或 deb 构建脚本。所以这也许是你的“最佳实践”。

    您偶尔会看到一个包带有自己的config.site 文件,但通常由打包程序提供,以覆盖原始包中可能损坏的配置检查会产生的结果。

    【讨论】:

    • “这是他们自己的错”...问题的根源是我的 $HOME/config.site 中的语法错误,导致前缀始终设置为 $HOME 的子级。当然是我自己的错,但是我的构建失败非常令人困惑。
    猜你喜欢
    • 1970-01-01
    • 2021-07-15
    • 2012-09-11
    • 2010-09-20
    • 2012-12-24
    • 2021-11-18
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多