關于此流行的開源缺陷跟蹤系統的逐步安裝指南
<name></name>Jason "Jay" Clark
developerWorks 系統集成師, IBM
2005 年 4 月 18 日
<abstract-extended></abstract-extended>對于負責提供支持的人而言,保持對問題、難題及其修訂的跟蹤,可能會是一項棘手的任務;不過,有一個完美的開源方案可以滿足這一要求:Bugzilla。安裝它之后,您就可以方便地跟蹤 bug 了,并可在發現特定的問題和解決方案時得到通知。本文給出了在 Linux? 系統上安裝 Bugzilla 的逐步指南。
Bugzilla 是一個
缺陷
或
bug 跟蹤系統
—— 這個系統能夠讓個人或者團隊開發人員保持對他們的產品中突出 bug 的跟蹤。此類系統允許用戶跟蹤 bug 和代碼修改,與其他隊友溝通,提交和回顧修訂補丁,實現質量保證。
Bugzilla 在開發人員社區中非常著名,原因在于:
-
它是一個功能全面的(full-featured)實現。
-
它得到開發人員社區的積極支持,并且經常得到很多整日使用它的用戶的積極升級。
-
它是開源的。
-
它是免費的。
很多組織都在使用 Bugzilla,包括 IBM 以及 IBM 的 Linux Technology Center。您可以按照文中的 Bugzilla 安裝說明,將這個 bug-and-solution 跟蹤工具添加到您的 Linux 系統中。
安裝的先決條件
Bugzilla 的最新穩定版本是 2.18rc3,它要求在您的 Linux 系統上已經安裝了下面的軟件版本(請參閱
參考資料
中的鏈接):
-
Perl 版本 5.6.0 或者更高的版本,它應該包含下面的 Perl 模塊版本:
-
AppConfig
1.52
-
CGI
2.93
-
Data::Dumper
,任意版本
-
Date::Format
2.21
-
DBI
1.36
-
DBD::mysql
2.1010
-
File::Spec
0.82
-
File::Temp
,任意版本
-
Template
2.08
-
Text::Wrap
2001.0131
-
MySQL 版本 3.23.41 或者更高的版本。
-
一個 HTTP Web 服務器,最好是 Apache 或者 IBM_HTTP 服務器(這里我將使用 Apache)。
-
一個郵件傳輸代理,比如 Sendmail 8.7 或者更高的版本。
如果您不能確定是否已經安裝了正確的 Perl 和 MySQL 軟件版本以及 Apache,可以這樣來檢驗那些軟件包:
-
對于 Perl,輸入
$ perl -v
。
-
對于 MySQL,輸入
$ mysql -V
。
要檢驗 Web 服務器的版本,您可以這樣訪問 Web 服務器的測試頁:
http://<your-machine-name>/
Web 服務器的測試頁將為您提供關于服務器的所有基本信息,這是一個極好的指示工具,表明您已經正確地安裝了服務器!
由于本文只介紹 Bugzilla 的安裝,所以假定您已經擁有可用的 Perl、MySQL、Apache 和 sendmail,或者可以安裝它們。(如果您需要它們,請參閱
參考資料
部分。)
開始安裝
時間緊張?
如果您時間緊張,那么可以參考此列表來安裝 Bugzilla。(該列表給出了指向適當代碼區域的鏈接,以供參考。)
-
從 Bugzilla 的站點獲得
最新的 tarball
。
-
解壓
Bugzilla tarball。
-
安裝
適當的 Perl 模塊。
-
如果需要,
從 CPAN 獲得正確的 Perl 模塊
。
-
如果必須執行步驟 4,那么返回并再次執行
步驟 3
,確認 Perl 模塊正確。
-
在 bugzilla 目錄中
創建
一個 localconfig 文件。
-
配置
localconfig 文件,以訪問 MySQL 數據庫。
-
連接到 MySQL 的實例。
-
為 Bugzilla
創建
一個數據庫帳號。
-
重新執行
Perl 模塊設置檢查。
-
編輯
HTTP 服務器的配置文件。
-
訪問 Bugzilla 頁面,并使用 checksetup.pl Perl 腳本所創建的管理員 帳號/口令 登錄。
-
完成
。
|
首先訪問 Bugzilla Web 站點(請參閱
參考資料
部分的鏈接),下載應用程序的最新 tarball。然后將 tarball 放入一個 Web 服務器用戶可以訪問的目錄。在本例中,由于您正在使用 Apache Web 服務器,所以您需要將 tarball 下載到 Apache 的默認目錄中。大部分 Apache 的基本安裝允許“apache”用戶訪問 /var/www/html/ 目錄。
請查閱 Apache 安裝的文件,以確保將 tarball 放入了可以訪問的目錄。在任何情況下您都可以根據需要對此進行修改。
解開 Bugzilla
清單 1 展示了如何將所有 Bugzilla 文件解壓到一個名為 bugzilla-2.1.8rc3 的目錄中。簡單起見,您可以選擇使用所示的
move
命令將那個目錄重命名為“bugzilla”。
清單 1. 解壓 Bugzilla tarball
$ cd /var/www/html/
$
tar zxvf bugzilla-2.18rc3.tgz
$
mv bugzilla-2.18rc3/ bugzilla/
|
安裝 Perl 模塊
清單 2 中的 Perl 腳本檢查您的系統上是否已經安裝了所需的 Perl 模塊。它還會確認您是否擁有支持曲線圖和報表等特性的可選 Perl 模塊。
清單 2. Perl 模塊安裝
$ su root
$
./checksetup.pl
|
這個腳本運行后,將告訴您需要哪些模塊,以及從 CPAN 倉庫安裝它們所需要的相應的 CPAN 命令。那個命令類似于以下命令:
$
perl -MCPAN -e 'install "<module-name>"'
。為需要安裝的每一個 Perl 模塊執行這個命令。如果您已經連接到 Internet,那么會自動地下載和安裝所需要的模塊。
完成所有所需模塊的安裝后,重新運行 checksetup.pl 腳本。如果一切正常,您應該會看到指出所有需要的 Perl 模塊都已經安裝的輸出。
配置 Bugzilla
這個腳本在 bugzilla 目錄中創建一個名為 localconfig 文件(如清單 3 所示)。
清單 3. Bugzilla 配置
配置 Bugzilla 應用程序使用您的本地數據庫服務器。該命令只是會在 vi 編輯器中打開這個文件。在此,您只需要修改這個文件中的一個值,即
$db_pass
字段,這是 bugzilla 的 MySQL 帳號(您馬上就要創建它)所使用的口令。如果您擁有不只一個 “定制的” MySQL 安裝,那么您應該檢查所有
$db
設置,因為它們對應于主機名、通信端口,等等。
為 Bugzilla 創建一個數據庫帳號
然后,您需要為 Bugzilla 創建 MySQL 數據庫。連接到 MySQL 數據庫實例,執行下面的命令:
清單 4. 添加 Bugzilla MySQL 帳號(版本 4.0 或者更新版本)
mysql>
GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY '$db_pass';
mysql>
FLUSH PRIVILEGES;
|
這組命令創建了
bugs
用戶,并授予那個用戶帳號本地連接到“bugs”數據庫時的多級訪問權限。如果您要連接到遠程的數據庫,或者使用任何其他定制的配置,可以參閱 MySQL Administration 文檔(請參閱
參考資料
),以獲得類似的命令。
再次檢查那些 Perl 模塊
為了再一次讓自己確信已經安裝了所需要的模塊,請在 Bugzilla 目錄中重新運行 checksetup.pl 腳本(清單 5)。現在它會檢測到 localconfig 已經被修改,并且它會啟動用戶界面編輯進程。之后,使用在 localconfig 文件中指定的帳號創建“bugs”數據庫,并在數據庫中創建必要的表。
清單 5. 在 Bugzilla 目錄中重新運行 checksetup.pl
最后,在這個過程中會詢問您希望如何配置 Bugzilla 的管理員帳號。
編輯 HTTP 服務器的配置
在大部分基本的 Apache 安裝中,httpd.conf 文件位于 /etc/httpd/conf/ 目錄。一定要檢查您的安裝,確保從正確的目錄中打開 Apache 配置文件。使用下面的命令打開它:
$ vi /etc/httpd/conf/httpd.conf
。
您需要編輯這個文件中的一些行,令 Apache 能夠利用 Bugzilla。首先,您需要允許 Apache 運行 cgi-bin 目錄之外的 CGI 腳本。為此,必須在 httpd.conf 中添加(或者去除注釋)以下這一行:
AddHandler cgi-script .cgi
。
然后,您需要允許 Bugzilla 的 .cgi 文件能夠在 Bugzilla 目錄中運行。將下面這兩行添加到 <Directory /var/www/html > 指示符中:
<Directory /var/www/html>
......
Options ExecCGI FollowSymLinks
<---- add this line.
AllowOverride Limit
<---- add this line.
</Directory>
|
最后一個步驟,通過將下面的內容添加到 httpd.conf 中 DirectoryIndex 那一行的最后,您必須配置 Apache,以便在進入 Bugzilla 目錄時查找 index.cgi 文件:
DirectoryIndex index.html index.html.var
index.cgi
。
就是這樣!現在您應該能夠訪問 http://<your-server-name>/bugzilla 的 Bugzilla 頁。記著使用本文前面通過 checksetup.pl Perl 腳本創建的管理員帳號/口令進行登錄。
結束語
使用新安裝的 Bugzilla,您可以建立并配置其他許多功能。我鼓勵您去研究 Bugzilla 的各種功能,并指出您想要如何使用它們(我計劃使用 Bugzilla 服務器作為跟蹤我們部門中出現的眾多問題的方法)。作為一個代碼版本系統,或者作為一個問題標簽(problem-ticketing)系統,Bugzilla 足以滿足您的商業需求。
參考資料
關于作者
Jason "Jay" Clark 是北卡羅萊納州 Research Triangle Park 的 IBM developerWorks 團隊的系統集成師和網絡管理員。他當前擁有多項網絡認證,精通 Linux 和 Microsoft 操作系統。您可以通過
jclark4@us.ibm.com
與 Jay 聯系。
|
|