我正在为apc创建 rpm 。在编写规范文件时,我意识到某些命令可能具有可以在编译期间不断更改的路径。例如。这些命令需要在构建期间执行。
$ /usr/local/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config
phpize
但是文件的完整路径php-config
可能会改变。那么如何防止这种依赖关系,以便我不应该在我的规范文件中硬编码这些路径。
因为这些命令是在构建时使用的,所以这个问题的理想解决方案在这里:
查找提供这些命令或路径的分发包,例如 php-config 由 Fedora 操作系统上的 php-devel 包提供。在 Fedora 中,您可以找到它使用yum whatprovides "*/php-config"
,或者如果它们已经安装在系统上,则使用rpm -qf /path/to/command
.
一旦你知道包将它们添加为规范文件中的 BuildRequire 标记。第 2 步将确保无论何时从规范文件构建包时路径始终存在,即使您使用硬编码路径(这当然不是最好的方法)。
您可以使用 %{_prefix} 代替 /usr/,它完全取决于您构建此 rpm 的发行版上可用的宏。检查宏文件中的路径宏。这里有一个具有通用宏定义的链接。