Mac OSX 10.5 LeopardでRails環境を整える〜日本語版Tracとソースコードの色付け

英語は苦手なので、可能な限り日本語環境でソフトウェアを利用したい。前回インストールしたTracも英語環境なので、日本語化の情報を探してみたら、インタアクトさんがこちらで公開してくれてました。素晴らしいです!早速インストール。
ところが、やはりOSX 10.5環境では、直接インストールできない。OSX10.4環境なら確実にインストールできることは分かっているので、面倒かもしれないが、前回と同じようにOSX 10.4にインストールしてからコピーすることにした。...やってみる。単純にOSX 10.4、Trac英語版の環境に上書きインストールでやってみたが、これではうまく日本語化されなかった。英語版の環境は一度アンインストールする必要があるらしい。
しかし、正しいアンインストールの方法がわからない...。こんな状況も予想して、OSX 10.4.10、Xcode 2.5をインストールした直後の状態を.dmgファイルにして保存しておいた。10分でOSインストール直後のクリーンな状態に書き戻して、最初からやり直し。

OSX 10.4環境にTracを手軽にインストール

それにしても、前回の手順は面倒だ。今回はちょっと利口になり、シェルスクリプトにしてみた。以下をテキストファイルとして保存して実行すれば、前回の手順を全部実行してくれる。楽!

  • テキストエディットにコピーして、trac_install.sh として保存する。(ホームフォルダの中に)
  • ターミナルで、chmod u+x ~/trac_install.sh を実行する。(実行可能な権限を与える。)
  • sudo ~/trac_install.sh を実行すればインストールが始まる。(trac_install.shではコマンドが見つからないエラーになってしまうので、~/や./などパスを指定して実行する。)
#! /bin/sh
# Mac OSX 10.4.10、Xcode2.5環境による、日本語版Tracインストール シェルスクリプト

# コマンドサーチパスの追加
echo 'PATH=/usr/local/bin:$PATH' >> ~/.bash_profile
# シェルスクリプトはこれを実行する時、新たな実行環境(新たなターミナル画面)で処理されるようだ。
# 以下の処理をしても、戻ってきたターミナル画面には追加したコマンドサーチパスが反映されていない。
# .bash_profileは更新されているので、新規ターミナル画面にはコマンドサーチパスが反映される。
source .bash_profile

# ダウンロード
cd
mkdir trac_src
cd trac_src
curl http://www.webdav.org/neon/neon-0.27.2.tar.gz > neon-0.27.2.tar.gz
curl http://dfn.dl.sourceforge.net/sourceforge/swig/swig-1.3.31.tar.gz > swig-1.3.31.tar.gz
curl http://subversion.tigris.org/downloads/subversion-1.4.4.tar.gz > subversion-1.4.4.tar.gz
curl http://subversion.tigris.org/downloads/subversion-deps-1.4.4.tar.gz > subversion-deps-1.4.4.tar.gz
curl http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz > clearsilver-0.10.5.tar.gz
curl http://dfn.dl.sourceforge.net/sourceforge/docutils/docutils-0.4.tar.gz > docutils-0.4.tar.gz
curl http://initd.org/pub/software/pysqlite/releases/2.3/2.3.5/pysqlite-2.3.5.tar.gz > pysqlite-2.3.5.tar.gz
curl http://www.i-act.co.jp/project/products/downloads/trac-0.10.4-ja-1.zip > trac-0.10.4-ja-1.zip

# 解凍
tar -zxf neon-0.27.2.tar.gz
tar -zxf swig-1.3.31.tar.gz
tar -zxf subversion-1.4.4.tar.gz
tar -zxf subversion-deps-1.4.4.tar.gz
tar -zxf clearsilver-0.10.5.tar.gz
tar -zxf docutils-0.4.tar.gz
tar -zxf pysqlite-2.3.5.tar.gz
unzip trac-0.10.4-ja-1.zip

# 古いファイル、余分なファイルの削除
# first clean out any of the old stuff.
sudo rm -rf /usr/local/apr
sudo rm -f /usr/local/lib/libneon*
sudo rm -f /usr/local/lib/libsvn*
sudo rm -f /usr/local/lib/pkgconfig/neon.pc
sudo rm -f /usr/local/bin/swig 
sudo rm -f /usr/local/bin/neon-config
sudo rm -f /usr/local/bin/svn*
sudo rm -rf /usr/local/bin/subversion-1

# 条件によっては以下も削除またはリネーム
# Plus, if you happen to have any previous installations of the swig svn python bindings in your site packages, then remove (or rename) them:
sudo rm -rf /Library/Python/2.3/libsvn
sudo rm -rf /Library/Python/2.3/svn

# 'neon'のインストール
cd ~/trac_src/neon-0.27.2
./configure --with-ssl
make
sudo make install

# 'swig'のインストール
cd ~/trac_src/swig-1.3.31
./configure --with-python=/usr/bin/python
make
sudo make install

# 'subverion'のインストール
cd ~/trac_src/subversion-1.4.4
GXX=yes ./configure --without-berkeley-db --enable-swig-bindings=python --with-swig=/usr/local/bin/swig PYTHON=/usr/bin/python PYTHON2=/usr/bin/python2.3
make
sudo make install

# 'swig-py'のインストール(上記subversionと同じディレクトリの中で。)
make swig-py
sudo make install-swig-py
echo /usr/local/lib/svn-python > /Library/Python/2.3/site-packages/svn-python.pth

# 'clearsilver'のインストール
cd ~/trac_src/clearsilver-0.10.5
./configure --prefix=/usr/local --with-python=/usr/bin/python --disable-ruby
make

# pythonコマンドの存在するディレクトリの違いを、以下の処理で吸収しているようだ。
# this is a hack to fix the files that want to run '/usr/local/bin/python'
# when it should just be '/usr/bin/python' as per the configure line above
if [ -f /usr/bin/python -a ! -e /usr/local/bin/python ]; 
then
sudo ln -s /usr/bin/python /usr/local/bin/python
fi
sudo make install

# 'docutils'のインストール
cd ~/trac_src/docutils-0.4
sudo python setup.py install

# 'pysqlite'のインストール
cd ~/trac_src/pysqlite-2.3.5
sudo python setup.py install

# 最後に'trac'のインストール
cd ~/trac_src/trac-0.10.4-ja-1
sudo ./setup.py install

# 最後の最後に以下の1行も忘れずに処理!
# make these available in '/usr/local/bin/'
# this assumes that '/usr/local/bin/' is in the user's path to run tracd / trac-admin
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/Current/bin/trac* /usr/local/bin

# 'SilverCity'のインストール(Rubyのシンタックスハイライトを有効にしてくれる。)
cd ~/trac_src
curl http://nchc.dl.sourceforge.net/sourceforge/silvercity/SilverCity-0.9.7.tar.gz > SilverCity-0.9.7.tar.gz
tar -zxf SilverCity-0.9.7.tar.gz
cd ~/trac_src/SilverCity-0.9.7
# ./setup.pyの前に、pythonが必要
sudo python ./setup.py install

OSX 10.5環境にTracを手軽にコピー

OSX 10.5環境にコピーする時も、深い階層と似たようなパスで、コピー作業が面倒だった。こちらもシェルスクリプトに。
(注意: 既にいろいろなソフトウェアをインストールした後では必要なファイルが上書きされてしまう...。OSX 10.5の新規インストール時のみ安心して使える。)

  • テキストエディットにコピーして、trac_copy.sh として保存する。(ホームフォルダの中に)
  • ターミナルで、chmod u+x ~/trac_copy.sh を実行する。(実行可能な権限を与える。)
  • sudo ~/trac_sopy.sh /Volumes/OSX10.4 を実行すれば、10秒ほどでコピー完了。(/Volumes/OSX10.4 の部分は環境に合わせて変更する。この例では、コピーするOSX10.4環境が「OSX10.4」というハードディスクボリュームにある場合)
#! /bin/sh
# cp -R シンボルはシンボルのままコピーされる
# cp -r シンボルはオリジナルリンクを探して、オリジナルがコピーされる
if [ $# -eq 1 ]
then
  sudo cp -R $1/usr/local/* /usr/local
  sudo cp -nR $1/Library/Python/2.3/site-packages/* /Library/Python/2.3/site-packages/
  sudo cp -nR $1/Library/Python/2.3/site-packages/* /Library/Python/2.5/site-packages/

  sudo rm -fr /System/Library/Frameworks/Python.framework/Versions/2.3/
  sudo cp -R $1/System/Library/Frameworks/Python.framework/Versions/2.3/ /System/Library/Frameworks/Python.framework/Versions/2.3/

  sudo cp -R $1/System/Library/Frameworks/Python.framework/Versions/2.3/pysqlite2-doc /System/Library/Frameworks/Python.framework/Versions/2.5/
  sudo cp -R $1/System/Library/Frameworks/Python.framework/Versions/2.3/share /System/Library/Frameworks/Python.framework/Versions/2.5/
  sudo cp -R $1/System/Library/Frameworks/Python.framework/Versions/2.3/bin/rst2*.py /System/Library/Frameworks/Python.framework/Versions/2.5/bin/
  sudo cp -R $1/System/Library/Frameworks/Python.framework/Versions/2.3/bin/trac-admin /System/Library/Frameworks/Python.framework/Versions/2.5/bin/
  sudo cp -R $1/System/Library/Frameworks/Python.framework/Versions/2.3/bin/tracd /System/Library/Frameworks/Python.framework/Versions/2.5/bin/
else
  echo 'ボリュームのパスを指定してください。'
fi

試してみる

cd
svnadmin create svn
cd svn
mkdir trac
trac-admin trac initenv

# この後、5つの質問に答えた。
# 4番目の質問、Subversionのリポジトリの指定以外すべてenter空打ち。

    Project Name [My Project]> # enter空打ち
    Database connection string [sqlite:db/trac.db]> # enter空打ち
    Repository type [svn]> # enter空打ち
    Path to repository [/path/to/repos]> /Users/zari/svn/ # リポジトリの絶対パスを指定
    Templates directory [/System/Library/Frameworks/Python.framework/Versions/2.3/share/trac/templates]> # enter空打ち

# Congratulations!と表示されれば、OK。

# Tracサーバーを起動する。
tracd --port 8000 ~/svn/trac

# webブラウザで、http://localhost:8000/trac へアクセス。

日本語のwikiページが表示された!tracサーバー内のリンク先のページもすべて日本語化されている。日本語でマニュアルを読める幸せを感じるなあ〜。

ソースコードの日本語を読める状態に

幸せな日本語環境でいろいろ試していると、一つだけ問題が...。ソースコードのコメントが日本語の部分だけ文字化けしている...。これは文字コードの問題だった。

  • ~/svn/trac/conf/trac.ini を開いて、default_charsetを検索して...
  • 「iso-8859-15」→「utf-8」に変更することで文字化け問題解決!