Mac OSX 10.5 LeopardでRails環境を整える〜Tracのインストール

前回に引き続き、今度はTracというプロジェクト管理ツールを導入してみた。(以前から憧れていたのです。)個人で開発している時でも、開発の手順や必要な機能をリストアップしておくと、今何をするべきかわかりやすくて、無駄な遠回りをしなくても済むのだ。bsjournalの時は、スティッキーズでメモしたり、ノートに書き出したりしていたのでした。これをwebベースで効率的に管理してくれるのがTracなのだと思って、期待して、今回インストールしてみることに。
Tracのインストール方法は、Trac本家のTracOnOsxNoFinkTracOnOsxFromSourcesにかなり詳しく書いてある。(英語の情報ですが...。)試しにOSX 10.4 Tiger環境にインストールした時は、ちゃんと動くようになった。ところが、OSX 10.5環境ではmakeでことごとくエラーになり、正常にインストールすることが出来なかった...。
あきらめかけたその時に、一つのアイディアが浮かんだのでした。OSX 10.4のTrac環境をコピーしてしまえば良いのではないかと...。(これはOSX10.5をインストール直後だから出来る方法。いろいろなソフトウェアをインストースした後では、必要なファイルを削除してしまうかも...。)淡い期待の中で、早速作業開始!

インストール環境やツール

  • MacBook
  • OSX 10.4
  • OSX 10.5
  • Xcode2.5(2007/10/31の最新版)
  • 初期化しても良いハードディスクボリュームを一つ。

OSX 10.4環境の作成

  • ハードディスクボリュームを初期化して、MacBook付属のインストールディスクで、OSX 10.4環境を新規インストールする。
  • Xcode2.5もインストールする。(Xcodeのバージョンは大事。自分のMacBook付属のXcode2.1では以降の作業でエラーが発生してしまう...。)

OSX 10.4環境にTracのインストール

上記で新規インストールした10.4環境から起動して...

ダウンロードするファイル
ファイル名 ダウンロードページ
neon-0.27.2.tar.gz http://www.webdav.org/neon/
swig-1.3.31.tar.gz http://www.swig.org/download.html
subversion-1.4.4.tar.gz このページ
subversion-deps-1.4.4.tar.gz このページ
clearsilver-0.10.5.tar.gz http://www.clearsilver.net/downloads/
docutils-0.4.tar.gz http://docutils.sourceforge.net/
pysqlite-2.3.5.tar.gz http://initd.org/tracker/pysqlite/wiki/pysqlite
trac-0.10.4.tar.gz http://trac.edgewall.org/wiki/TracDownload
# swig-1.3.31.tar.gzとdocutils-0.4.tar.gzを除いて、以下のcurlコマンドをコピーして実行すれば、デスクトップに一括ダウンロードされる。
cd ~/Desktop
curl http://www.webdav.org/neon/neon-0.27.2.tar.gz > neon-0.27.2.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://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://ftp.edgewall.com/pub/trac/trac-0.10.4.tar.gz > trac-0.10.4.tar.gz
ソースコードの準備

ファインダーでの操作...

  • ~/trac_srcフォルダを作って、ダウンロードしたファイルはすべてその中に入れた。
  • まず、subversion-deps-1.4.4.tar.gzをダブルクリックで解凍。
  • subversion-1.4.4フォルダが出現するので、フォルダ名をsubversion-deps-1.4.4に変更しておく。
  • 次に、subversion-1.4.4.tar.gzをダブルクリックで解凍。
  • subversion-1.4.4フォルダが出現するので、その中に、最初に解凍したsubversion-deps-1.4.4フォルダの中身をすべて移動する。
  • 上記以外はまとめて選択して、ダブルクリックで解凍しておくだけでOK。ここまでで、ダウンロードしたファイルはすべて解凍された状態になっている。
インストール

ターミナルでの操作...

  • あとはひたすら configure、make、make install の繰り返し。以下は自分が入力した軌跡。長いですが、#コメント以下のブロックごとにコピー&ペーストを繰り返せば良いと思う。
# '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
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

tracの環境設定

引き続きターミナルでの操作...

# ~/.bash_profileに以下のコマンドサーチパスを追加する。
export PATH=/usr/local/bin:$PATH

# ターミナルを再起動してから以下のコマンドを実行
cd
svnadmin create svn
cd svn

# ~/svn/tracディレクトリを作成して、tracの初期設定ファイルを作成する。
mkdir trac
trac-admin trac initenv

# 上記コマンドで、以下の質問が始まるので順に回答する。
Creating a new Trac environment at /Users/bebe/svn/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]> # 何も入力せずにenterキーを押した。プロジェクト名: 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]> # 何も入力せずにenterキーを押した。

 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]> # 何も入力せずにenterキーを押した。

 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]> /Users/zari/svn/ # 左記のようにリポジトリを絶対パスで入力した。

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

Templates directory [/System/Library/Frameworks/Python.framework/Versions/2.3/share/trac/templates]> # 何も入力せずにenterキーを押した。

Creating and Initializing Project

...(途中省略)...

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

You may now configure the environment by editing the file:

  /Users/zari/svn/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 /Users/zari/svn/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!

使ってみる

ここまでの作業で問題なければ、Congratulations! と表示される。あとは上記に書いてあるように、以下のコマンドを実行。

tracd --port 8000 ~/svn/trac

その後ブラウザを起動して、http://localhost:8000/trac にアクセスしてみる。

Tracwikiページが表示された!以上、ここまででMac OSX 10.4環境へのTracインストール完了。

      • ここまでは本家Tracで紹介されているインストール手順を踏んでいます。しかし、このあと10.5環境へのインストール手順は、インストール後もちょっとした警告が表示されたりと、あまりお勧め出来るものではありません...。OSX 10.5で使いたいソフトが使えないのが悔しくて強引にインストールしてしまいましたが、本来は、configureやmakeのオプションを正しく設定してインストールすべきですよね。正しいインストール手順を知りたいです!

OSX 10.5環境の作成

  • 届いたばかりのMac OSX 10.5 Leopardインストールディスクで、MacBookに新規インストールした。
    • 新規インストールするハードディクスボリュームが余分にない時は、ディスクユーティリティーで、事前にインストールしているOSX 10.4環境を.dmgファイルとして保存してしまう。イメージフォーマット: 圧縮で保存すれば、2.5GByteで収まってしまった。(プリンタドライバなし、余分な言語環境なしでインストールした場合。)
  • このあとの作業で特に必要ないが、付属のXcode3.0もインストールしておいた。

OSX 10.5環境にTracのインストール

インストールしたばかりのMac OSX 10.5を起動して...

インストール

OSX 10.4にインストールしたTrac環境を、OSX 10.5にコピーしてみた。10.4と10.5は関係するディレクトリ構成が微妙に違いっているので試行錯誤してしまったが、以下のようにやってみた。(Tracのインストールに関係したと思われるファイルを変更日で確認して、10.5環境へコピーしているだけです。)

以下、Finderでの操作...

/usr/local
  • 10.4の/usr/local/binを開いて、すべて選択。10.5の/usr/local/binフォルダにコピーした。
    • 10.5のusrフォルダは、移動 >> フォルダへ移動... を選択。/usr と入力して「移動」ボタン。これで不可視状態だったusrフォルダに移動出来る。
    • 10.4のusrフォルダのパスは、/Volumes/OSX10.4/usr になる。(ハードディスクボリューム名が OSX10.4 の場合)
/Library/Python/2.3/site-packages
  • 10.4の上記フォルダを開いて、すべて選択。10.5の/Library/Python/2.3/site-packagesフォルダと/Library/Python/2.5/site-packagesフォルダの両方にコピーした。
/System/Library/Frameworks/Python.framework/Versions/2.3
  • 10.4の上記フォルダを開いて、すべて選択。10.5の/System/Library/Frameworks/Python.framework/Versions/2.3フォルダへコピーした。
  • 今度は、10.4の上記フォルダのうち、以下のファイルだけ選択。
    • /Volumes/XTi2/System/Library/Frameworks/Python.framework/Versions/2.3/pysqlite2-doc
    • /Volumes/XTi2/System/Library/Frameworks/Python.framework/Versions/2.3/share
  • 10.5の/System/Library/Frameworks/Python.framework/Versions/2.5フォルダへコピーした。
/System/Library/Frameworks/Python.framework/Versions/2.3/bin
  • 10.4の上記フォルダを開いて、以下のファイルだけ選択。(直前にインストールした状態で、変更日が「今日」のファイルを選択した。)
    • rst2html.py
    • rst2latex.py
    • rst2newlatex.py
    • rst2pseudoxml.py
    • rst2s5.py
    • rst2xml.py
    • trac-admin
    • tracd
  • 10.5の/System/Library/Frameworks/Python.framework/Versions/2.5/binフォルダへコピーした。

以上で、力任せのコピー作業完了!

tracの環境設定

10.4の時と同じように設定してみた。

使ってみる

10.4の時と同じように利用してみた。
webブラウザで確認する限り、ちゃんと動いているようだが、tracd --port 8000 ~/svn/tracを実行後のログが気になる。

tracd --port 8000 /Users/zari/svn/trac
/Library/Python/2.5/site-packages/trac/web/clearsilver.py:128: RuntimeWarning: Python C API version mismatch for module neo_util: This Python has API version 1013, module neo_util has version 1012.
  import neo_cgi
/Library/Python/2.5/site-packages/trac/web/clearsilver.py:128: RuntimeWarning: Python C API version mismatch for module neo_cs: This Python has API version 1013, module neo_cs has version 1012.
  import neo_cgi
/Library/Python/2.5/site-packages/trac/web/clearsilver.py:128: RuntimeWarning: Python C API version mismatch for module neo_cgi: This Python has API version 1013, module neo_cgi has version 1012.
  import neo_cgi
127.0.0.1 - - [05/Nov/2007 10:21:42] "GET /trac HTTP/1.1" 200 -
127.0.0.1 - - [05/Nov/2007 10:21:42] "GET /trac/chrome/common/trac.ico HTTP/1.1" 200 -
127.0.0.1 - - [05/Nov/2007 10:21:42] "GET /trac/chrome/common/css/wiki.css HTTP/1.1" 200 -
127.0.0.1 - - [05/Nov/2007 10:21:42] "GET /trac/chrome/common/js/trac.js HTTP/1.1" 200 -
127.0.0.1 - - [05/Nov/2007 10:21:42] "GET /trac/chrome/common/css/trac.css HTTP/1.1" 200 -
127.0.0.1 - - [05/Nov/2007 10:21:42] "GET /trac/chrome/common/css/code.css HTTP/1.1" 200 -
127.0.0.1 - - [05/Nov/2007 10:21:42] "GET /trac/chrome/common/trac_banner.png HTTP/1.1" 200 -
127.0.0.1 - - [05/Nov/2007 10:21:43] "GET /trac/chrome/common/topbar_gradient.png HTTP/1.1" 200 -
127.0.0.1 - - [05/Nov/2007 10:21:43] "GET /trac/chrome/common/extlink.gif HTTP/1.1" 200 -
127.0.0.1 - - [05/Nov/2007 10:21:43] "GET /trac/chrome/common/dots.gif HTTP/1.1" 200 -
127.0.0.1 - - [05/Nov/2007 10:21:43] "GET /trac/chrome/common/trac_logo_mini.png HTTP/1.1" 200 -
127.0.0.1 - - [05/Nov/2007 10:21:43] "GET /trac/chrome/common/topbar_gradient2.png HTTP/1.1" 200 -

最初にアクセスした時に、RuntimeWarning: Python C API version mismatch for moduleという警告が3件表示されている。調べてみたが、この警告がどんな影響をもたらすのか分からなかった。とりあえず、webブラウザからは正常に操作出来るようなので、このまま使ってみることにする。

以上で、なんとか...OSX 10.5環境でTracが使えるようになった!