rpmbuild规范文件%安装部分错误

时间:2011-09-13 14:08:19

标签: linux rpmbuild rpm-spec

我有一个与以下内容类似的spec文件:

BuildRoot: /tmp/build_%{name}-%{version}-%{release}

%prep
...
...

%install
# Directories
install -m 755 -d %{buildroot}/usr/app/mypackage/config
install -m 755 -d %{buildroot}/usr/app/mypackage/src
....

# Bash script
install -m 755 script/script1.sh %{buildroot}/usr/app/mypackage/config/script1.sh
install -m 755 script/script2.sh %{buildroot}/usr/app/mypackage/config/script2.sh
install -m 755 script/myapp-log %{buildroot}/etc/logrotate.d/myapp-log

当我运行rpmbuild时,我收到错误:

install: cannot create regular file `/tmp/build_my_app-1.0-2/etc/logrotate.d/myapp-log'

我可以通过在/etc/目录中手动创建/etc/logrotate.d然后/tmp/build_my_app-1.0-2/目录来解决这个问题。

当我重新重新启动rpmbuild时,它会起作用。

我想这是因为我没有在我的安装部分创建这个目录,但因为它与我的应用程序没有直接关系,所以我不想把它放进去。

我的猜测是,我可以使用一些聪明的标签来解决这个问题,这样构建就可以在没有任何人工干预的情况下运行。

我的问题: 有人可以建议我实现这个目标(假设它可能)或者我是否需要围绕rpmbuild写一个脚本来首先设置它。

1 个答案:

答案 0 :(得分:3)

您缺少在%install部分中创建安装目录的步骤。请记住,既然您可以构建“不同”的根,那么就不能指望存在某些目录(例如$ {buildroot} / etc)。

尝试添加

 mkdir -p ${buildroot}/etc/logrotate.d

在将文件复制到${buildroot}/etc/logrotate.d的安装命令之前。