1

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

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

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

4

1 回答 1

1

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

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

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

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

于 2012-10-25T13:00:11.997 回答