RPM规范文件 - 是否有可能动态填充规范文件变量(RPM spec file - Is it po

2019-07-29 02:18发布

我有一个规范文件。 我需要定义%一个规范变量,从系统上的一个行文件中获取价值。

例如

%define path `cat /home/user/path_file`

和在path_file是一个线

/var/www/html/hosts

这部分工作。 我说,在RPM构建输出有时的值开始${path}简直是我的命令cat /home/user/path_file有时值在path_file,因为它(在/ var / www / html等/主机)行应该?

Answer 1:

你可以定义变量的rpmbuild %(cmd)在规范文件的顶部。 请注意,该命令是在括号中,而不是大括号。 一个例子:

%define whoami %(whoami)

和其他地方的规范文件,如脚本或编译/安装部分,使用该变量为正常的大括号是这样的:

echo "The user that built this is %{whoami}"

cmd可以是任何东西,包括你的cat命令。 要小心 - 当另一个用户重建规范文件可能无法找到该文件。 因此,这将是最好使用%{} sourcedir宏是这样的:

%define path %(cat %{sourcedir}/path_file)

并确保path_file是在源代码目录包括在规范文件中的源。



文章来源: RPM spec file - Is it possible to dynamically populate a spec file variable