分类: LINUX
2010-01-20 10:41:09
环境 CentOS5.3 情景 如果是CentOS5.2的net-snmp包配合dag库里的cacti-spine-0.8.7a-1.el5.rf.x86_64.rpm就天衣无缝了,偏偏5.3里升级过net-snmp的包,从5.3.1升级到5.3.2.2,这样再安装spine rpm后会成功,执行spine命令却会报错“SPINE: Poller[0] ERROR: SNMP Library Version Mismatch (5.3.1 vs 5.3.2.2) (Spine parent) ”。于是我们就只有两个选择,要么降级net-snmp相关所有的rpm包,可能包括net-snmp, net-snmp-libs, net-snmp-utils, net-snmp-devel;要么就手工编译spine源码。前一种方案很容易在下一次升级后失败,或者引起其他兼容问题,所以我选用了第二种,很简单的下载到了,接下来就是rebuild过程中发生的缺包问题。
# 如果你没有装过rpmbuild,先执行yum install rpm-build
[root@server src]# rpmbuild --rebuild cacti-spine-0.8.7a-1.rf.src.rpm
...............
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd cacti-spine-0.8.7a
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chown -Rhf root .
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chgrp -Rhf root .
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ /usr/bin/perl -pi.orig -e 's|/lib\b|/lib64|g' configure
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.71585
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd cacti-spine-0.8.7a
+ autoreconf --force --install --symlink
/var/tmp/rpm-tmp.71585: line 25: autoreconf: command not found
error: Bad exit status from /var/tmp/rpm-tmp.71585 (%build)
RPM build errors:
user dag does not exist - using root
group dag does not exist - using root
Bad exit status from /var/tmp/rpm-tmp.71585 (%build)
# 以上问题解决方案
[root@server src]# yum install autoconf
# 再次尝试
[root@server src]# rpmbuild --rebuild cacti-spine-0.8.7a-1.rf.src.rpm
..............
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd cacti-spine-0.8.7a
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chown -Rhf root .
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chgrp -Rhf root .
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ /usr/bin/perl -pi.orig -e 's|/lib\b|/lib64|g' configure
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.85273
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd cacti-spine-0.8.7a
+ autoreconf --force --install --symlink
Can't exec "aclocal": No such file or directory at /usr/bin/autoreconf line 174.
Use of uninitialized value in pattern match (m//) at /usr/bin/autoreconf line 174.
Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 288.
autoreconf: failed to run aclocal: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.85273 (%build)
RPM build errors:
user dag does not exist - using root
group dag does not exist - using root
Bad exit status from /var/tmp/rpm-tmp.85273 (%build)
# 以上问题解决方案
[root@server src]# yum install automake
# 再次尝试
[root@server src]# rpmbuild --rebuild cacti-spine-0.8.7a-1.rf.src.rpm
..............
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd cacti-spine-0.8.7a
+ autoreconf --force --install --symlink
configure.ac:69: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
error: Bad exit status from /var/tmp/rpm-tmp.74325 (%build)
RPM build errors:
user dag does not exist - using root
group dag does not exist - using root
Bad exit status from /var/tmp/rpm-tmp.74325 (%build)
# 以上问题解决方案
[root@server src]# yum install libtool
# 再次执行,好了,没有报错
# 接下来安心装我的新鲜出炉的rpm了
[root@server src]# rpm -ivh /usr/src/redhat/RPMS/x86_64/cacti-spine-0.8.7a-1.rf.x86_64.rpm