创建自己的rpm包时出错

时间:2017-03-12 22:01:39

标签: fedora rpm rpmbuild

我在rpmbuild练习并运行示例Hello RPM包,示例运行良好,但是,我使用此包构建自己的gnuplot.spec:

SOURCES/
gnuplot-5.0.5.tar.gz

SPECS/
gnuplot.spec

Name:           gnuplot
Version:        5.0.5
Release:        1%{?dist}
Summary:        The gnuplot 

License:        GPLv3+
Source0:        gnuplot-5.0.5.tar.gz

BuildRequires: gettext

Requires(post): info
Requires(preun): info

%description 
gnuplot

%prep
%autosetup

%build
%configure
make 

%install
%make_install

%doc AUTHORS ChangeLog NEWS README THANKS TODO
%license COPYING

%changelog
* Tue Sep 06 2011 The Coon of Ty <Ty@coon.org> 2.8-1
- Initial version of the package

我运行下一个命令:

rpmbuild -ba gnuplot.spec

Error:  /var/tmp/rpm-tmp.oAdSqX (%install)

1 个答案:

答案 0 :(得分:0)

该错误似乎表明install部分内部存在问题,并且在那里使用的宏为%make_install。我以为您的系统上不存在此宏。

在我的Fedora 32机器上,运行

rpm -qa | grep ^rpm | sort | xargs rpm -ql | xargs grep -l make_install | sort -u

并查看列出的文件表明它是在/usr/lib/rpm/macros中定义的,另外两个文件给出了类似的提示

if [[ $rpmver -ge 40800 ]] ; then # >= 4.8 (RHEL >= 6, Fedora >= 13)

- Use %make_install for rpm >= 4.8 in -newspec (#828455).

,因此表明您至少需要4.8版的rpm。但是版本不一定是全部,在附加软件包中定义了许多宏(例如fedora-rpm-macros,cmake-rpm-macros,python-rpm-macros等)。

尽管有时it depends on other packages to work correctly/usr/lib/rpm/macros文件属于rpm包。

因此,请检查您是否使用的是4.8版或更高版本的rpm,并确认您的/usr/lib/rpm/macros文件包含一个make_install宏。