歡迎您光臨本站 註冊首頁

在Linux上使用Bugzilla跟蹤 bug

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

關於此流行的開源缺陷跟蹤系統的逐步安裝指南
級別: 初級

對於負責提供支持的人而言,保持對問題、難題及其修訂的跟蹤,可能會是一項棘手的任務;不過,有一個完美的開源方案可以滿足這一要求: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。(該列表給出了指向適當代碼區域的鏈接,以供參考。)
1 從 Bugzilla 的站點獲得 最新的 tarball。
2 解壓 Bugzilla tarball。
3 安裝 適當的 Perl 模塊。
4 如果需要,從 CPAN 獲得正確的 Perl 模塊。
5 如果必須執行步驟 4,那麼返回並再次執行 步驟 3, 確認 Perl 模塊正確。
6 在 bugzilla 目錄中 創建 一個 localconfig 文件。
7 配置 localconfig 文件,以訪問 MySQL 資料庫。
8 連接到 MySQL 的實例。
9 為 Bugzilla 創建 一個資料庫帳號。
10 重新執行 Perl 模塊設置檢查。
11 編輯 HTTP 伺服器的配置文件。
12 訪問 Bugzilla 頁面,並使用 checksetup.pl Perl 腳本所創建的管理員 帳號/口令 登錄。
13 完成。

首先訪問 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 ""'。 為需要安裝的每一個 Perl 模塊執行這個命令。如果您已經連接到 Internet,那麼會自動地下載和安裝所 需要的模塊。

完成所有所需模塊的安裝后,重新運行 checksetup.pl 腳本。如果一切正常, 您應該會看到指出所有需要的 Perl 模塊都已經安裝的輸出。

配置 Bugzilla
這個腳本在 bugzilla 目錄中創建一個名為 localconfig 文件(如清單 3 所示)。
清單 3. Bugzilla 配置

$ vi localconfig


配置 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

$ ./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 目錄中運行。將下面這兩行添加到 指示符中:


......
Options ExecCGI FollowSymLinks <---- add this line.
AllowOverride Limit <---- add this line.




最後一個步驟,通過將下面的內容添加到 httpd.conf 中 DirectoryIndex 那一行的最後,您必須配置 Apache,以便在進入 Bugzilla 目錄時查找 index.cgi 文件: DirectoryIndex index.html index.html.var index.cgi。

就是這樣!現在您應該能夠訪問 http:///bugzilla 的 Bugzilla 頁。 記著使用本文前面通過 checksetup.pl Perl 腳本創建的管理員帳號/口令進行登錄。

結束語
使用新安裝的 Bugzilla,您可以建立並配置其他許多功能。我鼓勵您去研究 Bugzilla 的各種功能,並指出您想 要如何使用它們(我計劃使用 Bugzilla 伺服器作為跟蹤我們部門中出現的眾多問題的方法)。 作為一個代碼版本系統,或者作為一個問題標籤(problem-ticketing)系統,Bugzilla 足以滿足 您的商業需求。

參考資料
- 您可以參閱本文在 developerWorks 全球站點上的 英文原文。

- 訪問 Bugzilla Web 站點,下載 最新版本的 Bugzilla。

- 務必訪問 perl.com 獲得一般信息,訪問 CPAN 獲得關於可用於 Perl 的眾多模塊的信息。

- 要深入了解 MySQL,請訪問 MySQL Web 站點以得到下載和文檔。

- 「在 RedHat Linux 7 上安裝 CVS 並將其配置為 SCM 資源庫」(developerWorks,2002 年 5 月)重點介紹在 RedHat Linux 7 上安裝和配置 Concurrent Versions System, 包括如何建立用戶環境以及如何對安裝進行測試。

- 「開發者和愛好者的 CVS」(developerWorks,2001 年 3 月)是介紹 CVS 的教程,CVS 通過管理軟體包更新來幫助開發人員以靈活和協作的方式構建軟體。

- 「功能豐富的 Perl: 管理 Linux 配置文件」(developerWorks,2004 年 6 月) 闡明了 CVS 可以如何幫助備份、分佈 Linux 配置文件,並讓這些最為麻煩的文件變得可以移植。

- 訪問 Kernel bug tracker 來公布關於傳統(不是發行版本)Linux 內核的 bug。

- 了解使用 Bugzilla 的部分 公司、組織和項目(共 394 個), 其中包括 NASA、Apache、Eclipse、GlaxoSmithKline、Novell、Sandia Labs、W3C、Wikipedia 和 IBM。

- 需要以下版本的軟體來支持您的 Linux 系統上的 Bugzilla 2.18rc3:
- MySQL version 3.23.41
- 某個 HTTP Web 伺服器,最好是 Apache 或者 IBM_HTTP
- 某個郵件傳輸代理,比如 Sendmail 8.7
- 另外需要 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

- 在 developerWorks Linux 專區 可以找到更多為 Linux 開發人員準備的參考資料。

- 通過參與 developerWorks blogs 加入 developerWorks 社區。

- 在 Developer Bookstore Linux 區訂購 打折出售的 Linux 書籍。

- 訂購免費的 SEK for Linux, 這套 DVD(兩張),包含了來自 DB2?、Lotus?、Rational?、 Tivoli? 和 WebSphere? 的用於 Linux 的最新 IBM 試用軟體。

- 使用可以直接從 developerWorks 下載的 IBM 試用軟體 來改革您的下一個 Linux 開發項目。

關於作者
Jason "Jay" Clark 是北卡羅萊納州 Research Triangle Park 的 IBM developerWorks 團隊的系統集成師和網路管理員。 他當前擁有多項網路認證,精通 Linux 和 Microsoft 操作系統。您可以通過 jclark4@us.ibm.com 與 Jay 聯繫。

[火星人 ] 在Linux上使用Bugzilla跟蹤 bug已經有649次圍觀

http://coctec.com/docs/linux/show-post-190444.html