2008年03月の記事

2008年03月の記事一覧です。

さっそくgaucheをインストールしましょう。Debian等のディストリビューションならパッケージが用意されていますので、そちらをインストールするのが安全確実です。cygwinにはパッケージが用意されていませんので、自前でコンパイル、インストールする必要があります。

gaucheに先立って、slibを導入しましょう。slibは汎用のschemeライブラリです。gaucheはサポート一覧に明記されていませんが、問題なく動作するようです。slibの配布サイトからzipをDLして、展開します。

$ cd tmp
$ wget http://swiss.csail.mit.edu/ftpdir/scm/slib-3b1.zip
$ unzip slib-3b1.zip -d /usr/local/lib
これでslibの導入は完了です。

次にgaucheを配布元からDLし、コンパイル、インストールします。

$ wget http://prdownloads.sourceforge.net/gauche/Gauche-0.8.13.tgz
$ tar zxvf Gauche-0.8.13.tgz
$ cd Gauche-0.8.13
$ ./configure --with-slib=/usr/local/lib/slib
$ make; make check
$ make install
基本的にはこの手順で問題なくインストールできます。私の環境ではmake check時にフリーズ(?)してしまいましたが、Ctrl-Cで一旦止めて、再度make check; make installで問題なくインストールできました。

03/11: gauche.night

gauche.night

去る03/08(土)、お台場にて開催されたgauche.nightに参加しました。gauche.nightの詳細はWiLiKiを参照して頂くとして、会場ではGauche/Scheme/Lispハッカー/プログラマの皆さんと一緒に、マターリと熱い一時を過ごしました。会場となったTOKYO CULTURE CULTUREスタッフによるライブレポートも、微妙にいい感じです。

上記サイトにもあるように、今回のイベントは書籍『プログラミングGauche』の発売記念だった訳ですが、いやもう濃いぃの何のって、これは参加した人にしか分からない。トークの内容も濃いぃ内輪ネタ(?)が満載な訳でして、プログラマ魂、息を潜めていたlambda式LOVEの感情がふつふつと。読了していないSICPも頭から読み直そうかな、と妄想中。

会場では、『プログラミングGauche』の早売りをGET! しかも初版以前のバージョンで、誤植を修正したシール付きの限定版。続編のkahua本? gaucheソースコード解説? にも期待しています。

いやー、刺激的な早春の一日でありました。

前回に続いて、tracの日本語化について。debian etchにはtrac-ja-resouceというtracの日本語化パッケージが用意されています。が、このパッケージ(0.8.4)がtracパッケージ(0.10.3)より古いため、これをそのまま導入するとエラーになります。折角なので、同じバージョンの日本語化パッケージを導入しましょう。

tracの日本語化パッケージは、インタアクト株式会社様によって公開されています。このサイトの一番下、ダウンロードの項目から日本語化tracのzipをダウンロードし、任意のディレクトリ(ここでは/trac/ja/dir)に展開します。パッケージ内にtemplatesディレクトリとwiki-defaultディレクトリがあることを確認して下さい。

まずはテンプレートを日本語化しましょう。プロジェクトの設定ファイルconf/trac.iniを編集します。

# vi /some/dir/project/conf/trac.ini
(省略)
# templates_dir = <set in global trac.ini>
templates_dir = /trac/ja/dir/templates
(省略)
これで、テンプレートは日本語化されます。次にwikiのデフォルトページ日本語化しますが、こちらはコマンドラインです。
# trac-admin /some/dir/project wiki load /trac/ja/dir/wiki-default
ただし、このコマンドを実行しますと既存のページも更新されてしまうらしいので、ご注意下さい(未確認です)。

以上、3回に渡ってtracの導入について書いてみました。参考になれば幸いです。

前回はtracの導入と設定まででした。これだけですと、動作が非常にモッサリします。Apacheにpython用のモジュールを導入して、高速化しましょう。導入は簡単。apt-get一発です。

# apt-get install libapache2-mod-python
このモジュールを有効にするかどうかの質問にyesと答え、apacheを再起動するとmod_pythonは有効になります。

ここからtrac用の設定です。昨日までの設定は以下のようなものでした。行頭の#はコメントアウトです。

            ScriptAlias /project /usr/share/trac/cgi-bin/trac.cgi
            <Location />
               SetEnv TRAC_ENV "/some/dir/project"
                AuthType Digest
                AuthName "trac"
                AuthUserFile /pass/file/path/trac.htdigest
                Require valid-user
            </Location>
これを、以下のように変更します。関係ない前後とdigest認証の設定は省略します。こちらも同様に、行頭の#はコメントアウトです。
(省略)
#           ScriptAlias /spear /usr/share/trac/cgi-bin/trac.cgi
            <Location />
#               SetEnv TRAC_ENV "/home/kamagasako/www/trac/spear
                SetHandler mod_python
                PythonHandler trac.web.modpython_frontend
                PythonOption TracEnvParentDir /some/dir
                PythonOption TracUriRoot /
(省略)
            </Location>
(省略)
ScriptAliasSetEnvは無効にします。PythonOption TracEnvParentDirにはプロジェクトファイルのあるディレクトリの親ディレクトリを指定します。PythonOption TracUriRootは、tracのルートとして見えるURIパスを指定します。

これでmod_pythonが有効になりました。のみならず、tracのルートとなるURIにプロジェクトの一覧も表示されるようになり、ちょっと便利になります。次回はtracの日本語化について。

バグ管理システム[W](BTS)のTracを導入しました。python[W]で書かれているBTSで、subversion[W] (svn)と連携して動作します。バックエンドはsqlite[W]なので、あまり深く考えなくても導入できるのが嬉しいですね。

以下、備忘です。既にsvnのリポジトリ(/svn/repo/path)は用意されており、tracのプロジェクトは/some/dir/projectにセットアップするものとします。弊社のサーバはdebian[W]ですので、例によってapt-get一発です。

# apt-get install trac
# trac-admin /some/dir/project initenv
ここで色々質問されますが、基本的にはデフォルト値のままでOK。svnリポジトリは用意してあるものを入力します。次に、Apacheの設定ですが、弊社で運用するための要件として今回は
  • sslによる暗号化
  • digest認証
を必須としました。また、closedなソースコードを扱うために、認証されないユーザはドキュメントルートすら参照できないようにします(tracのloginボタンが飾りになりますが、それはご愛嬌)。本題でないsslの設定については割愛し、tracとdigest認証に関する設定のみ抜粋するとこんな感じ。
# vi /etc/apache2/site-available/trac
(省略)
           ScriptAlias /project /usr/share/trac/cgi-bin/trac.cgi
            <Location />
               SetEnv TRAC_ENV "/some/dir/project"
                AuthType Digest
                AuthName "trac"
#               AuthDigestFile /pass/file/path/trac.htdigest
                AuthUserFile /pass/file/path/trac.htdigest
                Require valid-user
            </Location>
(省略)
AuthDigestFileがハネられるので、AuthUserFileを使っています。あとはパスワードを格納するファイル/path/file/path/trac.htdigestを作成します。
# htdigest -c /pass/file/path/trac.htdigest trac username
-cオプションは既存ファイルがあれば削除して、新規に作成するためのものですのでご注意を。第3引数のtracは、AuthNameに指定した文字列です。あとはa2ensiteで設定を有効にすれば、一応は動作します。

» 続きを読む