這裡介紹如何在 Ubuntu Linux 中安裝 Bugzilla 這個 bug 追蹤與管理系統。

Bugzilla 是一套由 Mozilla 所開發的軟體缺陷追蹤的網路應用程式,它可以幫助軟體開發團隊搜集 bugs 的回報資料,並且提供一個整合性的追蹤與管理系統。

以下介紹在 Ubuntu Linux 中如何安裝 Bugzilla,安裝方式有兩種,一種是使用 apt 的方式,另外一種是手動安裝。

使用 apt 安裝 Bugzilla

如果是 Debian 系列的 Linux(如 Ubuntu),可以使用 apt 安裝,但是缺點是官方的套件庫只有舊版的 Bugzilla 套件,若要安裝最新版的,就要自己手動安裝

以下是以 apt 安裝 Bugzilla 的過程,首先執行:

apt-get install bugzilla3

安裝過程還需要一些簡單的設定:

bugzilla-1
是否要進行設定
bugzilla-2
輸入資料庫的管理者密碼
bugzilla-3
輸入 Bugzilla 管理者的電子郵件位址
bugzilla-4
輸入 Bugzilla 管理者實際名字
bugzilla-5
輸入 Bugzilla 管理者密碼
bugzilla-6
確認 Bugzilla 管理者密碼

安裝完成後,開啟 http://YOUR-IP-ADDR/bugzilla3/,就可以開始使用了。

bugzilla-7

若要移除 bugzilla3,則執行:

apt-get remove bugzilla3

手動安裝 Bugzilla

使用 apt 安裝雖然方便,但缺點就是版本太舊,如果想要安裝新版的 Bugzilla,就要手動安裝。

Perl

檢查 Perl 版本:

perl -v

版本至少要 5.8.1 以上,如果你的 Perl 版本太舊,請先升級再繼續。

MySQL 資料庫

Bugzilla 支援 MySQL、PostgreSQL 與 Oracle,這裡我們選擇 MySQL。

檢查 MySQL 版本:

mysql --version

版本至少要 5.0.15 以上,如果你的 MySQL 版本太舊,請先升級再繼續。

如果系統沒有安裝 MySQL,可用 apt 安裝:

sudo apt-get install mysql-server mysql-admin mysql-client

安裝好 MySQL 後,新增一個 MySQL 帳號:

mysql -u root -p

執行下面這段 SQL 指令,新增一個 bugzilla@localhost 帳號:

mysql> GRANT SELECT, INSERT,
       UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,
       CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugzilla.*
       TO bugzilla@localhost IDENTIFIED BY 'DB_PASSWORD';
mysql> FLUSH PRIVILEGES;

其中 DB_PASSWORD 是自己設定的密碼。

Apache 網頁伺服器

網頁伺服器就沒有什麼限制,只要可以執行 CGI 指令稿的伺服器就可以,最常見的就是 Apache(1.x 或 2.x 版都可以):

sudo apt-get install apache2

Bugzilla

下載 Bugzilla 原始碼:

wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.4.2.tar.gz

解壓縮後,放到適合的位置:

tar zxvf bugzilla-4.4.2.tar.gz
sudo mv bugzilla-4.4.2 /usr/local/

依照自己擺放的位置,在 Apache 設定檔中加入 alias:

Alias /bugzilla/ /usr/local/bugzilla-4.4.2/
<directory /usr/local/bugzilla-4.4.2>
AddHandler cgi-script .cgi
Options +ExecCGI
DirectoryIndex index.cgi index.html
AllowOverride Limit FileInfo Indexes Options
</Directory>

檢查 Bugzilla 需要的 Perl 模組:

cd /usr/local/bugzilla-4.4.2/
sudo ./checksetup.pl --check-modules

這裡會列出缺少的 Perl 模組,並不是所有的模組都一定要安裝,以下這些是必要的部分:

  • CGI (3.51)
  • Date::Format (2.23)
  • DateTime (0.28)
  • DateTime::TimeZone (0.71)
  • DBI (1.54)
  • DBD::mysql (4.001) (使用 MySQL)
  • DBD::Pg (2.7.0) (使用 PostgreSQL)
  • DBD::Oracle (1.19) (使用 Oracle)
  • Digest::SHA (不限版本)
  • Email::Send (2.04)
  • Email::MIME (1.904)
  • Template (2.22)
  • URI (1.37)

其餘的部分可以自己判斷,不需要的就不用裝。

你可以自己使用 apt 安裝缺少的 Perl 模組,例如:

sudo apt-get install libdbd-pg-perl libapache2-mod-perl2

或是直接使用 install-module.pl 一次全部裝:

sudo perl install-module.pl --all

安裝完 Perl 模組之後,接著建立基本的設定檔:

sudo ./checksetup.pl

接著編輯 ./localconfig 這個產生出來的設定檔,依照自己的環境來設定:

$db_host = 'localhost';   # 資料庫主機位址
$db_name = 'bugzilla';    # 資料庫名稱
$db_user = 'bugzilla';    # 資料庫使用者帳號
$db_pass = 'DB_PASSWORD'; # 資料庫使用者密碼
$webservergroup = 'www-data'; # 設定檔案的 group

資料庫這部分的設定要跟上面 MySQL 的設定相同(帳號、密碼等)。

設定好之後,再執行一次 checksetup.pl

sudo ./checksetup.pl

在過程中會需要設定 Bugzilla 管理者的帳號與密碼:

Looks like we don’t have an administrator set up yet. Either this is
your first time using Bugzilla, or your administrator’s privileges
might have accidentally been deleted.
Enter the e-mail address of the administrator:

這裡就依照指示依序輸入管理者的 Email 與密碼,這樣就完成了。

接著打開瀏覽器,打開 Apache 的 alias 設定的網址 http://YOUR-IP-ADDR/bugzilla/,就可以開始使用了。

bugzilla-8

參考資料:BugzillaAlex Hughes’ BlogaskubuntuThe Geek Stuff