LoginSignup
18
16

More than 5 years have passed since last update.

Python製プロジェクト管理フレームワークTracのインストールまわり

Last updated at Posted at 2015-03-01

trac_logo.png

0.初めに

ふと、チケット駆動開発を行いたいなぁ~と思い、数年前流行って今では中々聞かないTracが今どうなっているのか興味があったのでインストールしてみました。

Tracと言えば、Windows用のTrac Lightningが有名ですが、正直言ってプログラマーにはおすすめしません。
と言うのも、Trac Lightningはいろんなプラグインをゴテゴテに入れてしまい、正直自分では全く使わない機能が邪魔してて、一つずつ消すのが面倒なので、今回はピュアなTracのインストールして運用していく話を。

今回の話は、 
Trac ver 1.0.4を元に話しております。

Tracが一番流行ったv0.1及びv0.12の情報が一番WEBにありますが、今回は最新のv1.0.4を使います。設定が違う!と嘆かないでください。(嘆いた人ノw

1.ダウンロード

Python製なので、pipでインストールが可能です。

  • sudo pip install trac

これだけ。 (さすがPython!そこに惚れるw憧れるぅw)

2.Tracの環境設定&初期化

Tracで運用するプロジェクトの一式を保存するフォルダを作ります。

  • mkdir Main

ひとまず僕はMainと言うフォルダを作りました。

  • trac-admin ./Main initenv

trac-admin でTracのコンフィグを行うことが出来ます。
./Main は先ほど作成したディレクトリで、
initenv はそのディレクトリで初期化するよって事です。

で、コマンドを叩くと、以下のように・・・なりません。
実際は英語なので、何となく進めてください。

Screenshot from 2015-03-01 20:12:36.png

項目は二ヶ所。プロジェクト名とデーターベースの選択。
プロジェクト名は今回はmain
データーベースはそのままエンターでデフォルトのSQLiteを使います。 SQLite最高w

3.サーバー立ち上げ

僕はApachが大嫌いなので(僕の理解度を越えた巨大なので)、今回はせっかくPython何だから、簡易サーバーとか無いの?って思ったらTracに標準で入っていました。

  • tracd --port 1121 ./Main

tracdはTracのサーバーアプリで、--portはポート番号の設定、書いてないけど--hostもあります。あとはディレクトリの宣言でおわり。

徐にブラウザを立ち上げ、疑心暗鬼に localhost:1121 にアクセスしてみてください。

Screenshot from 2015-03-01 20:15:15.png

すると、以下のサイトが現れ、リンクをクリックすると、

Screenshot from 2015-03-01 20:15:38.png

になります。
(おや?メニューが英語だぞ?とお気づきの方はすみません、後述に日本語化の方法を書いておきますのでご了承ください。)

おめでとうございます。Tracのインストールは無事に完了しました。
次はパスワード及び日本語化の話。

4.パスワードの作成

TracでのログインはBasic-loginになります。他のLogin方式にも選択出来た気がしますが、よく分からないのでパスします。

で、ここでもいろんなサイトにはApachiを使うよう書いてありますが、ここはPythonでハッシュコードを生成します。

pass.py
from optparse import OptionParser
import md5

# build the options
usage = "usage: %prog [options]"
parser = OptionParser(usage=usage)
parser.add_option("-u", "--username",action="store", dest="username", type = "string",
                  help="the username for whom to generate a password")
parser.add_option("-p", "--password",action="store", dest="password", type = "string",
                  help="the password to use")
(options, args) = parser.parse_args()

# check options
if (options.username is None) or (options.password is None):
   parser.error("You must supply both the username and password")

# Generate the string to enter into the htdigest file
realm = 'trac'
kd = lambda x: md5.md5(':'.join(x)).hexdigest()
str = ':'.join((options.username, realm, kd([options.username, realm, options.password])))

f = open("login","w")
f.write(str)
f.close()

公式のサンプルを少し修正し、
- python pass.py --username hoge --password hogehoge
とすると、loginと言うファイルが生成されます。

5.ログイン

さて、loginファイルが出来たので、再度サーバーを立ち上げます。

  • tracd --port 1121 --auth=*,login,trac ./Main

見ての通り、--authが追加されてます。
--auth は、--auth= ,, って所かな。
公式はまた違った名前でかかれていますが、僕のイメージ的なこうです。

これで起動すると、無事に行けばチケットの作成タブが増えます。

6.日本語化

TracはSubversionを使っているので、まずは先にそれを入れておく。

  • sudo apt-get install Subversion

とかとかで入れて、

で、ファイルをダウンロードし、

  • easy_install Babel

  • python setup.py extract_messages

  • python setup.py update_catalog

  • python setup.py install

でインストールします。

そして、再度Tracdを起動すると、メニューが少し日本語になったかと思います。

7.最後に

Tracについて知っているかたは、今では少ないと思いますので、
http://ja.wikipedia.org/wiki/Trac
や、少し古いですが
http://itpro.nikkeibp.co.jp/article/COLUMN/20080414/298973/
をご覧いただければ様子がつかめるかも
(正直、Tracやチケット駆動に関して流行った時期が2010年あたりからなので、今ではもっと良い物があるかもしれません。また、Tracも2012年にVer1.0になり、今はVer1.0.4です。)

僕は、Tracを採用した理由は Python製だからぁぁぁぁ~!! ですw

8.裏技テク?

もし、バックアップが必要な再は、trac-adminで指定したディレクトリー一式を丸まるコピーすれば良い。これが素晴らしい。
さらに、dbディレクトリに生のSQLiteがあるから、これさえあれば、再構築だって出来る。素晴らしい。

また、複数のプロジェクトがある時は、trac-adminで新規作成か既存のファイルをコピーし、

tracd --host $HOST --port $PORT --auth=,login,trac ./$Project1 \
--auth=
,login,trac ./$Project2 \

なスクリプトを作ればOK。素晴らしい。

TracはPython製のなので、きっとまだまだ裏技があると思われます。
サーバーにかんしても、uwsgiで動いているからアレコレできるんじゃないかなぁ~ ふっふっふw
駄文で失礼。w

18
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
16