我一直在尝试使用rpmbuild建立一个rpm,但我不断收到以下错误-
错误:宏扩展中的递归层次过多。它可能是由递归宏声明引起的。
环境详细信息-rpmbuild --versionRPM版本4.11.3
。spec文件的一部分-
############# we define product here ###################
%define name abc
%define installdir /direc
############### product Info ###################
Summary: ABC management package
Name: %{name}
Version: %{version}
Release: %{release}
Source: %{name}-%{version}.tgz
Vendor: XYZ
License: Commercial
Group: System Environment/Libraries
Prefix: %{_prefix}
Buildroot: %{_tmpbuildroot}
################Dependencies ###########################
Requires : %{name} = %{version}, mod_php, php-pgsql
。rpmmacros文件
%_topdir /home/jan/rpmbuild/
%_tmppath /home/jan/rpmbuild/tmp
%_tmpbuildroot /home/jan/rpmbuild/build
%_buildroot /home/jan/rpmbuild/BUILD
%version 100.0.111.20200213
%release R_jenkins-XXXXXX-61
%extra_require ameyocrm = 100.0.111.20200213
用于建立rpm的命令-sudo rpmbuild -bb -vv /home/jan/Work/BuildMachine/RPM/rpm_spec/rpm/SPECS/myspecfile.spec --target "\x86_64-redhat-linux\"
Name: %{name}
%name
宏定义为Name:
标记的内容,因此rpmbuild
可能不知道要在该宏中放入什么。这是一个受保护的宏,您不应尝试自己定义它。
%version
和%release
相同。
将其重写为类似的内容:
Name: abc
Version: 100.0.111.20200213
Release: R_jenkins-XXXXXX-61
Source: %{name}-%{version}.tgz
...