Time-stamp: "Sep 12 2003"
バグトラッキングシステム Bugzilla の日本語版のインストール方法と管理方法について説明します。
Bugzilla (バグジラ) とはソフトウェア開発につきもののバグを管理するためのソフトウェアです。
詳しくは はじめての Bugzilla が参考になります。少し古いバージョンの説明ですので画面デザインは異なるところもありますが、説明文は問題ありません。
バグトラッキングシステムは Bugzilla 以外にもあります。Momonga Project Diary(2002-09) (9月28日 以降) に各システムの比較があります。[slashdot] カーネルのバグトラックにBugzilla にもあるとおり、Bugzilla は使用事例が増えてきています。
日本語版 Bugzilla は もじら組 の Bugzilla-jp で配付されています。しかし 2003-08-22 現在配付されている bugzilla-2.16.1-ja-20021116 は
という問題がありますので、上記の問題を修正したバージョンへアップデートするためのパッチをここに置いておきます。
bugzilla-2.16.3-to-2.16.3-ja-20030822.diff.gz (2003-08-22, 175kb)
bugzilla-2.16.1-ja-20021116 からの変更点 (テキスト)
パッチの当て方は以下のとおりです。
$ tar zxvf bugzilla-2.16.3.tar.gz
$ cd bugzilla-2.16.3/ $ zcat ../bugzilla-2.16.3-to-2.16.3-ja-20030822.diff.gz | patch -p1
$ cat ../bugzilla-2.16.3-to-2.16.3-ja-20030822.diff.gz | patch -p1としてください。
上記のパッチは 日本語版 bugzilla-2.16.1-ja-20021116 に当てるパッチではありません。英語版 bugzilla-2.16.3 へのパッチです。なぜ 2.16.1-ja-20021116 へのパッチではないかというと、そのパッチファイルを作成してみたところ上記のパッチの 2 倍のファイルサイズになってしまったというだけです。
動作確認は Apache 1.3.27, MySQL 3.23.56, Perl 5.6.1 (RedHatLinux7.1)
で主におこないました。すべてソースコードをコンパイルしてインストールしたものです。
Apache 2.0.47, Perl 5.8.0 (これもソースコードから) でも少し動作確認しました。
Bugzilla 公式 Web サイトの documentation にある Bugzilla 2.16.3 というドキュメントが一番参考になります。その中でも Installation という章がインストールについての説明です。ただし英語です。
必要なもの・インストール方法について以下に書きます。
# ln -s /usr/sbin/sendmail /usr/lib/sendmail
$ cd /var/www/ $ tar zxvf bugzilla-2.16.3.tar.gz (日本語版へのパッチを適用) $ ln -s bugzilla-2.16.3 bugzilla
$ cd /var/www/bugzilla $ perl -pi -e 's@#\!/usr/bonsaitools/bin/perl@#\!/usr/bin/perl@' *cgi *pl Bug.pm processmail syncshadowdb
# mkdir -p /usr/bonsaitools/bin # ln -s /usr/bin/perl /usr/bonsaitools/bin/perl
# cd /var/www/bugzilla # chown -R apache:apache .そして各ファイルの実行権を所有ユーザだけに与えます (つまりファイル所有ユーザ以外からファイル読み込み・書き込み・実行権限を剥奪します)。
# cd /var/www/bugzilla # chmod -R go-rwx .
$ ./checksetup.pl
--- localconfig.org Wed Sep 3 16:01:49 2003
+++ localconfig Wed Sep 3 16:05:17 2003
@@ -18,7 +18,7 @@
# Because it's possible that these files aren't in your path, you can specify
# their location here.
# Please specify only the directory name, with no trailing slash.
-$mysqlpath = "";
+$mysqlpath = "/usr/bin";
#
@@ -48,7 +48,7 @@
# and you cannot set this up any other way. YOU HAVE BEEN WARNED.
# If you set this to anything besides "", you will need to run checksetup.pl
# as root, or as a user who is a member of the specified group.
-$webservergroup = "nobody";
+$webservergroup = "apache";
@@ -68,7 +68,7 @@
# If you use apostrophe (') or a backslash (\) in your password, you'll
# need to escape it by preceding it with a \ character. (\') or (\\)
#
-$db_pass = '';
+$db_pass = 'bugspass';
webservergroup
がどうのこうのという警告がでます。
# ./checksetup.pllocalconfig が存在する場合、そのファイルの記述にしたがって MySQL サーバと接続します。そして localconfig に書かれている bugs データベース が無ければ作成して、データベースの中の テーブル や カラム も作成します。
Looks like we don't have an administrator set up yet. Either this is your first time using Bugzilla, or your administrator's privs might have accidently gotten deleted at some point. Enter the e-mail address of the administrator: admin@foo.or.jp You entered 'admin@foo.or.jp'. Is this correct? [Y/n] Y Enter the real name of the administrator: Admin User Enter a password for the administrator account: パスワードを入力します Please retype the password to verify: パスワードを入力します
以上で Bugzilla のインストールは完了です。
バグレポートに関するデータはすべて MySQL のデータベースに保存されます。このデータベースをバックアップする方法について説明します。
ディレクトリをバックアップするだけです。Bugzilla のデータを格納する bugs
データベースは、MySQL のデータディレクトリにある bugs ディレクトリをバックアップすることで保存できます。ほかにも MySQL の管理情報を記録した mysql ディレクトリも保存しておくとよいでしょう。
$ cd /var/lib/mysql $ tar zcvf /home/mysql/bz-20030903.tar.gz bugs/ mysql/
バックアップしたデータの復元も、MySQL サーバを止めてから バックアップした同じディレクトリに書き戻すだけです。
mysqlhotcopy を使用します。ただしこのコマンドを使用するためには以下の方法で mysqlデータベースの SELECT 権限と MySQL の RELOAD 権限を有効にしておく必要があります。
(MySQL の rootユーザで実行するなら元からすべての権限があるので以下の権限変更は必要ありません。ここでは一般ユーザでバックアップする方法を説明します)
$ mysql -u root -p
Enter password:
mysql> use mysql;
mysql> update user set reload_priv='Y' where user='bugs';
( bugs のところは Bugzilla が使用するユーザを指定します)
mysql> grant select on mysql.* to bugs@localhost;
mysql> flush privileges;
mysql> exit;
mysqlhotcopy は以下のように使います。
$ mysqlhotcopy -u bugs -p <bugsユーザのパスワード> <バックアップするデータベース> <コピー先のディレクトリ>
たとえば以下のシェルスクリプトを実行すると /home/mysql/20030912-1700 といったディレクトリの中に bugs ディレクトリと mysql ディレクトリがコピーされます。
#!/bin/sh BACKUP_DIR=/home/mysql/`date +%Y%m%d-%H%M` mkdir -p $BACKUP_DIR mysqlhotcopy -u bugs -p passbugs bugs $BACKUP_DIR mysqlhotcopy -u bugs -p passbugs mysql $BACKUP_DIR
バグレポート以外の Bugzilla 動作設定ファイルなど一部のファイルは、MySQL データベースではない場所に保存されています。以下のファイルもバックアップしておくことをすすめます。
日本語版 Bugzilla は Webブラウザに出力する HTML も、データベースに格納する文字列も EUC-JP という文字コードを使用しています。これは過去の 日本語版 Bugzilla (バージョン 2.12 など) が使っていた文字コードをそのまま使用しているだけです。
ですが本家 英語版 Bugzilla 開発者は Unicode (UTF-8) の使用を推奨しています。以前はこんなページありませんでしたが。
UTF-8 化すると以下のような問題点がでてきます。
Mozilla.org の英語ドキュメントを日本語に翻訳するもじら組 - 和訳プロジェクト から
Bugzilla 関連のドキュメント:
Bugzilla のバグのリストを変更時刻の順に並べる方法を説明します。