rpmbuild 给出段错误

rpmbuild 给出段错误

我正在尝试使用 rpmbuild 工具构建 rpm。我有源代码,可以构建大约 30 GB 的二进制文件。我为其制作 rpm 的这个软件有几十个可执行文件。当我仅复制单个可执行文件的二进制文件(例如 init)时,我的 rpm 构建成功。但是当我将整个构建转储到 rpm 时,rpmbuild 执行了所有操作,但最终给出了一个段错误。

这是我的规格文件:

# This is a sample spec file for wget

%define _topdir     /root/mywget
%define name            source 
%define release     1
%define version     1.12
%define _builddir     /root/mywget/BUILD/glenlivet
%define _buildrootdir /root/mywget/BUILDROOT
%define _buildroot /root/mywget/BUILDROOT
%define _sourcedir    /root/mywget/SOURCES

BuildRoot:  %{_buildroot}
Summary:        GNU source
License:        GPL
Name:           %{name}
Version:        %{version}
Release:        %{release}
Source:         %{name}-%{version}.tar.gz
Prefix:         /usr
Group:          Development/Tools

%description
The GNU sample program downloads files from the Internet using the command-line.

%prep
%setup -q -n glenlivet

%build
cd %{_builddir}
make all

%install
rm -rf %{_buildrootdir}
mkdir -p %{_buildrootdir}/bin
cp -p -r %{_builddir}/build/obj-x64/* %{_buildrootdir}/bin/

%files
%defattr(-,root,root)
/bin/*

如果我只复制一些二进制文件(比如说一个实用程序及其依赖的二进制文件),它就可以正常工作。但是当我尝试复制整个构建时,我得到了一个段错误。rpmbuild 执行完这些部分后,我得到了段错误:

%prep
%build
%install

rpmbuild 也处理我的源文件。

Processing files: source-1.12-1
Finding Provides: 
Finding Requires:
Finding Supplements:
Provides:......
Requires:......
Checking for unpackaged file(s):/ usr/lib/rpm/check-files /root/mywget/BUILDROOT
Checking for unpackaged file(s):/ usr/lib/rpm/check-files /root/mywget/BUILDROOT
Segmentation fault

有没有什么线索可以说明哪里出了问题或者 rpmbuild 在哪里失败了?提前谢谢

答案1

4.4.x 之前的 RPM 版本具有 2GB 的软件包大小上限,因为它要求标头中支持 64 位整数类型。从 4.6 开始,此软件包大小上限被取消。由于 cpio 格式限制,软件包中单个文件的大小仍然有 4GB 的限制。

参考链接

相关内容