[转] 在 Linux 上使用 Bugzilla 跟踪 bug

news/2024/7/8 3:23:09

在 Linux 上使用 Bugzilla 跟踪 bug

内容:
安装的先决条件
开始安装
结束语
参考资料
关于作者
对本文的评价
相关内容:
在 RedHat Linux 7 上安装 CVS 并将其配置为 SCM 资源库
开发者和爱好者的 CVS
功能丰富的 Perl: 管理 Linux 配置文件
订阅:
developerWorks 时事通讯
关于此流行的开源缺陷跟踪系统的逐步安装指南

级别: 初级

Jason "Jay" Clark
developerWorks 系统集成师, IBM
2005 年 4 月 18 日

对于负责提供支持的人而言,保持对问题、难题及其修订的跟踪,可能会是一项棘手的任务;不过,有一个完美的开源方案可以满足这一要求: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:// /

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 足以满足您的商业需求。

参考资料

关于作者
Jason "Jay" Clark 是北卡罗莱纳州 Research Triangle Park 的 IBM developerWorks 团队的系统集成师和网络管理员。他当前拥有多项网络认证,精通 Linux 和 Microsoft 操作系统。您可以通过 jclark4@us.ibm.com 与 Jay 联系。

 





http://www.niftyadmin.cn/n/3652141.html

相关文章

Shell函数小介绍

内容概要一、Shell函数介绍二、Shell函数格式函数返回值函数传参函数变量的作用范围递归阶乘递归目录创建函数库一、Shell函数介绍 在我们编写Shell脚本的时候&#xff0c;经常会发现在多个地方使用了同一段代码。如果只是一小段代码也无关紧要&#xff0c;但是如果多次重写大…

Shell数组介绍及排序方法

内容概要一、数组定义方法二、数组查看方法查看数组内容查看数组内元素个数遍历数组内容三、数组操作数组切片数组替换删除数组数组追加元素向函数传数组参数从函数返回数组四、数组排序冒泡排序选择排序反转排序一、数组定义方法 方法一 数组名(value0 value1 value2 …) 方法…

sort,uniq,tr等常用命令及正则表达式

内容概要一、sort命令二、uniq命令三、tr命令四、cut命令五、正则表达式1、基础正则表达式2、扩展正则表达式一、sort命令 srot 用于对文件内容进行排序。 语法格式&#xff1a; sort [选项] 参数 cat file | sort 选项 常用选项&#xff1a; -f&#xff1a;忽略大小写&#…

[转] 在 MySQL 数据库中使用 C 执行 SQL语句

在 MySQL 数据库中使用 C 执行 SQL语句内容&#xff1a;执行 SQL 语句不返回数据的 SQL 语句返回数据的语句全部立即数据检索的函数mysql_fetch_rowmysql_fetch_rowmysql_data_seekmy_sql_row_tell, mysql_row_seekmysql_free_result检索数据一次检索一行数据参考资料 关于作者…

Java并发编程面试题

目录 一、线程、进程、程序 二、线程状态 三、线程的七大参数 四、线程有什么优缺点&#xff1f; 五、start 和 run 方法有什么区别&#xff1f; 六、wait 和 sleep的区别&#xff1f; 七、lock与synchronized的区别 八、Volatile关键字是线程安全的吗&#xff1f;底层原…

awk编辑器及各种常用命令

内容概要一、awk工作原理二、awk命令格式三、按行输入文本命令大全四、按字段输出文本&#xff08;可以想象成列&#xff09;命令大全五、通过管道&#xff0c;双引号调用shell命令大全六、查看密码输入错误的用户一、awk工作原理 逐行读取文本&#xff0c;默认以空格或tab键为…

[转] 将数据库访问集成到 Linux 应用中

将数据库访问集成到 Linux 应用中内容&#xff1a;为什么使用独立数据库&#xff1f;MySQL 数据库MySQL API安全性参考资料 对本文的评价订阅:developerWorks 时事通讯构建由数据库支持的网站于明俭2001 年 2 月 本文描述了 MySQL&#xff0c;一种利用第三方数据库开发电子贸易…

[转] 基于MySQL的数据库集群系统的实现

基于MySQL的数据库集群系统的实现内容&#xff1a;第一节 数据库集群技术的现状第二节 目前数据库应用状况第三节 暴露出来的问题第四节 如何解决第五节 针对于"LinuxApachePHPMySQL"的第一类应用问题的解决方式第六节 MySQL-HA-Proxy方案的提出第七节 MySQL Client …