【问题标题】:Preventing hardcode path in RPM SPEC file防止 RPM SPEC 文件中的硬编码路径
【发布时间】:2012-08-30 14:38:24
【问题描述】:

我正在为apc 创建 rpm。在编写规范文件时,我意识到某些命令可能具有可以在编译期间不断更改的路径。例如。这些命令需要在构建期间执行。

$ /usr/local/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config

但是phpizephp-config文件的完整路径可能会改变。那么如何防止这种依赖关系,以便我不应该在我的规范文件中硬编码这些路径。

【问题讨论】:

    标签: redhat rpmbuild


    【解决方案1】:

    因为这些命令是在构建时使用的,所以这个问题的理想解决方案在这里:

    1. 在分发包中查找提供这些命令或路径的包,例如 php-config 由 Fedora 操作系统上的 php-devel 包提供。在 Fedora 中,您可以使用 yum whatprovides "*/php-config" 找到它,或者如果它们已经安装在系统上,则使用 rpm -qf /path/to/command

    2. 一旦您知道这些包,就将它们作为 BuildRequire 标记添加到 spec 文件中。第 2 步将确保无论何时您从规范文件构建包时始终存在路径,即使您使用硬编码路径(这当然不是最好的方法)。

    3. 您可以使用 %{_prefix} 代替 /usr/,它完全取决于构建此 rpm 的发行版上可用的宏。检查宏文件中的路径宏。一个具有通用宏定义的链接是here

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多