【问题标题】:rpm spec file syntax errorrpm 规范文件语法错误
【发布时间】:2012-10-26 00:26:40
【问题描述】:

我正在尝试创建一个 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 包含它们时,它们也给了我同样的错误。

谢谢

【问题讨论】:

    标签: rpm rpmbuild rpm-spec


    【解决方案1】:

    您可以通过执行带有 -vv 选项的 rpmbuild 命令来获取错误原因的详细信息。

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

    %define __check_files %{nil}
    

    顺便说一句,您确定要在 / 目录下创建目录但 $RPM_BUILD_ROOT,如 %install 部分中定义的那样?

    【讨论】:

    • 感谢您的建议,我会试一试。关于 mkdir 部分,我试图使用 %dir 来包含空目录,但似乎这不起作用,但是,在定义了 check_files %{nil} 后,我将尝试使用 %dir 而不是在安装部分创建目录。非常感谢
    • 嗯,将检查文件定义为 {nil} 后,使用 %dir 仍然得到相同的 getOutputFrom(): Broken pipe 错误。 %dir /home /media /mnt /opt /proc /root /selinux /srv /sys /tmp
    • %{rpmroot} 实际上在哪里?能否告诉我们完整的规范文件?
    猜你喜欢
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 2015-08-25
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多