我正在尝试使用rpmbuild工具构建一个rpm。我有源代码,它构建了大约30 GB的二进制文件。这个软件,我要做的rpm有几十个可执行程序。当我只复制单个可执行文件的二进制文件时(例如。我的rpm构建成功。但是当我将整个构建转储到rpm时,rpmbuild做了所有的事情,但是最终给出了一个seg错误。
这是我的规范文件:
# 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/*如果我只复制一些二进制文件(假设一个实用程序及其依赖的二进制文件),它就可以正常工作。但是当我试图复制整个构建时,我会遇到一个seg错误。在rpmbuild执行以下部分之后,我得到了seg错误:
%prep
%build
%installrpmbuild还处理我的源文件。
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在哪里失败?提前感谢
发布于 2012-11-07 04:31:19
RPM版本最多4.4.x有一个2GB的包大小上限,因为它需要64位整数类型的头部支持。从4.6开始,此包装尺寸帽将被移除。由于cpio格式的限制,包中的单个文件仍然有4GB的限制。
参考链接
https://serverfault.com/questions/406525
复制相似问题