Friday, June 19, 2009

Ubuntu下安装Bugzilla

Buggie
今天整了一下Bugzilla, 过程那叫一个痛苦, 缘起还得从MySQL讲起.

由于Bugzilla依赖MySQL, 偏偏9.04里面依赖的版本是5.0, 而我以前装的是MySQL 5.1... 好吧, 肯定是免不了要把以前的MySQL卸载了的, 那就装个5.0吧 (埋怨自己干嘛非得追新...). 这时一件很悲剧的事情发生了, dpkg错误, 这是我最不愿意看到的东西, 依稀仿佛记得以前整AUCTeX的时候也遇到过类似的情况, 当时因为错误严重, 差点就重装了. 好了, 这次算我运气好, 咱又遇上了:
Aborting downgrade from (at least) 5.1 to 5.0.
dpkg: error processing /var/cache/apt/archives/mysql-server-5.0_5.1.30really5.0.75-0ubuntu10.2_i386.deb (--unpack):
subprocess pre-installation script returned error exit status 1
Selecting previously deselected package mysql-server.
Unpacking mysql-server (from .../mysql-server_5.1.30really5.0.75-0ubuntu10.2_all.deb) ...
Processing triggers for man-db ...
Errors were encountered while processing:
/var/cache/apt/archives/mysql-server-5.0_5.1.30really5.0.75-0ubuntu10.2_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
咱可是那种遇到困难就退缩的人? 显然不是! 俗话说"困难像弹簧, 你弱他就强", 这等小事算个啥啊, 在无敌的Google大法面前颤抖吧, 哇哈哈~ 下面隆重介绍Google大神的答案:
$ sudo rm /var/lib/mysql/debian-5.1.flag
主要原因是这个文件影响了MySQL的降级. 然后重新安装MySQL就行了, 我用的是下面的命令:
$ sudo apt-get -f install

经历了MySQL的煎熬, 现在开始安装Bugzilla, 中途会有对话框弹出来叫你设置, 需要输入MySQL中root用户的密码 (这就得要求安装的时候MySQL是启动的, 因为它会去建数据库和表), MySQL中新建的用户bugzilla3的密码, Bugzilla管理员的邮箱 (同时也是账户), 管理员的密码. 顺利完成之后, 麻烦事才刚刚开始.

先来讲讲怎么用Bugzilla. 首先你需要一个Web服务器, 我用的Apache. 如果你没有修改Apache的默认配置的话, 通过网址http://localhost/cgi-bin/bugzilla3/index.cgi就可以访问了. 但现在显示出来的只有文字, 图片、CSS什么的都不能访问, 这时就需要在你在Apache下设置的网站根目录下放置一个链接, 指向/usr/share/bugzilla3/web/:
$ ln -s /usr/share/bugzilla3/web/ bugzilla3
这个链接的名字是固定的.

修正: Bugzilla安装好之后会在/etc/apache2/conf.d下放置一个叫做bugzilla3的链接指向/usr/share/doc/bugzilla3/examples/basic.conf, 这是一个包含VirtualHost的配置文件, 经测试, 会影响其它VirtualHost的访问. 于是我将那个文件的内容合并到了最初始的配置文件里, 并移除了链接, 同时删除其中一行:
Alias /cgi-bin/bugzilla3 /usr/lib/cgi-bin/bugzilla3

使用刚才安装时输入的邮箱就可以登录管理员账户了, 当然, 会有一系列的东西等着你去设置, 毕竟默认配置都是不完美的.

Bugzilla使用邮箱作为账户, 如果有人来注册新账户, 在输入自己的邮箱之后, 服务器就会发送一封邮件给刚才的邮箱进行确认. 这时才发现我电脑上的邮件服务器还没配好, 就顺便折腾了一下. 我用的是Postfix, 不知道为什么, Ubuntu源里安装好的Postfix在用sendmail发邮件的时候会找不到main.cf这个配置文件, 到/etc/postfix下一看才发现根本就没有... 我也懒得自己去配了, 就用的别人的一个例子, 需要安装postfix-doc这个包, 安好之后会有/usr/share/doc/postfix-doc/examples/main.cf.default.gz这么一个文件, 解压, 把文件拷过去重命名就行了. 注意: 不要使用/usr/share/postfix/main.cf.dist这个文件, 里面的配置是不完全的, 我最开始就是用的这个, 结果运行的时候出现了一堆错误. 这时再用sendmail试试, 又发现了一个新错误:
postdrop: warning: unable to look up public/pickup: No such file or directory
在Ubuntu官方论坛的一篇帖子里找到了解决方法:
$ sudo mkfifo /var/spool/postfix/public/pickup
$ sudo /etc/init.d/postfix restart
这下就可以顺利通过sendmail发送邮件了, 不过我电脑上发出去的邮件地址还有点难看, 等有时间再弄一弄, 呵呵~

Bugzilla刚用, 配置等以后再研究了, 到时候肯定还会写一篇讲配置的.

P.S. 这是我目前为止用的标签最多的一篇文章.

No comments:

Post a Comment