我正在使用 --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 镜像作为主机
解决方案是在规范文件中使用以下代码:
# disable check-buildroot
%define __arch_install_post %{nil}
%define __os_install_post %{nil}