我对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
,文件将安装在哪里?
答案 0 :(得分:6)
您可以在%install
或任何地方自行创建子目录。
示例:您希望在/opt/mypkg/
中安装所有文件,但也需要配置文件/etc/mypkg.conf
。所以在%install
部分你:
mkdir -p %{buildroot}/opt/mypkg
mkdir -p %{buildroot}/etc
因此,您要重新创建要安装的树,所有树都使用%{buildroot}
作为目标/
的等效树。