如何在%build,%install和%files部分中创建RPM时执行循环?

时间:2017-04-03 12:29:09

标签: linux rpm rpmbuild

我正在创建一个RPM。但是RPM的内容需要安装在不同的地方。在%build内,我应该运行一个循环来从XML文件中获取所有位置。这是我的片段:

%build
for j in ${!files[*]}
do
 mkdir -p ${fileLocations[j]}
done

%install
for i in ${!files[*]}
do
 cp -rfR $SOURCE/${fileNames[i]} ${fileLocations[i]}
done

似乎变量循环字符设置为1。如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

似乎files是一个bash变量,必须在每个不同的阶段(%build%install等)重新初始化。其中每个实际上都成为执行的临时脚本。

对于%files节,您不再是shell,但可以将它们写入文件并使用-f选项读入。无论如何,这可能是让他们进入其他节的更好方法。