2012-11-06 73 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文件嗎? –