RPM 构建错误

RPM 构建错误

我正在尝试构建 RPM,但是当我使用此命令来构建它时:

[root@vmdb SPEC]# rpmbuild -v -bb SPEC/supportScripts.spec

我总是收到这个错误:

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.gG9C7Y
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd /root/rpmbuild/BUILD
+ rm -rf supportScripts-1
+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/supportScripts-1.tar.gz
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd supportScripts-1
/var/tmp/rpm-tmp.gG9C7Y: line 34: cd: supportScripts-1: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.gG9C7Y (%prep)


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

我在互联网上查看了为什么会发生此错误,这是由于我在 %prep/%setup 中使用的宏的参数错误所致。我不确定需要更换什么来修复它,这令人沮丧。这是我的规格文件的样子:

Name:           supportScripts
Version:        1
Release:        1
Summary:        All the support scripts bundled into an RPM.
BuildArch:      noarch

Group:          Development/Tools
License:        GPL
URL:            http://localhost
Source0:        supportScripts-1.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

%description
These are all the support tools we need for new Hardware Agent builds. This will package all the scripts support uses for new builds.

%prep
%setup -q

%install
mkdir -p "$RPM_BUILD_ROOT/opt"
cp -R * "$RPM_BUILD_ROOT/opt"

%files
/opt/

%clean
rm -rf $RPM_BUILD_ROOT

%post
chown -R support:support /opt/*
chmod -R 775 /opt/

更新:奇怪的是我发现 rpm 完全内置于/root/rpmbuild/RPMS/noarch.我已经运行命令:

rpm -ivh supportScripts-1-1.noarch.rpm

解压所有脚本,奇迹般地它就在那里!我的下一个问题是:我是否应该担心我执行的 rpmbuild 命令会出现任何问题?

答案1

RPM 希望您的软件包遵循 Unix 软件的标准打包指南。这GNU 发布指南是典型的,但许多非 GNU 软件也遵循这些规则。

具体来说,您有一个名为 supportScripts,版本 1 的包,因此 tarball 预计将被称为supportScripts-1.tar.gz,并且预计会解压到名为 的目录中supportScripts-1

虽然可能有多种方法可以让 RPM 应对非标准方案,但最简单的方法就是遵循它所期望的方案。

相关内容