A few weeks ago I updated a 3 year old installation of Bugzilla to the most recent version, and made these notes along the way. The Bugzilla online documentation is pretty good and my plan was formed using their docs as a guide.
- Send advance warning to users
- Log on to site, edit params and enter some text under 'shutdown site'
- Backup db using this commmand
mysqldump --opt -u bugs -p bugs > bugs_backup_$(date +%d%m%y).sql
- Download and extract bugzilla 3.4.6
cd ~ wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.4.6.tar.gz tar fvzx bugzilla-3.4.6.tar.gz cd /var/www/html/ mv bugzilla bugzilla.old cp -r ~/bugzilla-3.4.6 ./bugzilla cp -r bugzilla.old/localconfig* bugzilla
Later you will install the DBD::mysql perl module which requires mysql header files. So if you don't have mysql-devel, install it now. Also the Image::Magick perl module may fail to build from cpan (this is what happened to me), this can be installed by yum as an alternative.
yum install mysql-devel ImageMagick-perl.i386 cd bugzilla ./checksetup.pl
checksetup.pl will tell you to install missing perl modules using cpan, however this requires an internet connection. I used ntlmaps to proxy through our MS ISA server as my bugzilla server doesn't have Internet access. I got ntlmaps from another server on the network:
scp -r root@bugtest:/root/ntlm* . cd ntlmaps-0.9.9.0.1 nohup python main.py export http_proxy=http://localhost:5865 export ftp_proxy=ftp://localhost:5865 cd /var/www/html/bugzilla
Install optional updates:
# failedĀ --> /usr/bin/perl install-module.pl Image::Magick # skipped --> /usr/bin/perl install-module.pl Authen::Radius /usr/bin/perl install-module.pl SOAP::Lite /usr/bin/perl install-module.pl TheSchwartz /usr/bin/perl install-module.pl Daemon::Generic /usr/bin/perl install-module.pl SOAP::Lite
Install compulsary updates:
/usr/bin/perl install-module.pl DBD::mysql /usr/bin/perl install-module.pl CGI /usr/bin/perl install-module.pl Digest::SHA /usr/bin/perl install-module.pl DateTime /usr/bin/perl install-module.pl DateTime::TimeZone /usr/bin/perl install-module.pl Template /usr/bin/perl install-module.pl Email::MIME /usr/bin/perl install-module.pl Email::MIME::Encodings
I also needed these perl modules, even though they weren't listed by checksetup.pl:
/usr/bin/perl install-module.pl DateTime::Locale /usr/bin/perl install-module.pl List::MoreUtils
Finished with ntlmaps now, it can be stopped
kill $(ps x | grep main.py | grep -v grep | awk {'print $1'})
export http_proxy=
export ftp_proxy=
Run checksetup again, this bit can take some time while the db is upgraded:
./checksetup.pl
- Fix any more problems, run again if required.
- Once finished log into bugzilla, put maintenance page back up. This option has now moved to Administration
- Run sanity check, fix any problems.
- Change any css and templates that you lost in the upgrade.
- Reopen the site for logons when you are ready.

