我尝试使用一些子包创建一个rpm包。 在准备第一个子包时,运行rpmbuild命令会导致错误。
这是运行rpmbuild -ba specfile:
时的结果[root@RHEL510-BUILD SPECS]# rpmbuild -ba kapsch-icinga.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.88616
+ umask 022
+ cd /usr/src/rpmbuild/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ -n autoconf
/var/tmp/rpm-tmp.88616: line 27: -n: command not found
error: Bad exit status from /var/tmp/rpm-tmp.88616 (%prep)
我没有在定义的spec文件中看到任何错误。 如rpm文档中所述,参数-n定义子包将使用没有主包的前缀名定义的名称。
我的SPEC文件:
%define _topdir /usr/src/rpmbuild
Name: my-icinga
Version: 1.0
Release: 1
License: GPLv2
Summary: defined installation of ICINGA and all it's components inclugins plugins
Group: Monitoring
%description
In this package all dependancies for a complete installation for icinga/nagios server and client(s)are included.
Each subpackage can be created separately.
#--------------
# define some global configuration parameters
#--------------
%define _nagiosUser icinga
%define _nagiosGrp icinga
%package -n autoconf
Version: 2.69
Release: 1
License: GPLv2
Source: http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
Summary: autoconf with a version > 2.65
Group: Monitoring
%description -n autoconf
autoconf will be needed with a version > 2.65 to be able to build some additional subpackages
%package -n my-nagios-plugins
Version: 1.0
Release: 1
License: GPLv2
Summary: Plugins from nagios and ConSol for Kapsch ICINGA cient installation
Group: Monitoring
%description -n my-nagios-plugins
These package includes the standard nagios plugins as well als ConSol plugins check_oracle_health and check_logfiles
#-----------------------------------------------------------------------------------------------
# Build area
# here starts the build section for each subpackage
#-----------------------------------------------------------------------------------------------
%prep -n autoconf
%setup -n autoconf
%build -n autoconf
./configure
./make
#%%prep my-nagios-plugins
#%%setup my-nagios-plugins
#
#%%build my-nagios-plugins
##first build the standard nagios plugins
#cd nagios-plugins-2.0.3
#./configure
#./make
任何暗示我的SPEC文件有什么问题? 我知道SPEC文件不完整,但缺少的部分不应该是错误的原因。
答案 0 :(得分:0)
请勿在spec文件中覆盖%_ topdir。 %_topdir 在解析spec文件之前展开。
而是在〜/ .rpmmacros
中配置答案 1 :(得分:0)
正如错误消息所示,%prep不会将-n作为参数。
规范的某些部分对所有子包都是通用的
您的spec文件还有其他潜在问题: 如果您需要autoconf来构建软件包,则需要在rpm之前安装它,通常将其定义为依赖项。
另外,我维护一个类似的.spec来安装icinga及其所有依赖项;这里有一个非常好的建议是旧的" KISS" (保持简单......)。为单个插件或插件组创建微小的rpm,并创建一个包含所有插件的元数据包。
另外,我建议您将自定义nagios-plugins安装到nagios-plugin的其他位置:
EG:on centos nagios-plugins安装在:/ usr / lib / nagios / plugins 我们定制的nagios-plugins安装在:/ usr / lib / nagios / plugins / mycompany
注意:来自git的nagios-plugins会提取自己的spec文件,可以很容易地修改它以与自定义插件一起使用