如何控制rpmbuild buildroot和安装目录

时间:2013-04-18 09:39:06

标签: macros install rpmbuild buildroot

我对rpmbuild中的一些目录感到困惑。

1:buildroot:应该用于存储最终用户安装二进制包时应该安装的文件。

问题:如何控制这个目录? BuildRoot是什么意思?

 $ cat 3.spec
 ..
 BuildRoot: /opt/abc
 ..
 %prep
 echo %{buildroot}
 echo  $RPM_BUILD_ROOT   

无论我将BuildRoot设置为什么,我都会得到/usr/lib/rpm/macros中定义的结果。如果我在%buildroot中定义~/.rpmmacros,我会从中获得结果。

2:安装rpm包时如何控制目标?例如:rpm -ivh xxx.rpm,文件将安装在哪里?

1 个答案:

答案 0 :(得分:6)

您可以在%install或任何地方自行创建子目录。

示例:您希望在/opt/mypkg/中安装所有文件,但也需要配置文件/etc/mypkg.conf。所以在%install部分你:

mkdir -p %{buildroot}/opt/mypkg
mkdir -p %{buildroot}/etc

因此,您要重新创建要安装的树,所有树都使用%{buildroot}作为目标/的等效树。