ksaitoの日記

日々試したことの覚え書き

Ubuntuでtrac

移転しました。

自動的にリダイレクトします。

tracは、バグトラッキングシステムです。
シンプルなユーザインタフェース、Wikiによる文書管理、Subversionとの連携、リリース管理といったオープンソースプロジェクトで必要なひと通りの機能があり、なかなか良くできています。
Ubuntuでは、trac-ja-resourceという日本語リソースのパッケージでメニューやWikiのコンテンツが日本語化できるのですがメニューを日本語化するとチケットの登録ができなくなってしまいます。(残念)
日本語のWikiのコンテンツは問題ないようなのでマニュアルは日本語で読めます。
以下は、導入手順です。

インストール

aptでtrac-ja-recourceをインストールすると必要なもの一式がインストールされます。

$ sudo aptitude install trac-ja-resource
Password:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
Reading state information... 完了
Reading extended state information
Initialising package states... 完了
Building tag database... 完了
The following NEW packages will be automatically installed:
  python-clearsilver python-dev python-pysqlite2 python-setuptools python-subversion
  python2.4-dev trac
The following NEW packages will be installed:
  python-clearsilver python-dev python-pysqlite2 python-setuptools python-subversion
  python2.4-dev trac trac-ja-resource
0 packages upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Need to get 2790kB of archives. After unpacking 10.8MB will be used.
Do you want to continue? [Y/n/?]
Writing extended state information... 完了
Get:1 http://jp.archive.ubuntu.com edgy/universe python-clearsilver 0.10.3-2 [82.1kB]
Get:2 http://jp.archive.ubuntu.com edgy/main python2.4-dev 2.4.4~c1-0ubuntu1 [1503kB]
Get:3 http://jp.archive.ubuntu.com edgy/main python-dev 2.4.3-11ubuntu3 [934B]
Get:4 http://jp.archive.ubuntu.com edgy/main python-pysqlite2 2.3.2-1build1 [89.2kB]
Get:5 http://jp.archive.ubuntu.com edgy/main python-setuptools 0.6c3-1ubuntu4 [204kB]
Get:6 http://jp.archive.ubuntu.com edgy/main python-subversion 1.3.2-3ubuntu2 [456kB]
Get:7 http://jp.archive.ubuntu.com edgy-backports/universe trac 0.10.2-1~edgy1 [383kB]
Get:8 http://jp.archive.ubuntu.com edgy/universe trac-ja-resource 0.8.4-2-1 [70.3kB]
Fetched 2790kB in 2s (1392kB/s)
未選択パッケージ python-clearsilver を選択しています。
(データベースを読み込んでいます ... 現在 105755 個のファイルとディレクトリがインストールされています。)
(.../python-clearsilver_0.10.3-2_i386.deb から) python-clearsilver を展開しています...
未選択パッケージ python2.4-dev を選択しています。
(.../python2.4-dev_2.4.4~c1-0ubuntu1_i386.deb から) python2.4-dev を展開しています...
未選択パッケージ python-dev を選択しています。
(.../python-dev_2.4.3-11ubuntu3_all.deb から) python-dev を展開しています...
未選択パッケージ python-pysqlite2 を選択しています。
(.../python-pysqlite2_2.3.2-1build1_i386.deb から) python-pysqlite2 を展開しています...
未選択パッケージ python-setuptools を選択しています。
(.../python-setuptools_0.6c3-1ubuntu4_all.deb から) python-setuptools を展開しています...
未選択パッケージ python-subversion を選択しています。
(.../python-subversion_1.3.2-3ubuntu2_i386.deb から) python-subversion を展開しています...
未選択パッケージ trac を選択しています。
(.../trac_0.10.2-1~edgy1_all.deb から) trac を展開しています...
未選択パッケージ trac-ja-resource を選択しています。
(.../trac-ja-resource_0.8.4-2-1_all.deb から) trac-ja-resource を展開しています...
python-clearsilver (0.10.3-2) を設定しています ...
python2.4-dev (2.4.4~c1-0ubuntu1) を設定しています ...
python-dev (2.4.3-11ubuntu3) を設定しています ...
python-pysqlite2 (2.3.2-1build1) を設定しています ...

python-setuptools (0.6c3-1ubuntu4) を設定しています ...

python-subversion (1.3.2-3ubuntu2) を設定しています ...

trac (0.10.2-1~edgy1) を設定しています ...

trac-ja-resource (0.8.4-2-1) を設定しています ...

設定

基本的な設定は、/usr/share/doc/trac/README.Debianの手順でOKです。
$HOME/.projectというディレクトリで試してみます。

Subversionリポジトリ作成
$ mkdir .project
$ cd .project/
$ mkdir svn
$ cd svn
$ svnadmin create .
$ ls
README.txt  conf  dav  db  format  hooks  locks
$
tracの設定

trac-adminでtrac環境を作ります。
幾つか質問されます。プロジェクト名は適当な名前を入力します。
Subversionリポジトリへのパスは、上記で作成したものを入力します。
メニューを日本語化するには、/usr/share/doc/trac-ja-resource/README.jaに従って下記のように入力するのですが設定後にチケットが登録できなくなります。

Templates directory [/usr/share/trac/templates]> /usr/share/trac-ja-resource/templates

従ってデフォルト設定で下記のように設定していきます。

$ trac-admin . initenv
Creating a new Trac environment at $HOME/.project/trac

Trac will first ask a few questions about your environment
in order to initalize and prepare the project database.

 Please enter the name of your project.
 This name will be used in page titles and descriptions.

Project Name [My Project]> [プロジェクト名を入力]

 Please specify the connection string for the database to use.
 By default, a local SQLite database is created in the environment
 directory. It is also possible to use an already existing
 PostgreSQL database (check the Trac documentation for the exact
 connection string syntax).

Database connection string [sqlite:db/trac.db]>

 Please specify the type of version control system,
 By default, it will be svn.

 If you don't want to use Trac with version control integration,
 choose the default here and don't specify a repository directory.
 in the next question.

Repository type [svn]>

 Please specify the absolute path to the version control
 repository, or leave it blank to use Trac without a repository.
 You can also set the repository location later.

Path to repository [/path/to/repos]> $HOME/.project/svn

 Please enter location of Trac page templates.
 Default is the location of the site-wide templates installed with Trac.

Templates directory [/usr/share/trac/templates]> /usr/share/trac/templates

Creating and Initializing Project
 Installing default wiki pages
 /usr/share/trac/wiki-default/TracModPython => TracModPython
 /usr/share/trac/wiki-default/TracRss => TracRss
 /usr/share/trac/wiki-default/WikiRestructuredText => WikiRestructuredText
 /usr/share/trac/wiki-default/TracStandalone => TracStandalone
 /usr/share/trac/wiki-default/TracReports => TracReports
 /usr/share/trac/wiki-default/TracPlugins => TracPlugins
 /usr/share/trac/wiki-default/InterWiki => InterWiki
 /usr/share/trac/wiki-default/TracTimeline => TracTimeline
 /usr/share/trac/wiki-default/TracLinks => TracLinks
 /usr/share/trac/wiki-default/WikiNewPage => WikiNewPage
 /usr/share/trac/wiki-default/TracFastCgi => TracFastCgi
 /usr/share/trac/wiki-default/TracSearch => TracSearch
 /usr/share/trac/wiki-default/TracBackup => TracBackup
 /usr/share/trac/wiki-default/TracGuide => TracGuide
 /usr/share/trac/wiki-default/TracSupport => TracSupport
 /usr/share/trac/wiki-default/TracPermissions => TracPermissions
 /usr/share/trac/wiki-default/WikiDeletePage => WikiDeletePage
 /usr/share/trac/wiki-default/TracTickets => TracTickets
 /usr/share/trac/wiki-default/TracCgi => TracCgi
 /usr/share/trac/wiki-default/TracWiki => TracWiki
 /usr/share/trac/wiki-default/TracInterfaceCustomization => TracInterfaceCustomization
 /usr/share/trac/wiki-default/TracImport => TracImport
 /usr/share/trac/wiki-default/InterMapTxt => InterMapTxt
 /usr/share/trac/wiki-default/TracEnvironment => TracEnvironment
 /usr/share/trac/wiki-default/TracInstall => TracInstall
 /usr/share/trac/wiki-default/WikiProcessors => WikiProcessors
 /usr/share/trac/wiki-default/TracAccessibility => TracAccessibility
 /usr/share/trac/wiki-default/RecentChanges => RecentChanges
 /usr/share/trac/wiki-default/TracChangeset => TracChangeset
 /usr/share/trac/wiki-default/WikiHtml => WikiHtml
 /usr/share/trac/wiki-default/TracLogging => TracLogging
 /usr/share/trac/wiki-default/WikiPageNames => WikiPageNames
 /usr/share/trac/wiki-default/TracRoadmap => TracRoadmap
 /usr/share/trac/wiki-default/TitleIndex => TitleIndex
 /usr/share/trac/wiki-default/WikiStart => WikiStart
 /usr/share/trac/wiki-default/TracQuery => TracQuery
 /usr/share/trac/wiki-default/WikiMacros => WikiMacros
 /usr/share/trac/wiki-default/TracIni => TracIni
 /usr/share/trac/wiki-default/WikiRestructuredTextLinks => WikiRestructuredTextLinks
 /usr/share/trac/wiki-default/TracTicketsCustomFields => TracTicketsCustomFields
 /usr/share/trac/wiki-default/WikiFormatting => WikiFormatting
 /usr/share/trac/wiki-default/TracAdmin => TracAdmin
 /usr/share/trac/wiki-default/TracNotification => TracNotification
 /usr/share/trac/wiki-default/TracSyntaxColoring => TracSyntaxColoring
 /usr/share/trac/wiki-default/TracUpgrade => TracUpgrade
 /usr/share/trac/wiki-default/SandBox => SandBox
 /usr/share/trac/wiki-default/InterTrac => InterTrac
 /usr/share/trac/wiki-default/TracBrowser => TracBrowser
 /usr/share/trac/wiki-default/CamelCase => CamelCase
 /usr/share/trac/wiki-default/TracUnicode => TracUnicode
 /usr/share/trac/wiki-default/TracRevisionLog => TracRevisionLog
 Indexing repository

---------------------------------------------------------------------
Project environment for 'My Project' created.

You may now configure the environment by editing the file:

  $HOME/.project/trac/conf/trac.ini

If you'd like to take this new project environment for a test drive,
try running the Trac standalone web server `tracd`:

  tracd --port 8000 $HOME/.project/trac

Then point your browser to http://localhost:8000/trac.
There you can also browse the documentation for your installed
version of Trac, including information on further setup (such as
deploying Trac to a real web server).

The latest documentation can also always be found on the project
website:

  http://trac.edgewall.org/

Congratulations!

$

tracd --port 8000 $HOME/.project/tracで簡単に試すこともできるようです。

Wikiの日本語設定

tracのメニューは英語のままですがWikiのコンテンツは日本語化できます。
/usr/share/doc/trac-ja-resource/README.jaに従って下記のように入力するとWikiも日本語化されます。

$ cd $HOME/.project/trac
$ trac-admin . wiki load /usr/share/trac-ja-resource/wiki-default
 /usr/share/trac-ja-resource/wiki-default/TracModPython => TracModPython
 /usr/share/trac-ja-resource/wiki-default/TracReports => TracReports
 /usr/share/trac-ja-resource/wiki-default/TracInstallPlatforms => TracInstallPlatforms
 /usr/share/trac-ja-resource/wiki-default/TracNotification => TracNotification
 /usr/share/trac-ja-resource/wiki-default/RecentChanges => RecentChanges
 /usr/share/trac-ja-resource/wiki-default/TracRoadmap => TracRoadmap
 /usr/share/trac-ja-resource/wiki-default/TracChangeset => TracChangeset
 /usr/share/trac-ja-resource/wiki-default/TracEnvironment => TracEnvironment
 /usr/share/trac-ja-resource/wiki-default/WikiMacros => WikiMacros
 /usr/share/trac-ja-resource/wiki-default/TracAccessibility => TracAccessibility
 /usr/share/trac-ja-resource/wiki-default/TracLogging => TracLogging
 /usr/share/trac-ja-resource/wiki-default/WikiHtml => WikiHtml
 /usr/share/trac-ja-resource/wiki-default/TracJa => TracJa
 /usr/share/trac-ja-resource/wiki-default/TracGuide => TracGuide
 /usr/share/trac-ja-resource/wiki-default/SandBox => SandBox
 /usr/share/trac-ja-resource/wiki-default/TracTicketsCustomFields => TracTicketsCustomFields
 /usr/share/trac-ja-resource/wiki-default/WikiStart => WikiStart
 /usr/share/trac-ja-resource/wiki-default/TracTermsJa => TracTermsJa
 /usr/share/trac-ja-resource/wiki-default/WikiPageNames => WikiPageNames
 /usr/share/trac-ja-resource/wiki-default/WikiRestructuredText => WikiRestructuredText
 /usr/share/trac-ja-resource/wiki-default/CamelCase => CamelCase
 /usr/share/trac-ja-resource/wiki-default/TracTickets => TracTickets
 /usr/share/trac-ja-resource/wiki-default/TracSupport => TracSupport
 /usr/share/trac-ja-resource/wiki-default/TracStandalone => TracStandalone
 /usr/share/trac-ja-resource/wiki-default/TracMultipleProjects => TracMultipleProjects
 /usr/share/trac-ja-resource/wiki-default/TracAdmin => TracAdmin
 /usr/share/trac-ja-resource/wiki-default/TracPermissions => TracPermissions
 /usr/share/trac-ja-resource/wiki-default/TracLinks => TracLinks
 /usr/share/trac-ja-resource/wiki-default/TracQuery => TracQuery
 /usr/share/trac-ja-resource/wiki-default/TracUnicode => TracUnicode
 /usr/share/trac-ja-resource/wiki-default/TracUpgrade => TracUpgrade
 /usr/share/trac-ja-resource/wiki-default/WikiNewPage => WikiNewPage
 /usr/share/trac-ja-resource/wiki-default/TitleIndex => TitleIndex
 /usr/share/trac-ja-resource/wiki-default/TracWiki => TracWiki
 /usr/share/trac-ja-resource/wiki-default/TracBackup => TracBackup
 /usr/share/trac-ja-resource/wiki-default/TracSyntaxColoring => TracSyntaxColoring
 /usr/share/trac-ja-resource/wiki-default/TracImport => TracImport
 /usr/share/trac-ja-resource/wiki-default/TracInstall => TracInstall
 /usr/share/trac-ja-resource/wiki-default/TracTimeline => TracTimeline
 /usr/share/trac-ja-resource/wiki-default/TracBrowser => TracBrowser
 /usr/share/trac-ja-resource/wiki-default/TracIni => TracIni
 /usr/share/trac-ja-resource/wiki-default/WikiRestructuredTextLinks => WikiRestructuredTextLinks
 /usr/share/trac-ja-resource/wiki-default/TracRss => TracRss
 /usr/share/trac-ja-resource/wiki-default/WikiFormatting => WikiFormatting
 /usr/share/trac-ja-resource/wiki-default/TracSearch => TracSearch
 /usr/share/trac-ja-resource/wiki-default/WikiProcessors => WikiProcessors
$
trac.cgiの設定
$ cd /usr/lib/cgi-bin/
$ ls
$ sudo ln -s /usr/share/trac/cgi-bin/trac.cgi .
アクセス権の変更とApache2の設定

Apacheからアクセスするために必要なアクセス権の変更をします。

$ cd $HOME/.project
$ sudo chown -R www-data:www-data trac
$ ls -l
合計 8
drwxr-xr-x  7 who      who   4096 2006-12-11 22:23 svn
drwxr-xr-x 10 www-data www-data 4096 2006-12-11 22:27 trac
$

/usr/share/doc/trac/README.DebianにApache2に必要な設定が書かれています。
下記の内容を/etc/apache2/conf.d/trac.confに書きます。
修正箇所は、とりあえずTRAC_ENVに作成した$HOME/.project/tracを指定します。
他にも修正が必要なところがありますが、とりあえず動かすだけであれば、これっでOKです。

Alias /trac/ "/usr/share/trac/htdocs/"
#You have to allow people to read the files in htdocs
<Directory "/usr/share/trac/htdocs/">
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>


# Trac need to know where the database is located
<Location "/cgi-bin/trac.cgi">
        SetEnv TRAC_ENV "/home/who/.project/trac"
</Location>

# You need this to allow users to authenticate
# trac.htpasswd can be created with
# cmd 'htpasswd -c trac.htpasswd' (UNIX)
# do 'man htpasswd' to see all the options
<Location "/cgi-bin/trac.cgi/login">
        AuthType Basic
        AuthName "trac"
        AuthUserFile /somewhere/trac.htpasswd
        Require valid-user
</location>

Apache2を再起動します。

$ sudo /etc/init.d/apache2 restart
アクセスしてみる

下記にアクセスしてtracのページが日本語で表示されたらOKです。

http://サーバ/cgi-bin/trac.cgi