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