Rpmbuild子包定义导致tmp文件中的错误

时间:2015-01-20 11:12:02

标签: rpmbuild

我尝试使用一些子包创建一个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文件不完整,但缺少的部分不应该是错误的原因。

2 个答案:

答案 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文件,可以很容易地修改它以与自定义插件一起使用