我在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)
答案 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
宏。