rpmbuildツールを使用してrpmをビルドしようとしています。約30GBのバイナリをビルドするソースコードがあります。私が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/*
一部のバイナリ(たとえば、1つのユーティリティとそれに依存するバイナリ)のみをコピーすると、正常に機能します。しかし、ビルド全体をコピーしようとすると、セグメンテーション違反が発生します。rpmbuildが次のセクションを実行した後、セグメンテーション違反が発生します:%prep%build%install
rpmbuildはソースファイルも処理します。
ファイルの処理:ソース-1.12-1
検索は提供します:
検索に必要なもの:
サプリメントを見つける:
提供:.....。
必要:......
パッケージ化されていないファイルの確認:/ usr / lib / rpm / check-files / root / mywget / BUILDROOT
パッケージ化されていないファイルの確認:/ usr / lib / rpm / check-files / root / mywget / BUILDROOT
セグメンテーション違反
何が間違っているのか、またはrpmbuildがどこで失敗するのかについての手がかりはありますか?前もって感謝します