rpmbuild 的问题 --目标从 rocky 8 到 pcc64 架构

问题描述 投票:0回答:1

我正在使用 --target 选项进行 rpmbuild,但失败并出现here描述的错误,但我的需要是真正为另一个架构构建 rpm。不要在我的架构上运行它。

使用以下参数的 PERL 构建过程是可以的。它是在安装过程中或安装过程之后失败的。

./Configure -Dbuild=x86_64 -Dtarget=ppc64-ibm-AIX -des -Dprefix=$OCS_INSTALL_DIR/perl

任何帮助将非常感激! :)

我的规格文件:

#
# APM IBM
# RedHat 6
#

%define logmsg logger -t RPM %{name}
#%define debug_package %{nil}

Name:           %{name}
Version:        %{version}
Release:        %{release}
License:        GPLv2+
Group:          Applications/Communications
#BuildArch:      noarch
Source0:        %{name}-%{version}-%{release}.tar.gz
#BuildRequires:
Autoreq: 0
AutoReqProv: no
Requires(pre):       /usr/bin/yum
#Requires(preun):    /usr/bin/systemctl
#Requires(post):     /sbin/service, /sbin/chkconfig, /etc/services
#Requires(postun):   /sbin/service, /usr/sbin/userdel, /usr/sbin/groupdel
#Conflicts:
#Provides:
#Obsoletes:

%prep
%setup -q

%build
./Packager-for-Unix-master/compileSource.sh

%install
rm -rf %{buildroot}

mkdir -p %{buildroot}/opt/ocsinventory
mkdir -p %{buildroot}/usr/bin

cp -R /tmp/ocs/opt/ocsinventory/* %{buildroot}/opt/ocsinventory/
install -p -m 750 /tmp/ocs/usr/bin/ipdiscover %{buildroot}/usr/bin/

%clean
rm -rf %{buildroot}
rm -rf %{_builddir}

%files

%defattr(-,root,root,-)
/opt/ocsinventory/
%attr(0750,root,root)   /usr/bin/ipdiscover

%changelog

- Create core package


我的 rpmbuild 线(CI/CD 管道的一部分)

    - rpmbuild -bb --target "ppc64" --define "version ${PACKAGE_VERSION}" --define "release ${PACKAGE_REVISION}.${RHEL_VERSION}" --define "name ${PACKAGE_NAME}" ${PACKAGE_NAME}-${PACKAGE_VERSION}-${PACKAGE_REVISION}.spec

以及我收到的错误消息:

Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.sPIxik
+ umask 022
+ cd /root/rpmbuild/BUILD
+ '[' '/root/rpmbuild/BUILDROOT/ocsinventory-agent-core-iti-1.0-1.aix.%{_arch}' '!=' / ']'
+ rm -rf '/root/rpmbuild/BUILDROOT/ocsinventory-agent-core-iti-1.0-1.aix.%{_arch}'
++ dirname '/root/rpmbuild/BUILDROOT/ocsinventory-agent-core-iti-1.0-1.aix.%{_arch}'
+ mkdir -p /root/rpmbuild/BUILDROOT
+ mkdir '/root/rpmbuild/BUILDROOT/ocsinventory-agent-core-iti-1.0-1.aix.%{_arch}'
+ cd ocsinventory-agent-core-iti-1.0
+ rm -rf '/root/rpmbuild/BUILDROOT/ocsinventory-agent-core-iti-1.0-1.aix.%{_arch}'
+ mkdir -p '/root/rpmbuild/BUILDROOT/ocsinventory-agent-core-iti-1.0-1.aix.%{_arch}/opt/ocsinventory'
+ mkdir -p '/root/rpmbuild/BUILDROOT/ocsinventory-agent-core-iti-1.0-1.aix.%{_arch}/usr/bin'
+ cp -R /tmp/ocs/opt/ocsinventory/ocsinventory-agent /tmp/ocs/opt/ocsinventory/perl /tmp/ocs/opt/ocsinventory/var '/root/rpmbuild/BUILDROOT/ocsinventory-agent-core-iti-1.0-1.aix.%{_arch}/opt/ocsinventory/'
+ install -p -m 750 /tmp/ocs/usr/bin/ipdiscover '/root/rpmbuild/BUILDROOT/ocsinventory-agent-core-iti-1.0-1.aix.%{_arch}/usr/bin/'
+ /usr/lib/rpm/check-buildroot
xargs: invalid number for -P option
Usage: xargs [OPTION]... COMMAND [INITIAL-ARGS]...

我使用 rocky8 docker 镜像作为主机

docker gitlab rpm cicd rpmbuild
1个回答
0
投票

解决方案是在规范文件中使用以下代码:

# disable check-buildroot 
%define __arch_install_post %{nil}

%define __os_install_post %{nil}

© www.soinside.com 2019 - 2024. All rights reserved.