Bugzilla升级记录

老的bugzilla系统的版本是4.4.8,目前需要升级。所在OS的版本是redhat5.4/5.6。

根据最近几天的反复尝试,发现:

bugzilla4.*对应的perl是5.8,而bugzilla5.*对应perl是5.10。

相对的redhat5.*里面的perl版本是5.8,而6.*对应的perl是5.10。

综上:如果使用bugzilla4.*,那么最好使用redhat5.*,bugzilla5.*则使用redhat6*。

目前还没有尝试在redhat5.11上讲perl由5.8升级到5.10。因为yum源中,5.11对应的perl就是5.8,如果升级可能需要连接到redhat6.*对应的yum源中,那么这中间因为包依赖,可能造成很多的问题。


这里升级bugzilla设计到了两个问题:

1 yum源配置。这里可能需要代理才能访问外网。那么有两种方法,一是环境变量设置,二是/etc/yum.conf里面的代理设置。

环境变量:

export http_proxy="http://10.99.93.34:8080/"

export https_proxy="https://10.99.93.34:8080/"

yum.conf设置:

proxy=http://10.99.93.34:8080/


2 perl的更新配置。即配置cpan,参考另外的文档。

接下来就可以升级bugzilla。

进入bugzilla的路径,运行./checkout.pl。


在另一台机器CentOS的机器上搭建bugzilla5,将bugzilla4的数据迁移过去。

也是执行./checkout.pl。



下面是对生产做simulation的过程:

1 克隆生产系统。这个由OS团队完成。

2 检查克隆后的系统,启动并登录,确保系统可用。

3 升级bugzilla。

升级bugzilla,主要是执行checksetup.pl程序。为了保证它能执行,首先需要做如下操作:

首先配置cpan,主要设置两个属性。

o conf urllist http://mirrors.sohu.com/CPAN/

o conf http_proxy http://10.99.93.33:8080/

一个是连接的cpan镜像地址,这里选择了sohu的,另一个是设置代理。

进入后安装了两个包:

install ExtUtils::MakeMaker

install version

第一个与bugzilla无关,只是我的检查已安装包的perl程序运行时需要用到。

第二个是bugzilla 4.4.11运行时报出需要的包,这个在老版本中不需要,就是4.4.11中需要的。

接下来运行checkset.pl,它提示需要一些新的perl包,运行下面程序安装:

perl install-module.pl --all

修改localconfig文件,主要是配置数据库的用户名密码。

再次运行./checksetup.pl,如果没有报错那么将完成升级。

升级成功:

[root@svnsubv bugzilla-4.4.11]# ./checksetup.pl 
* This is Bugzilla 4.4.11 on perl 5.8.8
* Running on Linux 2.6.18-398.el5 #1 SMP Tue Aug 12 06:26:17 EDT 2014

Checking perl modules...
Checking for               CGI.pm (v3.51)     ok: found v4.27 
Checking for           Digest-SHA (any)       ok: found v5.95 
Checking for             TimeDate (v2.23)     ok: found v2.23 
Checking for             DateTime (v0.28)     ok: found v1.24 
Checking for    DateTime-TimeZone (v0.71)     ok: found v1.95 
Checking for                  DBI (v1.54)     ok: found v1.634 
Checking for     Template-Toolkit (v2.22)     ok: found v2.22 
Checking for           Email-Send (v2.04)     ok: found v2.198 
Checking for           Email-MIME (v1.904)    ok: found v1.937 
Checking for                  URI (v1.37)     ok: found v1.71 
Checking for       List-MoreUtils (v0.32)     ok: found v0.413 
Checking for    Math-Random-ISAAC (v1.0.1)    ok: found v1.004 

Checking available perl DBD modules...
Checking for               DBD-Pg (v2.7.0)    found v1.49 
Checking for            DBD-mysql (v4.001)    ok: found v4.013 
Checking for           DBD-SQLite (v1.29)     ok: found v1.50 
Checking for           DBD-Oracle (v1.19)     not found 

The following Perl modules are optional:
Checking for                   GD (v1.20)     ok: found v2.44 
Checking for                Chart (v2.1.0)    ok: found v2.4.1 
Checking for          Template-GD (any)       ok: found v1.56 
Checking for           GDTextUtil (any)       ok: found v0.86 
Checking for              GDGraph (any)       ok: found v1.44 
Checking for           MIME-tools (v5.406)    ok: found v5.427 
Checking for          libwww-perl (any)       ok: found v2.033 
Checking for             XML-Twig (any)       ok: found v3.32 
Checking for          PatchReader (v0.9.6)    ok: found v0.9.6 
Checking for            perl-ldap (any)       ok: found v0.39 
Checking for          Authen-SASL (any)       ok: found v2.16 
Checking for         Net-SMTP-SSL (v1.01)     ok: found v1.03 
Checking for           RadiusPerl (any)       ok: found v0.24 
Checking for            SOAP-Lite (v0.712)    ok: found v1.19 
Checking for          XMLRPC-Lite (v0.712)    ok: found v0.717 
Checking for             JSON-RPC (any)       ok: found v1.06 
Checking for              JSON-XS (v2.0)      ok: found v3.02 
Checking for           Test-Taint (any)       ok: found v1.06 
Checking for          HTML-Parser (v3.40)     ok: found v3.72 
Checking for        HTML-Scrubber (any)       ok: found v0.08 
Checking for               Encode (v2.21)     ok: found v2.82 
Checking for        Encode-Detect (any)       ok: found v1.01 
Checking for          Email-Reply (any)       ok: found v1.202 
Checking for HTML-FormatText-WithLinks (v0.13)     ok: found v0.15 
Checking for          TheSchwartz (v1.07)     ok: found v1.12 
Checking for       Daemon-Generic (any)       not found 
Checking for           File-Slurp (v9999.13)  not found 
Checking for             mod_perl (v1.999022) ok: found v2.000004 
Checking for     Apache-SizeLimit (v0.96)     not found 
Checking for        File-MimeInfo (any)       ok: found v0.27 
Checking for           IO-stringy (any)       ok: found v2.110 
Checking for          mod_headers (any)       ok 
Checking for          mod_expires (any)       ok 
Checking for              mod_env (any)       ok 
***********************************************************************
* OPTIONAL MODULES                                                    *
***********************************************************************
* Certain Perl modules are not required by Bugzilla, but by           *
* installing the latest version you gain access to additional         *
* features.                                                           *
*                                                                     *
* The optional modules you do not have installed are listed below,    *
* with the name of the feature they enable. Below that table are the  *
* commands to install each module.                                    *
***********************************************************************
*      MODULE NAME * ENABLES FEATURE(S)                               *
***********************************************************************
*   Daemon-Generic * Mail Queueing                                    *
*       File-Slurp * Mail Queueing                                    *
* Apache-SizeLimit * mod_perl                                         *
***********************************************************************
COMMANDS TO INSTALL OPTIONAL MODULES:

 Daemon-Generic: /usr/bin/perl install-module.pl Daemon::Generic
     File-Slurp: /usr/bin/perl install-module.pl File::Slurp
Apache-SizeLimit: /usr/bin/perl install-module.pl Apache2::SizeLimit


To attempt an automatic install of every required and optional module
with one command, do:

  /usr/bin/perl install-module.pl --all

Reading ./localconfig...
Checking for            DBD-mysql (v4.001)    ok: found v4.013 
Checking for                MySQL (v5.0.15)   ok: found v5.6.20 

Creating ./data directory...
Creating ./data/attachments directory...
Creating ./data/db directory...
Creating ./data/extensions directory...
Creating ./data/mining directory...
Creating ./data/webdot directory...
Creating ./graphs directory...
Creating ./skins/custom directory...
Creating ./data/extensions/additional...
Creating ./data/mailer.testfile...
Creating ./Bugzilla/.htaccess...
Creating ./data/.htaccess...
Creating ./data/attachments/.htaccess...
Creating ./data/webdot/.htaccess...
Creating ./graphs/.htaccess...
Creating ./lib/.htaccess...
Creating ./template/.htaccess...
Creating contrib/.htaccess...
Creating t/.htaccess...
Creating xt/.htaccess...
Precompiling templates...done.
Fixing file permissions...

Now that you have installed Bugzilla, you should visit the 'Parameters'
page (linked in the footer of the Administrator account) to ensure it
is set up as you wish - this includes setting the 'urlbase' option to
the correct URL.
checksetup.pl complete.
[root@svnsubv bugzilla-4.4.11]#

这一步完成后设计到一个文件权限的问题,bugzilla中的目录和文件的权限需要修改配置。

[root@svnsubv opt]# chown -R csvn:csvn bugzilla-4.4.11
[root@svnsubv bugzilla-4.4.11]# find ./ -type d -exec chmod go+rx {} \;
[root@svnsubv bugzilla-4.4.11]# find ./ -type f -exec chmod go+r  {} \;
[root@svnsubv bugzilla-4.4.11]#

接下来要修改httpd的配置,即collabnet_subversion的配置。

/etc/opt/CollabNet_Subversion/conf/httpd.conf

DocumentRoot "/opt/bugzilla-4.4.11"

<Directory "/opt/bugzilla-4.4.11">

    AddHandler cgi-script .cgi

    Options Indexes ExecCGI FollowSymLinks

    DirectoryIndex index.cgi

    AllowOverride None

    Order allow,deny

    Allow from all

</Directory>

另外,还需要修改bugzilla下的配置文件data/params。

'mail_delivery_method' => 'SMTP',

'mailfrom' => 'lenovo-bugs@lenovo.com',

'maintainer' => 'caozy1@lenovo.com',

'maxattachmentsize' => '10000',

'urlbase' => 'http://10.96.20.45/'



升级过程中遇到的问题:

运行checksetup.pl时报包的缺失问题。

[root@svnsubv bugzilla-4.4.11]# ./checksetup.pl 
Can't locate version.pm in @INC (@INC contains: . lib /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8) at Bugzilla/Install/Requirements.pm line 17.
BEGIN failed--compilation aborted at Bugzilla/Install/Requirements.pm line 17.
Compilation failed in require at ./checksetup.pl line 26.
BEGIN failed--compilation aborted at ./checksetup.pl line 26.

这主要是缺少version.pm,进入cpan执行install version即可。

升级完毕后页面报错:

Software error:

Bareword "USER_MATCH_FAILED" not allowed while "strict subs" in use at Bugzilla/Flag.pm line 810.
Bareword "USER_MATCH_MULTIPLE" not allowed while "strict subs" in use at Bugzilla/Flag.pm line 810.
Compilation failed in require at Bugzilla.pm line 36.
BEGIN failed--compilation aborted at Bugzilla.pm line 36.
Compilation failed in require at /opt/bugzilla-4.4.11/index.cgi line 19.
BEGIN failed--compilation aborted at /opt/bugzilla-4.4.11/index.cgi line 19.
For help, please send mail to the webmaster (you@example.com), giving this error message and the time and date of the error.

经过多次尝试,最终得出实验结果为:克隆的server上,运行完4.4.11下的checksetup.pl。当httpd.conf下的DocumentRoot设置在4.4.8下,页面显示没有问题,而切换到4.4.11下后出现上面列出的错误。

152130_jfzu_2342410.jpg

经过多次实验发现,这个错误与bugzilla下的lib目录有关,将4.4.8的lib目录替换掉4.4.11的lib目录后问题解决。

由此来看可能是perl中的模块的问题,比如模块版本。


最后,在cpan中升级已安装的包。在升级过程中,某些包的升级是失败的,中间执行到某一步时cpan卡主很久没有反应,不得以取消。

cpan>upgrade

后来又包version/vpp.pm找不到,查了一下原因,是因为version/vpp.pm所在的目录没有权限,导致非root用户无法访问,修改权限后系统恢复。

至此,升级bugzilla完成。

转载于:https://my.oschina.net/shawnplaying/blog/633984

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值