bugzilla更新出现perl模块无法安装问题解决办法

终极解决方案:
修改Config.pm
urllist为空
cpan

CPAN>reload index

CPAN>reload cpan

在对公司的bugzilla服务器升级过程中,碰到了perl下载出错的问题.以前都没碰到过,并且查找网络解决方案,国内外也没有这方面的明确解决问题的办法。但其实问题解决又很方便,关键是找到根源,顺藤摸瓜。
公司的bugzilla服务器是3.1版本的,至今还不是很清楚为什么在提交或者更改bug状态时,页面进度条非常慢,提交一个Bug似乎需要两三分钟,但其实数据库已经写进去了。我刚接手这个服务器,工程师向我反映这个问题后,我立马做了个测试系统进行测试,用的是最新bugzilla-3.2.3的版本,数据库版本不变。
测试结果显示,我的测试bugzilla服务器在提交和更改bug状态页面进度条运行很快,页面也刷新很快。不存在以上问题,所以我大致推测如下:
1:buzilla服务器的mysql数据库安装有问题,在这发觉偶的前辈并没有编译mysql数据库,是直接下载源代码然后直接运行的。
2:bugzilla的问题或其它。

//************以下为编译mysql工作***********************

按照推测思路,我就在半夜等工程师没有使用服务器时开始进行升级工作了.....(干IT的就是苦命啊....)
我先将mysql重新进行了编译安装,加入了模块静态安装选项。命令如下:
% >CFLAGS="-O6 -mpentiumpro -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"
./configure --prefix=/usr/local --enable-assembler --with-mysqld-ldflags=-all-static

安装好后,将原来备份的数据库文件导入(用的是mysqldump备份数据库,直接导入回去即可),运行Bugzilla,提交一个测试bug,发现速度似乎没有改观,还是老问题,网页进度条速度太慢,等了2分钟也看不到回访结果。看来第一步并不是问题根源。

//*************以下为安装升级Bugzilla工作****************

下一步,我决定更新bugzilla版本,下载最新版本3.2.3后,解压到/usr/loca/bugzilla下,执行./checksetup.pl,这段过程bugzilla会自动搜寻缺少模块并提示安装,但刚开始,就发现出现了问题:
.........
...........

//**************perl安装错误***********************

Going to read /root/.cpan/sources/modules/02packages.details.txt.gz
Warning: Your /root/.cpan/sources/modules/02packages.details.txt.gz does not contain a Line-Count header.
Please check the validity of the index file by comparing it to more
than one CPAN mirror. I'll continue but problems seem likely to
happen.
Warning: Your /root/.cpan/sources/modules/02packages.details.txt.gz does not contain a Last-Updated header.
.........
...........
Can't locate object method "data" via package "CPAN::Modulelist" (perhaps you forgot to load "CPAN::Modulelist"?) at (eval 20) line 1.
我把错误主要提示摘抄如上,看提示似乎是文件错误,提示没有last-updated header.
到/root/.cpan/sources/modules/目录下看这几个文件,都只是200个字节。肯定有问题,没有从将文件下载下来。
......
中途走了很多弯路,用google搜了半天,没好到有效的解决办法。问题依旧,静下心来仔细想想,肯定是有配置文件在搞鬼了。

//*************解决CPAN安装错误方法******************

经过一番摸索,找到了问题根源,解决办法如下:
到/usr/lib/perl5/5.8.5/CPAN/目录下,编辑Config.pm文件,
将'urllist' => [q[http://cpan.modperl.cn/]],
更改为:'urllist' => [],
让系统自己去找寻最佳模块源网站,perl程序会自动到 ftp://ftp.perl.org/ 网站找寻文件,以前的http://cpan.modperl.cn/ 是错误的。我很奇怪这个网站是手动添加还是系统自动的呢?看来这已成为个谜了。

经过bugzilla一番长时间的下载和安装,基本缺失的模块都已经下载下来了。拷贝老的bugzilla里面的data文件夹和localconfig文件到新目录。
将老的bugzilla文件夹mv bugzilla_old,新的bugzilla文件夹代替成bugzilla,apache服务器配置可以保持不变。这样,就完成了新的Bugzilla更换工作。
测试结果显示一切都和原来我在自己电脑上测试结果一样,页面进度条运行缓慢的问题不再出现。

-----------------------

//*************安装GD错误*******************

在安装更新bugzilla过程中,安装GD时出现一个错误,
/usr/bin/perl install-module.pl GD
..........
**UNRECOVERABLE ERROR**
Could not find gdlib-config in the search path. Please install libgd
2.0.28 or higher.
If you want to try to compile anyway, please rerun this script with
the option --ignore_missing_gd.

但是,我在通过RPM包检查发现2.0.28是安装了的:
rpm -qa |grep "^gd-/|^gd-devel-"
gd-2.0.28-4
gd-devel-2.0.28-4

//*************解决GD安装错误方法**************

我的系统是RHEL AS4的版本哦,后来RED HAT官方说是因为RHEL AS4中不带glib-config命令的,只有RHEL AS5带了这个命令,我们需要做的就是重新下载gd源包,编译生成glib-config文件然后拷贝到/usr/bin下即可。
下载URL:http://www.boutell.com/gd/manual2.0.28.html#getgd
编译:./configure --prefix=/usr/local/gd && make make install
编译完成后生成目录里,拷贝/bin/glib-config到/usr/bin下。可以删除/usr/local/gd文件夹。
再重新安装GD,顺利通过。
上一篇:python下yield(生成器)


下一篇:Centos6.4下安装protobuf-c问题及解决办法