在SPEC文件中使用%{buildroot}

时间:2013-09-18 10:17:20

标签: uninstall rpmbuild specifications

我正在创建一个简单的RPM安装程序,我只需要将文件复制到我在%install进程中创建的目录结构中。

%install进程没问题,我使用命令/opt/company/application/创建了以下文件夹mkdir -p %{buildroot}/opt/company/%{name},然后我继续从我的包中复制文件和子目录。我试过安装它并且有效。

卸载时我有疑问。我想删除文件夹/opt/company/application/,我认为在引用安装位置时,您应该在任何地方使用%{buildroot}。因为我的理解是用户可能有不同的结构,你不能认为rmdir /opt/company/%{name}/会起作用。在%postun部分中使用该命令会成功删除目录,而使用rmdir ${buildroot}/opt/company/%{name}不会删除文件夹。

我的问题是,您是否应该在${buildroot}中使用%postun才能获得正确的安装位置?如果不是这样,为什么?

1 个答案:

答案 0 :(得分:0)

不要担心。如果您在%files部分声明该目录为您自己的目录,RPM将为您处理。

仅供参考,目标机器上可能不存在%{buildroot}