2012-11-06 71 views
0

我试图创建一个rpm包,我的规格文件看起来像这样:RPM说明文件语法错误

%define config_option (cat %1) 
%define __spec_install_post %{nil} 
%define debug_package %{nil} 
%define __os_install_post %{_dbpath}/brp-compress 
%define __prelink_undo_cmd %{nil} 
%define __strip /bin/true 

Name: %{rpm_name} 
Summary: ASG-RP32 Rootfs 
Version: 1 
Release: 1 
License: xxxx 
Group: rootfs 
Vendor: xxxx 
BuildRoot: %{rpmroot} 
Prefix:/

%description 
See Summary. 

%install 
mkdir -p /home /media /mnt /opt /proc /root /selinux /srv /sys /tmp 

%files 
%defattr (-, root, root) 
/README 
/bin/* 
/boot/* 
/dev/* 
/etc/* 
/lib/* 
/lib64/* 
/sbin/* 
/usr/* 
/var/* 

但输出给了我一些错误,

Processing files: pkg-linux-x86-32-linux-xc-release-1-1 
getOutputFrom(): Broken pipe 

请帮助。

注意:安装后的目录是现有的目录,当我尝试使用%dir包含它们时,它们也给我同样的错误。

感谢

回答

0

您可以通过与-vv选项执行的rpmbuild命令得到了错误的原因的详细信息。

如果在执行check-files脚本时发生错误,可以将以下定义添加到spec文件中作为临时解决方案。

%define __check_files %{nil} 

顺便说一句,你确定你想/目录,但$ RPM_BUILD_ROOT下的目录,如定义%安装部分?

+0

感谢您的建议,我会试一试。 关于mkdir部分,我试图使用 %dir 来包含空目录,但似乎没有用,但是,在check_files%{nil}定义的情况下,我会尝试使用%dir而不是在安装目录部分。 非常感谢 –

+0

嗯,在将检查文件定义为{nil}之后,然后使用%dir仍然会得到相同的'getOutputFrom():Broken pipe'错误。 '%DIR /家庭 /媒体 到/ mnt /选择 的/ proc /根 /SELinux的 /SRV /SYS /tmp' –

+0

凡实际上是%{} rpmroot?你能让我们知道完整的spec文件吗? –