我正在尝试使用 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 执行这些部分后,我收到了 seg 错误: %准备 % build %安装
rpmbuild 还处理我的源文件。
处理文件:source-1.12-1
发现提供:
查找要求:
寻找补充品:
提供:......
要求:……
检查未打包的文件:/usr/lib/rpm/check-files/root/mywget/BUILDROOT
检查未打包的文件:/usr/lib/rpm/check-files/root/mywget/BUILDROOT
段错误
知道发生了什么问题或者 rpmbuild 失败在哪里吗? 提前致谢
最佳答案
我应该用谷歌搜索更多关于这个问题的信息。 看起来,当尝试创建大于 2GB 的 RPM 时,rpmbuild 会出现一些问题。 为此提交了一个错误:
关于segmentation-fault - rpmbuild 出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11420657/