SVN x Trac x Agilo

    本日全然使ってなかった自分のローカルのSubversionとTracを再セットアップしてAgiloを入れたので覚書程度になりますが記します。
    環境はCentOS5です。G藤部長がいらなくなったというデスクトップのVAIOを略奪しました。Xウインドウシステムは一切入れていないのでグラボが台無しですね。

    1.SVNとTracを削除

    なんか色々やったので覚えてません

    2.SVNをインストール

    yumかわいいよyum.しかしrpmforgeから入れます。rpmforgeをyumに追加してない人は追加しておきましょう。
    CentOS 5.2 で yum の対象リポジトリに RPMforge を追加するには等を参考にしてください。

    # yum install --enablerepo=rpmforge mod_dav_svn

    しかしエラー

    Error: Missing Dependency

    が二個くらいのパッケージで出ます(RubyとJavahとかそんなの)。既に入ってるバージョンが合ってないっぽい。たぶん前のSVNの残骸なので容赦なく削除します。

    #yum -y remove パッケージ名

    もう一回

    # yum install --enablerepo=rpmforge mod_dav_svn

    おーけー!

    3.SVN用のディレクトリを作る

    ディレクトリを作る。全部/home/devel/配下に作ります。いつも後からどこにインストールしたか見失って面倒くさくなるのでメモしましょう

    # mkdir -p /home/devel/svn

    4.リポジトリを作る

    とりあえず今作ってるJSフレームワークのリポジトリを作ります

    # svnadmin create /home/devel/svn/vf_framework

    トランクとブランチ用とタグのディレクトリ作る

    # svn mkdir file:///home/devel/svn/vf_framework/trunk file:///home/devel/svn/vf_framework/tags file:///home/devel/svn/vf_framework/branches -m "init repository layout (trunk,tags,branches)"

    apacheから書き込むように所有者変更

    # chown -R apache:apache /home/devel/svn/vf_framework

    .htpasswd作る(tracでも共有します)

    # htpasswd -c /home/devel/.htpasswd ユーザ名
    New Password: ぱすわーど

    svnのコンフィグ

    # vi /etc/httpd/conf.d/subversion.conf

    コメントアウトされてるので適宜変更自分の場合はこんな感じに。

    LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    <location /svn>
    DAV svn
    SVNParentPath /home/develop/svn

    <limitexcept GE PROPFIND OPIONS REPOR>
    AuthType Basic
    AuthName "Authorization Realm"
    AuthUserFile /home/devel/.htpasswd
    Require valid-user
    </limitexcept>
    </location>

    apache再起動

    # service httpd restart

    これでとりあえずリポジトリが作られます。

    http://IPアドレス/svn/vf_framework/

        *  branches/
    * tags/
    * trunk/

    とタイトルに”Revision 1″とかなんとかでてればOK
    ローカルのTortoiseSVNとかiSVNとかからチェックアウトしてみましょう

    5.Tracをインストール

    日本語版を入れようと思うと色々頑張ることになるのですが、面倒なので英語版を入れます。

    そうするとまたまたYUMちゃんのお世話になれるので楽して生きていくことが出来ます。

    依存ライブラリを入れます。実は前のインストール時に入れていたので自分は不要でしたが大抵の人は必要だと思います。
    RPMforgeから

    # yum --enablerepo=rpmforge install -y python-clearsilver

    こっちは標準リポジトリから

    # yum install -y mod_python

    はい、ドーン

    # yum -y install trac

    おわり。

    6.Trac初期設定

    TracもSVNと同じく/home/devel以下に全プロジェクトを格納する予定です。

    # mkdir /home/devel/trac

    7.Tracにプロジェクトを作ろう

    先ほど作ったリポジトリ用のプロジェクトを設定!

    # trac-admin /home/devel/trac/vf_framework initenv

    色々聞かれるので適当に書きましょう。後から修正できます。

    Project Name [My Project]> vf_framework
    Database connection string [sqlite:db/trac.db]> [Return]
    Repository type [svn]> [Return]
    Path to repository [/path/to/repos]> /home/devel/vf_framework
    Templates directory [/usr/share/trac/templates]> [Return]

    これでTracに標準搭載の簡易サーバでテスト!確認!

    # tracd --port 8000 /home/devel/trac/vf_framework

    起動した!のでブラウザで確認。
    http://サーバのIPアドレス:8000/vf_framework/
    わぁ見れた!しかしなんかエラーが出てる。SVNと同期できないとのこと。
    良く見るとリポジトリのパスが違いますね。修正しましょう。

    #vi /home/devel/trac/vf_framework/conf/trac.ini

    169行目らへんにある

    repository_dir = /home/devel/vf_framework

    を修正

    repository_dir = /home/devel/svn/vf_framework

    保存してブラウザを更新してみると問題なしですね。左上のロゴらへんが気になったら同じコンフィグファイル内をいじるとロゴ画像を差し替えられます

    8.TracをApcheでいい感じにする

    今はTrac内臓の簡易サーバで見ましたが、Apacheさんと仲良くしていただいたほうが何かと便利な世の中ですのでmod_pythonで動くようにします

    まず所有者変更

    # chown -R apache.apache /home/devel/trac/vf_frameowrk

    設定ファイルを開きます

    # vi /etc/httpd/conf.d/trac.conf
    <IfModule mod_python.c>
    <Location /trac>
    SetHandler mod_python
    PythonDebug On
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir /home/develop/trac
    PythonOption TracUriRoot /trac
    </Location>
    <LocationMatch "/trac/[^/]+/login">
    AuthType Basic
    AuthName "Trac"
    AuthUserFile /home/develop/.htpasswd
    Require valid-user
    </LocationMatch>
    </IfModule>

    こんなかんじ。要するにTracのディレクトリ指定したり.htpasswdを読み込ませたりします。
    .htpasswdはSVNと共有です。
    ちなみに毎度コピペするとき”:set nonumber”するのが面倒です。

    apache再起動

    # service httpd restart

    ブラウザで
    http://サーバのIPアドレス/trac/vf_framework
    にアクセスするとこれはなんとまぁかっこいいTracの画面が現れます。
    よかったですね。

    先ほど作ったリポジトリにファイルをCommitするとリポジトリブラウザに反映するのが見えますね。これは便利!

    9.Tracに管理者を設定します

    今のままだと誰も管理画面を使えなくてかわいそうなので管理者設定をします。

    先ほどSVN設定のときに作ったユーザに管理者権限を与えましょう。

    # trac-admin /home/devel/trac/vf_framework permission add ユーザ名 TRAC_ADMIN

    これであなたも管理者!Tracの右上にある”Login”からさっきのユーザ名とパスワードでログインします。
    するとAdminというメニュ-が増えますね。これでブラウザから色々設定できて便利です。

    10.Agiloのインストール

    上記Tracの管理画面の”plugins”より参照アップロードでagiloのeggファイルをアップロードしてinstallボタンを押します。
    agiloをダウンロードするにはagile42の無料会員登録が必要です。
    “agile42 http://www.agile42.com/cms/pages/agilo/”で”TRAC PLUGIN”からZIPをダウンロード
    ZIPを解凍してTrac管理画面のpluginより参照アップロードします。
    これで終わり。

    Tracのデータベースを更新します。

    # trac-admin /home/devel/trac/vf_framework upgrade

    Creating…なんちゃらでてきたら成功です。
    ブラウザを更新してみましょう。

    agilo_on_trac.png

    なんじゃこりゃ!というくらい変わってますね。
    とりあえずインストールで疲れたので今日は終わりです。

    ちなみに

    肝心のvf_frameworkはJS用の良く使う処理とか関数をひたすら集めた便利関数郡的なフレームワークのつもりですがまだ全然出来てません。結構DOMのショートカット関数はjQueryのコードを参考にしています。jQueryすげっ!

    参考にさせていただきました。

    CentOS5 で Subversion+Trac
    プロジェクト管理システムの構築
    [Trac]Agiloを導入してみた