构建RPM,创建已编译的二进制文件



我试图用C语言构建一个包含短源代码的RPM,并希望RPM从中创建编译后的二进制文件,然后安装。我的规范文件(剪切版)如下:

BuildRoot: %{_tmppath}/%{name}-buildroot
%description
%define _unpackaged_files_terminate_build 0
%prep
%setup -q
%build
%pre
if [ ! -d /opt/appdynamics/monitors ]
 then echo "AppD Machine Agent is not installed"
    exit 1
fi
exit 0
%install
gcc -o $RPM_BUILD_ROOT/RabbitMQCustomMonitor/rabbitmq-cluster-status -O2 $RPM_BUILD_ROOT/RabbitMQCustomMonitor/rabbitmq-cluster-status.c
install -o rabbitmq -g rabbitmq -m 0750 -s -v RabbitMQCustomMonitor/rabbitmq-cluster-status $RPM_BUILD_ROOT/usr/sbin/rabbitmq-cluster-status

在重建期间我得到:

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.gQZG8g
+ umask 022
+ cd /home/tomasv/rpmbuild/BUILD
+ cd /home/tomasv/rpmbuild/BUILD
+ rm -rf appdynamics-rabbitmq-1.1.0
+ /bin/tar -xf /home/tomasv/rpmbuild/SOURCES/appdynamics-rabbitmq-1.1.0.tar.gz
+ cd appdynamics-rabbitmq-1.1.0
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.9nRliO
+ umask 022
+ cd /home/tomasv/rpmbuild/BUILD
+ cd appdynamics-rabbitmq-1.1.0
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.khTusl
+ umask 022
+ cd /home/tomasv/rpmbuild/BUILD
+ cd appdynamics-rabbitmq-1.1.0
+ gcc -o /home/tomasv/rpmbuild/BUILDROOT/appdynamics-rabbitmq-1.1.0-1.x86_64/RabbitMQCustomMonitor/rabbitmq-cluster-status -O2 /home/tomasv/rpmbuild/BUILDROOT/appdynamics-rabbitmq-1.1.0-1.x86_64/RabbitMQCustomMonitor/rabbitmq-cluster-status.c
gcc: error: /home/tomasv/rpmbuild/BUILDROOT/appdynamics-rabbitmq-1.1.0-1.x86_64/RabbitMQCustomMonitor/rabbitmq-cluster-status.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
error: Bad exit status from /var/tmp/rpm-tmp.khTusl (%install)

RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.khTusl (%install)

有什么想法吗?感谢

将"gcc-o…."部分移动到%build部分。当rpmbuild:时现在得到这个错误

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Qw5TQ3
+ umask 022
+ cd /home/tomasv/rpmbuild/BUILD
+ cd /home/tomasv/rpmbuild/BUILD
+ rm -rf appdynamics-rabbitmq-1.1.0
+ /bin/tar -xf /home/tomasv/rpmbuild/SOURCES/appdynamics-rabbitmq-1.1.0.tar.gz
+ cd appdynamics-rabbitmq-1.1.0
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.woqxXP
+ umask 022
+ cd /home/tomasv/rpmbuild/BUILD
+ cd appdynamics-rabbitmq-1.1.0
+ gcc -o /home/tomasv/rpmbuild/BUILDROOT/appdynamics-rabbitmq-1.1.0-1.x86_64/RabbitMQCustomMonitor/rabbitmq-cluster-status -O2 /home/tomasv/rpmbuild/BUILDROOT/appdynamics-rabbitmq-1.1.0-1.x86_64/RabbitMQCustomMonitor/rabbitmq-cluster-status.c
gcc: error: /home/tomasv/rpmbuild/BUILDROOT/appdynamics-rabbitmq-1.1.0-1.x86_64/RabbitMQCustomMonitor/rabbitmq-cluster-status.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
error: Bad exit status from /var/tmp/rpm-tmp.woqxXP (%build)

RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.woqxXP (%build)

最新更新