tracの最近のブログ記事

Tracをさくらインターネットのスタンダードプランに入れたので、SVNに接続する方法も書きます。ずいぶん遅くなっちゃったけど。

■PuTTYgenを使い鍵を作成する

  1. PuTTYgenはPuTTYごった煮版が入っていればOKなので、ごった煮版をダウンロード。
    http://yebisuya.dip.jp/Software/PuTTY/

  2. puttygen.exeを起動して、生成ボタンをクリック。空白のエリア内でマウスを動かす。(乱数生成のためだね)

  3. 表示されるテキスト(ssh-rsa AAAAB3NzaC1yc2・・・・みたいなの)をコピーし、テキストファイルで保存。ファイル名をauthorized_keysというファイル名(拡張子なし)に変更。

  4. PuTTYgenのほうでは、秘密鍵の保存ボタンをクリック。パスフレーズなしで保存。
    C:\Program Files\TortoiseSVN\bin\id_rsa.ppkとして保存。

  5. authorized_keysをFTPで$HOME/.ssh/にアップロード。

  6. Telnetで接続して、必要なら適宜$HOME/.ssh/のパーミッションを変更。

■ToritoiseSVNの設定

  1. ToritoiseSVNの設定画面を開く。エクスプローラで適当なフォルダを選び右クリック→ToriseSVN→設定。

  2. 画面左のツリーからネットワークを選び、SSHクライアント欄にTortoiseSVNのインストールディレクトリ\binにあるTortoisePlink.exeのフルパスを指定。引数は 「-l アカウント名」と「-i 作成した秘密鍵のパス」を指定。

    以下のようになります。XXXはさくらインターネットのユーザID。

    "C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe" -l XXX -i "C:\Program Files\TortoiseSVN\bin\id_rsa.ppk"

■つないでみる

  1. 適当なフォルダで右クリック→TortoiseSVN→RepositoryBrowser(またはリポジトリブラウザ)

  2. URLを入力("svn+ssh" + "://さくらサーバのアドレス" + レポジトリの絶対パス)。

    $HOME/var/svn/repoにレポジトリを作った場合。XXXはさくらインターネットのユーザID

    svn+ssh://XXX.sakura.ne.jp/home/XXX/var/svn/repo

  3. リポジトリが見えて、ツリーが開ければ完了。

■もっと使いやすく
複数のSVNにつなげる場合などは以下を参照。
僕はとりあえずまだやってません。
http://sfi.hamazo.tv/e1317475.html


■Tracの静的リソースアクセスを軽くする(おまけ)
さくらのTracを早くする方法を見つけたのでやってみた。
参考:http://weekbuild.sakura.ne.jp/trac/ticket/158

% ln -s ~/local/share/trac/htdocs ~/www/trachtdocs

Trac.iniを以下のように編集
[trac]
htdocs_location = /trachtdocs/

こんな感じで、とりあえずさくらでのTrac+SVNな生活は幸せに過ぎていくと思います。

前回に引き続きます。プラグインをインストールします。
Web上で管理するためには、0.10.x系では、WebAdminというプラグインが必要です。
あとは、ユーザ管理にAccountManagerというプラグインも入れたほうがいいらしい。

[WebAdmin]
■TortoiseSVNのインストール
WebAdminはSVNで取得の必要ありとのことで、TortoiseSVNをインストールします。
ここ見た。
 http://www.gside.org/Gentoo/subversion/subversion_client.html

■WebAdminの取得
・SVNでチェックアウト
Windowsの適当なエクスプローラ上で、
[右クリック] ⇒ [SVNチェックアウト] ⇒ [リポジトリのURL:http://svn.edgewall.com/repos/trac/sandbox/webadmin/]
でチェックアウトディレクトリを適当に入れる。
ダウンロードしたものをZIP化し、FTPでアップロード。
$HOME/local/srcに置きます。

■WebAdminのインストール
%cd $HOME/local/src
%unzip webadmin.zip
%cd webadmin
%python setup.py build
%python setup.py install --prefix=$HOME/local
%vi $HOME/var/trac/repo/conf/trac.ini
[components]
webadmin.* = enabled
これで、tracのメニューに"Admin"が追加される。

[AccountManager]
■AccountManagerの取得
いろいろ調べた結果、これもソースを取ってきて
自分でセットアップするのが早そうなので、WebAdminと同様に。

バージョンは、Tracのバージョンにあわせて、0.10です。
Windowsの適当なエクスプローラ上で、
[右クリック] ⇒ [SVNチェックアウト] ⇒ [リポジトリのURL:http://trac-hacks.org/svn/accountmanagerplugin/0.10]
でチェックアウトディレクトリを適当に入れる。
ダウンロードしたものをZIP化し、FTPでアップロード。
$HOME/local/srcに置きます。

■AccountManagerのインストール
%cd $HOME/local/src
%unzip accountmanager.zip
%cd accountmanager
%python setup.py install --prefix=$HOME/local
これで、インストールは完了。
あとは、設定は、Webでやる。

WebAdminを見ます。Webの右上のAdminをクリック。
Pluginsで、TracAccountManager 0.1.3dev-r3857クリック。
使いたいものをチェック。ComponentのEnabledね。

Adminの左のメニューにAccountsと出ているから、インストール成功。
使い方は後で調べる。下の参考ページ見たり、ぐぐったりしてくだしあ><

参考ページ:http://trac-hacks.org/wiki/AccountManagerPlugin
僕の仕事は主に開発のマネジメントなのですが、こんなことがよく起きる。

  • 客「ここの仕様こうなりました。」
    僕「分かりました。」
    ↓ 3ヵ月後
    客「あれってどうなったんでしたっけ。」
    僕「あれ、実装はこうなってるけど・・・なんでこうなったんだろう?」

  • 客「ここの仕様こうなりました。」
    僕「分かりました。Aさん実装しといて」
    A「OK。sige sige(フィリピン人)」
     ↓ 1ヵ月後
    僕「あれ、Aさん実装した・・・のかな?」 A「Yes」
    僕「あれ、こういう仕様だっけ?」 A「Yes」
    僕「お客さんに一応確認してみよう」
要するに、仕様の変更管理がしっかりできてない。プロダクトの開発だから、拙速に仕様が変更になったり決まってても適当に電話で済まされちゃうことが多かったりするし、それを開発担当者に伝えるのも口頭で済ませちゃったりするわけです。
そんな感じだから、確認のための無駄な工数がかかったり、正しい仕様が誰にも分からなかったりする事態が生まれている。そんなので悩んでいたときに、Tracで変更管理をして、効率化に成功しているプロジェクトがあった。

うちのチームでも見習おう、ということでTracを試してみる。

Tracについては、この辺を読んでみると、もっと使いたくなる。

 Web2.0ナビ: 意外と使われていない「個人用trac」活用のすすめ
 Trac Lightningで始めるチケット式開発「電撃」入門 (1/4) - @IT
 [Think IT] 第2回:なぜTracの導入に失敗するのか? (1/3)
  
ということで、さくらインターネットにTracをインストールしてみたよ。

参考サイト:
  さくらサーバにtracをインストール - プログラミングノート
  さくらレンタルサーバにTracをインストール - FREE STYLE WEBLOG
  さくらインターネットにTracを構築する - WeekbuildのHack倉庫 - Trac

さくらインターネットのスタンダードプランです。SSHで接続。
■[ 環境設定 ]
%mkdir -p $HOME/local/src
%cd $HOME/local/src
%mkdir -p $HOME/local/lib/python2.4/site-packages
%ln -s ~/local/lib/python2.4 ~/local/lib/python
%setenv PYTHONPATH $HOME/local/lib/python:$HOME/local/lib/python/site-packages
%setenv PATH $HOME/local/bin:$PATH
%setenv LD_LIBRARY_PATH $HOME/local/lib
setenvのところは、シェルに登録しといたほうがいい
%vi .cshrc
setenv  PYTHONPATH $HOME/local/lib/python:$HOME/local/lib/python/site-packages
setenv  PATH $HOME/local/bin:$PATH
setenv  LD_LIBRARY_PATH $HOME/local/lib
■[ swig ]
swigの最新版:1.3.36
%cd $HOME/local/src
%wget http://downloads.sourceforge.net/swig/swig-1.3.36.tar.gz
%tar zxvf swig-1.3.36.tar.gz
%cd swig-1.3.36
%./configure -prefix=$HOME/local
%make
%make install
■[ subversion ]
Subversion最新版:1.5.3
APRは0.9.17でやってみる。
%cd $HOME/local/src
%mkdir subversion-1.5.3

%wget http://www.meisei-u.ac.jp/mirror/apache/dist/apr/apr-0.9.17.tar.gz
%tar zxvf apr-0.9.17.tar.gz
%mv apr-0.9.17 subversion-1.5.2/apr

%wget http://www.meisei-u.ac.jp/mirror/apache/dist/apr/apr-util-0.9.15.tar.gz
%tar zxvf apr-util-0.9.15.tar.gz
%mv apr-util-0.9.15 subversion-1.5.2/apr-util

%wget http://subversion.tigris.org/downloads/subversion-1.5.3.tar.gz
%tar zxvf subversion-1.5.3.tar.gz
%cd subversion-1.5.3

%./configure --prefix=$HOME/local --with-neon=$HOME/local --without-berkeley-db --enable-swig-bindings=python --with-swig=$HOME/local/bin/swig --disable-static

%make
%make install
%make swig-py
%make install-swig-py
%ln -s $HOME/local/lib/svn-python $HOME/local/lib/python/site-packages/svn-python
%ln -s $HOME/local/lib/svn-python/svn $HOME/local/lib/python/site-packages/svn
%ln -s $HOME/local/lib/svn-python/libsvn $HOME/local/lib/python/site-packages/libsvn
■[ pysqlite ]
pythonでsqliteを使うためのライブラリ。
pysqliteは最新だと動かないそうなので、1.1.7をインスコ。
%cd $HOME/local/src
%wget http://initd.org/pub/software/pysqlite/releases/1.1/1.1.7/pysqlite-1.1.7.tar.gz
%tar zxvf pysqlite-1.1.7.tar
%cd pysqlite
%setenv LOCALBASE $HOME/local
%python setup.py build
%python setup.py install --prefix=$HOME/local
■[ clearsilver ]
C言語によるテンプレートエンジン。非常にシンプルで、かつ高速に動作する。C言語、Python、Perl、Java、Ruby等の言語から利用できる。プロジェクト管理ツールであるTracがPythonバインディングを使用していることで有名。また、Bloglines、Google Groups等の著名サイトでも使用されている。
最新版:0.10.5
でも、0.9.14でいい。
%cd $HOME/local/src
%wget http://www.clearsilver.net/downloads/clearsilver-0.9.14.tar.gz
%tar zxvf clearsilver-0.9.14.tar
%cd clearsilver-0.9.14
%./configure --prefix=$HOME/local --oldincludedir=$HOME/local/include --disable-ruby --disable-java --disable-perl --disable-csharp --disable-python --disable-static
%gmake
%gmake install
%cd python
%python setup.py build
%python setup.py install --prefix=$HOME/local
■[ docutils ]
Pythonで書かれたテキスト処理ツール群です。
reStructuredTextという簡単な構文で構造化されたテキストファイルを、
HTML,XMLやLaTeXなどのフォーマットに変換することができます。
最新版:0.5
%cd $HOME/local/src
%wget http://downloads.sourceforge.net/docutils/docutils-0.5.tar.gz
%tar zxvf docutils-0.5.tar.gz
%cd docutils-0.5
%python setup.py install --home=$HOME/local
■[ trac ]
Trac最新バージョン:0.11.1
Trac日本語版:
  インタアクト株式会社--業務内容--公開資料
  Trac-0.11.1.ja1.zip (インストール失敗)
  trac-0.10.5-ja-1.zip (こっちをインストールした)
インタアクト株式会社が日本語化して配布。ありがたい。
Tracは、日本語版を使います。最新版を試したところ、失敗。
==ここからは失敗なので真似しないで><===
%wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.1.ja1.zip
%unzip Trac-0.11.1.ja1.zip
%cd Trac-0.11.1.ja1
%python setup.py install --prefix=$HOME/local

---
ここで問題が発生。
---

%python setup.py install --prefix=$HOME/local
Traceback (most recent call last):
  File "setup.py", line 15, in ?
    from setuptools import setup, find_packages
ImportError: No module named setuptools

---
で、ここから、setuptools入れたりなんだりして進めたら、
インストールはできるんだが、Trac環境設定で、こんなことになる。

%trac-admin $HOME/var/trac/repo initenv
No module named scripts.adminなんたらかんたら
---
ここではまり、1日くらいうなったが、諦めた。
Tracを消す。どうやったら消せるんだ。
悩んだ挙句、findして、Tracと名のつくファイルをすべて消した。

%find . -name "*trac*"
これで出てきたファイルを消す。Tracに関係なさそうなファイル以外を消す。
---
==ここまでは失敗なので真似しないで><===
気をとりなおして、0.10.5をインストール。
%wget http://www.i-act.co.jp/project/products/downloads/trac-0.10.5-ja-1.zip
%unzip trac-0.10.5-ja-1.zip
%cd trac-0.10.5-ja-1
%python setup.py install --prefix=$HOME/local

---
上の失敗の名残でsetuptoolsを入れてます。ここ参照。
http://d.hatena.ne.jp/yamanetoshi/20080712/p1
---

%wget http://peak.telecommunity.com/dist/ez_setup.py
%python ez_setup.py --prefix=$HOME/local

%cp $HOME/local/share/trac/cgi-bin/trac.cgi $HOME/www
もうこの辺から、参考サイトと同じ。参考サイトがなくなったりしたときのために書く。

■subversion のリポジトリを作成
%mkdir -p $HOME/var/svn
%svnadmin create  --fs-type=fsfs $HOME/var/svn/repo

%mkdir $HOME/tmp
%cd $HOME/tmp
%mkdir proj
%cd proj
%mkdir trunk branches tags
%cd ..
%svn import proj file:///$HOME/var/svn/repo -m "Import First"
%rm -r proj
■trac の環境を設定
%mkdir -p $HOME/var/trac
%trac-admin $HOME/var/trac/repo initenv
上のコマンドを実行すると対話形式に。
以下を聞かれたらちゃんと入力。後はEnterでおkとのこと。
Project Name [My Project]>プロジェクト名を入力
Path to repository [/var/svn/test]> /home/○○○(アカウント名)/var/svn/repo
■trac.cgiとか、Web周りの設定
%mv $HOME/www/trac.cgi $HOME/www/trac_.cgi
%vi trac.cgi
#!/bin/sh
LD_LIBRARY_PATH=/home/○○○(アカウント名)/local/lib;export LD_LIBRARY_PATH
TRAC_ENV=/home/○○○(アカウント名)/var/trac/repo;export TRAC_ENV
PYTHONPATH=/home/○○○(アカウント名)/local/lib/python:/home/○○○(アカウント名)/local/lib/python/site-packages;export PYTHONPATH
/usr/local/bin/python /home/○○○(アカウント名)/www/svn/trac_.cgi

%cd $HOME/www
%mkdir svn
%mv trac_.cgi svn/trac_.cgi
%mv trac.cgi svn/trac.cgi
%cd svn
%chmod 755 trac.cgi

フォルダ区切りでアクセスできるように.htaccessいじる。
%vi $HOME/www/svn/.htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^$ /svn/trac/ [R=301,L]
RewriteRule ^/svn/trac/(.*)$ /svn/trac.cgi/$1 [L]

ベーシック認証とTracのログインをうまいことやる。
%htpasswd -c $HOME/var/trac/repo/conf/.tracpasswd admin
New password: ******
Re-type new password: ******

%cd $HOME/www
%vi .htaccess
AuthUserFile /home/○○○(アカウント名)/var/trac/repo/conf/.tracpasswd
AuthGroupFile /dev/null
AuthName “Type your password prease.”
AuthType Basic
require valid-user

%trac-admin $HOME/var/trac/repo/ permission add admin TRAC_ADMIN

あとは、trac.iniをいじる。↓はロゴのリンク先変更。
%cd var/trac/repo/conf/
%vi trac.ini
[header_logo]
alt =
height = -1
link = http://○○○(アカウント名).sakura.ne.jp/svn/trac/
src = common/trac_banner.png
width = -1
以上。
あとは0.10系では管理画面ないので、
WebAdminとかプラグインのインストールが必要ですね。
あとで書く。とりあえずこれでTracが動く。
個人用のチケット登録したりして遊んでます。

プロフィール

nyontan/nyon2
経営とかプログラミングとかフィリピンとか。基本的にふざけてるけど、たまに超まじめ。
うんこうんこー。

最近読んだ本

早起き生活