ラベル Trac の投稿を表示しています。 すべての投稿を表示
ラベル Trac の投稿を表示しています。 すべての投稿を表示

2007年6月10日日曜日

Tracのマルチプロジェクト管理用Plugin - TraM.

この概要は表示できません。投稿を閲覧するには ここをクリック してください。

2007年5月13日日曜日

Trac Web Admin Pluginを入れてみた.

 先日書いた「Tracインストール手順メモ.」の続きです.
 とは言え、かなり間が開いてしまいましたが orz

 今回は
  
 ・Trac Web Admin Plugin [ver 0.1.2dev_r4240](Python2.4版)

 をインストールし、TracのWeb画面上から管理者機能を使える様にしようと思います.

1. setuptoolsをインストール.



 オプション機能のsetuptoolsをインストールします.
 上記の「Tracインストール手順メモ.」を先に見ていれば、ダウンロードからインストール方法まで書いてあります.
 Trac Web Admin Pluginをインストールする前に、このオプション機能をインストールしておかなければいけないようです.



2. Trac Web Admin Pluginをインストール.



 インストールと言っても、手順は非常に簡単です.
 インストールパスは、前回作成したテストプロジェクトのディレクトリである事を前提にしています.

[??@fedora]# cd /sources
mv TracWebAdmin-0.1.2dev_r4240-py2.4.egg.zip /usr/local/trac/testprj/plugins/TracWebAdmin-0.1.2dev_r4240-py2.4.egg
[??@fedora]# chown [apache user]:[apache group] TracWebAdmin-0.1.2dev_r4240-py2.4.egg

 実行している事は、Trac Web Admin Pluginの本家サイトに書いてある事だけです.
  1. ダウンロードしたファイルから「.zip」拡張子を削除
  2. プロジェクトの「plugins」ディレクトリにファイルを配置
  3. ファイル権限変更(これは書いてませんが)

 次に、プロジェクト設定ファイルで、Trac Web Admin Pluginを有効にします.

[??@fedora]# vi /usr/local/trac/testprj/conf/trac.ini
…[中略]…
[components]
webadmin.* = enable

 設定ファイル中に[components]セクションが無い場合は、適切な場所に追記します.
 この設定方法は、Tracのマニュアル(TracGuid)に記載してあります.

 さて、インストールは完了しましたが、これだけでTrac Web Admin Pluginが使える訳ではありません.
 ちゃんとユーザー設定、パーミッション設定をする必要があります.



3. ユーザー設定.



 前回のインストール手順メモでは、ごく簡単に(と言うか概要のみ)しか触れていませんでしたが、Trac用のユーザー設定を行います.

[??@fedora]# vi /usr/local/apache2/conf/extra/httpd-trac.conf
 # Tracの設定項目は省略. 前回分参照.
 <LocationMatch "/trac/[^/]+/login">
  AuthType Basic
  AuthName "Test Project"
  AuthUserFile /usr/local/trac/testprj/.htpasswd
  Require valid-user
 </LocationMatch>

 「AuthUserFile」は好みのパスを指定します.
 今回は分かり易い様に、Tracのテストプロジェクト内に「.htpasswd」と言うファイルを作成する事にしました.
 そして、実際に「.htpasswd」(要するに、普通にApacheでパスワード認証する場合と同じファイル)を生成します.

[??@fedora]# htpasswd -c -b /usr/local/trac/testprj [user name] [password]
 ※当然[user name]と[password]を自分の環境にあわせて書き換えます.

 これでユーザー設定が完了しました.
 続いて、Tracプロジェクトのパーミッション設定を行います.



3. パーミッション設定.



 Trac Web Admin Pluginはその名前の通り、Web上からAdministrator的な機能を実行する為のプラグインですので、設定したユーザーがTrac上のAdministrator権限を持っていなければいけません.
 先ほど作成したユーザーに、「TRAC_ADMIN」と言うAdministrator権限を付与します.

[??@fedora]# trac-admin /usr/local/trac/testprj permission add [user name] TRAC_ADMIN

 後は実際に使ってみるだけです.



4. Trac Web Admin Pluginを使う.



 まず、Tracからログインします.
 Tracのトップ画面標示後、右上にある「ログイン」から認証処理を実行します.
 当然、htpasswdで作成したユーザー名、パスワードを入力します.

 そうすると、画面上にユーザー名が表示され(ここまでは標準機能のログイン)、メニューバー(?)に「Admin」ボタンが追加されます.

 環境によっては(?)、認証時に以下の様なエラーが発生するかもしれません.

Traceback (most recent call last):
…[中略]…
The following error occurred while trying to extract file(s) to the Python egg
cache:

[Errno 13] Permission denied: '/root/.python-eggs'

The Python egg cache directory is currently set to:

/root/.python-eggs

Perhaps your account does not have write access to this directory? You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory.


 要するに、キャッシュファイルをrootディレクトリに作成しようとしてエラーが発生しているので、アクセス可能なディレクトリを指定して下さいよ、と言う事でしょう.
 この場合、↑の指示に従って、Apacheの設定ファイルに変更を加えます.

[??@fedora]# vi /usr/local/apache2/conf/extra/httpd-trac.conf
 <Location /trac>
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir /usr/local/trac
  PythonOption TracUriRoot /trac
  SetEnv PYTHON_EGG_CACHE /usr/local/trac/testprj/.python_eggs
  #↑この1行を追記
 </Location>
 # 以下はパスワード制限する場合に必要.
 <LocationMatch "/trac/[^/]+/login">
  AuthType Basic
  AuthName "Test Project"
  AuthUserFile /usr/local/trac/testprj/.htpasswd
  Require valid-user
 </LocationMatch>

 設定に誤りが無ければ、これで正常にログインできるかと思います.

 Trac Web Admin Pluginの各機能は、この「Admin」ボタンから実行可能です.
 この各種機能を使う事で、上述したtrac-adminを使用したパーミッション設定などをWeb画面上から設定可能になります.
 おお、何とも便利!!

 …ただ、これ公開用で使うのはちょっと恐い気がしないでも無いですね.
 どうなんだろう?
 まぁ、私はローカルでしか使わないので問題ありませんが.

2007年4月15日日曜日

Tracインストール手順メモ.

 と言う事で、無事TracをApache上で動かす事も出来ましたので、Tracのインストール方法(ソースベース)をメモ.

1. Install環境の確認.



 OS … Fedora Core6(Linux)
     Ubuntu 6.10 Desktop 日本語版(Linux)
     Debian GNU/Linux 3.1 r5(Linux)
  ※FCは必要な環境のいくつかが最初からRPMで入っているケースが多いので、
   2つのディストリビューションで試してみました.
  ※本当はUbuntuで試したかったんですが、何せCD-Rドライブがいかれている
   ので諦めました orz

 今回の主な環境(Python以外ソースから)
  ・Trac … Trac 0.10.3.1日本語版
  ・Webサーバ … Apache
    ※Apacheに関しての記述を飛ばせばtracdでもOK.
  ・データベース … SQLite
  ・バージョン管理 … Subversion

 今回は以上の環境でインストールしてみます.
 他の環境では以下のサイトが役に立つでしょう.

  【Trac全般】
   ・discypus.jp
    ※メニューの「Bug Tracking」から
  【Windows】
   ・探し中…
  【Linux】
   ・パッケージ(RPM)でインストール[導入が楽なのでオススメ]
     ・kazfの日記
   ・積み重ねた日々
  【その他】
   ・探し中…



2. 必要なファイルのダウンロード.



 Tracを動かす場合、以下の環境が必要になります.
 括弧内はlightmaterialが試したバージョンです.
 ※今回はPython以外すべてソースから入れました.
 ・Trac日本語版 [ver 0.10.3.1-ja-1]
 ・Python [ver 2.4.4 / 2.3.5(Debian)]
   → Pythonがデフォルトで入っていない環境を再現出来なかったので、インストール方法は割愛.
 ・SQLite [ver 3.3.6]
 ・PySQLite [ver 2.3.3]
 ・Apache [ver 2.2.4]
 ・mod_python [ver 3.3.1]
 ・Subversion [ver 1.4.3]
   → Python bindingsが有効化(導入)されている必要がある
 ・ClearSilver [ver 0.10.4]

 次の環境はオプション.

 ・setuptools [ver -.-.-]
   → インストールしておいた方がいいと思います.
 ・Trac Web Admin Plugin [ver 0.1.2dev_r4240](Python2.4版)
   ※↑2007-05-13確認
   → trac-adminでの操作をWeb画面上から操作可能にするPlugin.
 ・TraM [ver 0.1]
   ※↑2007-06-10追記
   → 複数プロジェクトの管理をサポートするPlugin.

 以下未確認オプション.
 これからインストールしてみます.

 ・docutils [ver ?]

 今回はこれらのファイル(未確認オプション除く)を
  /sources
 以下に保存したと言う前提で書きます.
 環境に応じ、読みかえる必要があります.



3. Pythonをインストール.



 まぁ、大抵の環境ではPythonが既に導入されているので、このセクションは不要だと思います.
 と言いますか、Pythonが入っていない環境を再現できませんでしたw
 ちなみに、readmeなんかには「rpm版の場合はpython-develとpython-xmlが必要かもね」的な事が書いてありますが、python-xmlを探す事が出来ませんでした(今の所無くても問題ありませんが、何かの拍子に要求されるかも)ので、今回はメモをパス.

 Pythonが導入されていれば、以下のコマンドで確認(起動)できます.

[??@fedora]# python
Python 2.x.x[インストールバージョン] (#1 [日付])
[GCC [GCCバージョン]] on linux2
Type "help". "copyright". "credits" or "license" for more information.
>>>

 終了する場合は[Ctrl + D]で終了出来ます.
 ちなみに「python2」でも「python2.4」でも起動出来ます.
 おそらくpython1.x系とpython2.x系を同居させた環境の為かと思います.
 ※「python2.4」は単体ファイルですが、「python2」は「python」へのシンボリックリンクです.

 ここで上手く行かない場合は…Python日本ユーザー会のサイトを確認して下さい.



4. SQLiteをインストール.



 lightmaterialのFC6環境では、最初からRPMで入っていました.
 何かの依存で入ったのかもしれませんが、最初から入っていたらこのセクションは不要です.

[??@fedora]# cd /sources
tar xvzf sqlite-3.3.15.tar.gz
cd sqlite-3.3.15
./configure
make; make install

 正常にインストールされていれば

 sqlite3
 または
 /usr/bin/sqlite3
 または
 /usr/local/bin/sqlite3

 で起動できます.



5. PySQLiteをインストール.



 PySQLiteはPythonからSQLiteを扱えるようにするアプリケーションらしい.
 PySQLiteをインストールするには、Pythonを使います.

[??@fedora]# cd /sources/
tar xvzf pysqlite-2.3.3.tar.gz
cd pysqlite-2.3.3
python ./setup.py install

 ここで以下の様なエラーが出た場合は、yumかaptitudeで「python-devel」をインストールします.

unable to open /usr/lib/python2.x/config/Makefile

 yumは分かるとして、Debianに慣れていないので一応メモ.

[??@fedora]# aptitude install python-dev

 ※rpmは「python-devel」ですが、Debianは「python-dev」

 依存関係を調べてインストールしてくれます(yumも基本的に同じです).

[??@fedora]# yum install python-devel

 リポジトリの設定によっては、yumで拾ってくれませんので、設定変更するか、自分でpython-develをダウンロードし(この辺から)、rpmでインストールします.

[??@fedora]# rpm -ihv python-devel-2.4.4-1.fc6.i386.rpm

 たぶんpython-develをインストールした後は、問題なくsetup.pyでインストール出来るでしょう.



6. Apacheをインストール.


[tracdで動かす場合は不要]

 他のサイトに山ほど情報が載っていますので、次項以降も含め、今回は単にTracをテストで動かす事を目的としたインストール、設定を行います.
 ※セキュリティに関わる事も飛ばして書いていますので注意して下さい.

[??@fedora]# cd /sources
tar xvzf httpd-2.2.4.tar.gz
cd httpd-2.2.4
./configure --enable-so --with-included-apr --enable-dav
make; make install

 ※WebDAVを有効にしておかないと、最終段階でエラーが出ました.

 エラーが出なければ、

 /usr/local/apache2/conf/httpd.conf

 ファイルを標準的な内容で編集します.
 編集後、下記コマンドで起動確認します.

[??@fedora]# /usr/local/apache2/bin/apachectl start

 ここで以下の様なエラーメッセージが出るかもしれません.

/usr/local/apache2/bin/httpd: error while Loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory

 これはパスが不正でDSOモジュールとしてSQLiteが読み込めてないと言う事ですので、「libsqlite3.so.0(本体 libsqlite3.so.0.8.6)」のシンボリックリンクを「/usr/lib」に置いてあげます.

[??@fedora]# ln -s /usr/local/lib/libsqlite3.so.0.8.6 /usr/lib/libsqlite3.so.0

 Apacheを起動して何もエラーメッセージが出なければ、

 http://localhost

 にアクセスする事で、Apacheが起動している事を確認できるでしょう.



7. mod_pythonをインストール.


[tracdで動かす場合は不要? - 要確認]

 Apacheが動いたら、次はmod_pythonをインストールします.

[??@fedora]# cd /sources
tar xvzf mod_python-3.3.1.tgz
cd mod_python-3.3.1
./configure --with-apxs=/usr/local/apache2/bin/apxs
make; make install

 Pythonが見付からない様であれば、「--with-python=/[path to python]」(ソースからインストールした場合のデフォルトprefixでは「--with-python=/usr/local/lib/python2.4」、RPMパッケージなら「/usr/lib/python2.4」)を指定すると上手く行くようです.
 インストールが終わったら、Apacheの設定ファイルにmod_pythonに関する記述を追記します.

[??@fedora]# vi /usr/local/apache2/conf/httpd.conf
 LoadModule python_module /usr/local/apache2/modules/mod_python.so

 ※上記パスはmake install時にmod_pythonが以下の様に明示してくれます
  Now don't forget to edit your main config and add
   LoadModule python_module /usr/local/apache2/modules/mod_python.so

 そして、Apacheを再起動し、エラーが出ない事を確認します.

[??@fedora]# /usr/local/apache2/bin/apachectl restart

 記述内容に誤りがある場合や、正常にインストール出来ていなかった場合には、ここでエラーが出ます.
 設定内容を見直しましょう.

 次にテストファイル(*.py)を動かしてみます.
 ここでは、日本Pythonユーザー会のサンプルに沿って(多少変更あり)設置してみます.
 まず、Apacheの設定ファイルを編集します.
 Apache2.2.x系ではconfigファイルを機能毎に分離する事が推奨されていますので、以下の様にmod_python用の設定ファイルを作成します.

[??@fedora]# vi /usr/local/apache2/conf/extra/httpd-python.conf
 <Directory /[path to DocumentRoot]/pythontest>
  AddHandler mod_python .py
  PythonHandler testfile
  PythonDebug On
 </Directory>

 Apacheのhttpd.confにIncludeを追記します.

[??@fedora]# vi /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-python.conf

 次に、実際にテストファイルを設置します.

[??@fedora]# mkdir /[path to DocumentRoot]/pythontest
vi /[path to DocumentRoot]/pythontest/testfile.py
from mod_python import apache

def handler(req):
    req.write("Hello World!")
    return apache.OK

 ※Pythonはインデントで構文を構築しています.
  インデント位置は保持する必要があります.

 ここまで設定出来たら、実際にmod_pythonが動作しているか確認します.

 http://localhost/pythontest/testfile.py

 にアクセスすると、

 Hello World!

 と表示される事でしょう.
 上手く動作している事が確認できたら、テストファイルは削除し、httpd.confに追記した「Include conf/extra/httpd-python.conf」をコメントアウト(または削除)します.



8. Subversionをインストール.



 Subversionが何であるかの説明は割愛します(一言で言えばCVSの様なバージョン管理システムです).
 検索すると、色々と詳しい事が書いてあるサイトを見つける事が出来ますし.

[??@fedora]# cd /sources
tar xvzf subversion-1.4.3.tar.gz
cd subversion-1.4.3
./configure
make; make install

 Debianでzlibが導入されていない場合、configure時に以下の様なエラーが出ます.

configure: error: subversion requires zlib

 …面倒なので時間が無いのでzlibはソースじゃなくてaptitudeでインストールしました.

[??@fedora]# aptitude install zlib1g-dev

 これで素のDebianでもconfigureが成功するかと思います.
 以下のコマンドで、正常にインストール出来ているかを確認します.

[??@fedora]# svn help
…[使用方法に関してだらだらと]…

 正常にインストール出来ている様であれば、Apacheが正常に起動するか確認します.
 エラーメッセージが表示される場合は「Apacheのconfigure時にAPR-Utilでエラーが出る.」を確認.

 本来、この後はリポジトリの作成、設定等々ありますが、必要最低限のみ記載します.

 svnadmin create --fs-type fsfs [path to repository]
 例として今回は

[??@fedora]# svnadmin create --fs-type fsfs /usr/local/svn/repos

 としてリポジトリを作成してみました.



9. Python bindingsをインストール.



 SubversionとPythonを連系させる為、SubversionのPython bindingsを導入します.
 これは、別途ファイルを用意する必要は無く(パッケージ版は分かりませんが…)、先にダウンロードしたSubversionのソースファイルの中にあります.

[??@fedora]# cd /sources/subversion-1.4.3
make swig-py
make install-swig-py

 正常にインストールが完了した場合、以下のファイルが生成されています.

 /usr/local/lib/svn-python

 また、

 /usr/lib/python2.4/site-packages/svn-python.pth

 が存在するか確認し、存在しない場合は

[??@fedora]# echo /usr/local/lib/svn-python > /usr/lib/python2.4/site-packages/svn-python.pth

 としてパスを通します.
 ※↑は「積み重ねた日々」を参照しました.



10. ClearSilverをインストール.



 テンプレートエンジンらしいですが、ClearSilverについてはよく分かりません.
 …まぁ、他のソフトウェアについても良く分かっていないんですが orz

 気をとり直して

[??@fedora]# cd /sources
tar xvzf clearsilver-0.10.4.tar.gz
cd clearsilver-0.10.4
./configure
make; make install

 Apacheのパスが見付からないとエラーが出る場合は、「--with-apache=/[path to Apache2]」と指定すると良いでしょう.
 ただ、エラーメッセージが出なかったからと言って、ClearSilverが正常にインストールできたかどうか確認する方法をlightmaterialは知りません.
 Tracをインストールし、正常に起動(アクセス)できたか否かで判断しています.



11. Tracをインストール.



 ようやくTracの出番ですw

[??@fedora]# cd /sources
unzip trac-0.10.3.1-ja-1.zip
cd trac-0.10.3.1-ja-1
python ./setup.py install

 ZIP圧縮ですので、unzipが必要です.
 これで「取り敢えずの」インストール完了.
 と、ここでワンクッション.
 今回、日本語版のTracをインストールした訳ですが、Trac0.10.3.1日本語版(trac-0.10.3.1-ja-1.zip)には少し問題があります.
 trac-adminとtracdの改行コードがCrLfであると言う事です.
 このまま起動しようとしても

[??@fedora]# trac-admin
 : そのようなファイルやディレクトリはありません
 [または日本語コンソール環境外であれば…]
 : No such file or directory

 と言うエラーが返ってきます.

 なぜそうなっているのか(敢えてCrLfにしているのか、意図せずCrLfになってしまったのか)は知りませんが、下記の方法でCrLfからLf改行に変更します.

[??@fedora]# cd path/to/trac/bin
※デフォルトprefixで入れているなら「/usr/bin」
tr -d "\r" < trac-admin > ta
mv ta trac-admin
tr -d "\r" < tracd > td
mv td tracd

 ※この操作はdiscypusさんに教えていただいたものです.
  詳しくは↓こちらから

  [エラー] trac-0.10.3.1-ja-1 の trac-admin, tracd の改行コードを修正

 上記操作が終わったら、下記のコマンドで正しくインストールされたかを確認します.

[??@fedora]# trac-admin
 trac-admin - The Trac Administration Console 0.10.3.1
 …[以下使用方法に関してだらだらと]…

 ここまで来たら後一歩です.



12. Tracの設定.



 Tracを動作させる為の各種設定を行います.

 まず、Trac用のディレクトリを作成します.
 これは好みのパスで問題無いでしょう(ApacheのDocumentRoot配下除く).
 今回は「testprj」と言うプロジェクト用のディレクトリも含め、

 /usr/local/trac/testprj

 と言うディレクトリを作成してみます(「/var/trac」などでもいいと思います).

[??@fedora]# mkdir -p /usr/local/trac/testprj

 作成したディレクトリに、Trac用のファイルを作成します.

[??@fedora]# trac-admin /usr/local/trac/testprj initenv

 # 以下、「>」の右側はテストで作成した環境.
 # 空白の場合はデフォルト値(そのままEnter)
 Project Name [My Project]> Test Project
 Database connection string [sqlite:db/trac.db]>
 Repository type [svn]>
 Path to repository [/path/to/repos]> /usr/local/svn/repos
 Templates directory [/usr/share/trac/templates]>

 作成した後は、Apacheから操作出来る様に、所有者を変更してあげます.

[??@fedora]# chown -R [apacheユーザー]:[apacheグループ] /usr/local/trac/testprj

 尚、Tracのドキュメントによると、ここでSELinuxが有効になっている環境では、許可設定を変更してあげる必要があるとの事です(が、何故かlightmaterialの環境ではSELinuxを有効にしているにも関わらず、特にPermissionエラーは出ませんでした).

[??@fedora]# chcon -R -h -t httpd_sys_content_t PATH_TO_REPOSITORY

 次にApacheのTrac用設定を行います(tracdで動かす場合は不要です).
 Apache2.2.x系ではconfigファイルを機能毎に分離する事が推奨されていますので、以下の様にTrac用の設定ファイルを作成します.

[??@fedora]# vi /usr/local/apache2/conf/extra/httpd-trac.conf
 <Location /trac>
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir /usr/local/trac
  PythonOption TracUriRoot /trac
 </Location>
 # 以下はパスワード制限する場合に必要.
 <LocationMatch "/trac/[^/]+/login">
  AuthType Basic
  AuthName "TEST"
  AuthUserFile /usr/local/trac/.htpasswd
  Require valid-user
 </LocationMatch>

 Trac用の設定ファイルを作成したら、その設定ファイルをhttpd.conf本体からインクルードする為の記述を追記します.

 Include extra/httpd-trac.conf
 ※適当な場所に記述します.分かり易く、他の設定ファイルをIncludeしている場所の前後に書く方が良いかと思います.

 そしてApacheを再起動.

[??@fedora]# /usr/local/apache2/bin/apachectl restart

 エラーが出なければ無事Tracの設定は完了です.

 tracdで動かすなら

[??@fedora]# tracd --port [適切なポート] /usr/local/trac/testprj

 でtracdを起動します.



13. オプション機能をインストール.



 必要に応じて、オプション機能をインストールします.

 ・setuptools
[??@fedora]# cd /sources
python ez_setup.py


 ・Trac Web Admin Plugin
   2007-05-13別記しました.
   →「Trac Web Admin Pluginを入れてみた.

 ・TraM
   2007-06-10別記しました.
   →「Tracのマルチプロジェクト管理用Plugin - TraM.

 @todo 他のオプション機能については、これから調査.

 これでやっと全ての準備が整いました!!!



14. Tracを使う.



 Apacheなら
  http://localhost/trac/testprj
 へアクセス.
 tracdなら
  http://localhost:[適切なポート]/trac/testprj
 へアクセスしてみると…


 これまでの道のりで誤りがなければTracの素敵な画面が表示されます!
 Debianの場合、Python上の日本語エンコードの問題で、以下のエラーが発生するかもしれません.

LookupError: unknown encoding: EUC-JP

 この場合、コーデックを入れる必要があります.

[??@fedora]# aptitude install python2.3-japanese-codecs


 後は必要に応じてtracのプロジェクト個別設定ファイル

 /[path to trac project]/conf/trac.ini
 例では
 /usr/local/trac/testprj/conf/trac.ini

 を編集するだけです.

 もしここまででエラーが出たら…どこかの設定やインストールが上手く行っていません orz


 Pythonのエラーメッセージが表示されるのであれば、ApacheのTrac用設定に誤りがある可能性が高いかと思います(ただし、Pythonのエラーメッセージ中にPermission〜とエラーが出ていたら、許可設定、権限設定の問題です).
 単にファイル構成がリストアップされた画面になった場合も(Apacheの設定でIndexesを無効にしていたら出ませんが)、ApacheのTrac用設定(と言うか、Pythoの設定ですが)に誤りがある可能性があります.

 lightmaterialが引っかかったのは、trac-adminの改行コード問題と、ApacheのTrac用設定くらいでしたので、それ以外のトラブルについては分かりませんが、検索すると色々出てきそうな気はします.


 それにしても、本当に挫けそうなほど導入が煩雑です.
 ここまで書いておいて何ですが、正直パッケージで導入する方が数段賢いですw
 少なくとも、私はソースで導入して「なんて馬鹿な事をしてしまったんだぁぁぁぁ〜〜!!! orz」と思いました、はい.

 今日はblog書く事自体に疲れました orz

2007年4月8日日曜日

Tracを動かしてみた.

 と言ってもtracd(Tracに付属するhttpサーバ)で動かすと言う姑息な手段ですw

 tracdで
[??@fedora]# tracd --port [適切なポート番号] /var/www/html/trac

 として動かしてみました.
 ※今更ながら気付きましたが、正直Trac用のディレクトリ作成パスが不正です orz
  何故なら、今のパス設定だと設定ファイルが丸見えだからw

 Apacheでやるとまだ上手く動きませんので、もう少し設定なり環境(パス等含む)を見直す必要がありますが、それでもTracを動かすのも夢物語では無くなりました.

 軽く各機能を見てみましたが…これは良い!!
 素晴らしいです.
 これだけ充実した環境だと、プロジェクト把握が容易に出来ると思われます.
 そりゃ、これだけ動かす条件が多いのにも関わらず使う人が居る訳ですね.


 因みに、先ほどdiscypusさんのサイトを覗いてみたら、改行コード問題について更に詳細に書いてありました.
 有り難や有り難や.

 [エラー] trac-0.10.3.1-ja-1 の trac-admin, tracd の改行コードを修正

動いたtrac-admin.

 先日(と言っても、私の場合週末しかblog管理していませんので、先週の話ですが orz)書いたtrac-adminが動かない問題、lightmaterialが参考にさせてもらったdiscypus.jpの管理人さんと思われる方から、そのものズバリの情報をコメントに頂いて、早速試した所サクッと動きました!!

[??@fedora]# /usr/bin/trac-admin

trac-admin - The Trac Administration Console 0.10.3.1
…[以下コマンドリファレンスがズラズラと]…


 discypusさんのご指摘では、どうやら本来Lf改行になっているべきコード(trac-admin/tracd)がCrLf(要するにSjis用改行)になっていたらしい.

 詳しくは↓こちらを参照.

 trac-0.10.3.1-ja-1 の trac-admin, tracd の改行コードを修正

 と言うか、上の記事の投稿日が「2007-03-15」になってると言う事は、discypusさんのサイトをくまなく読んでいれば、さっさと問題を解決出来たって事ですね orz

 とにかく、神の一言で最低限の部分が動くようになったので、他の所でも引っかからないか確認しつつ設定してみます.

2007年4月1日日曜日

そのようなファイルやディレクトリはありません by trac-admin

/**
* 2007-04-08 22:18 追記.
* この問題は神の一言で解決しました.
* 詳しくは「こちら
*/


 はい、全然駄目ぇ〜 orz

 一通り以下のようにインストールしてみましたが、trac-adminが動いてくれません.

  ・mod_python … ソース
  ・trac … 日本語版ソース
  ・ClearSilver … ソース
  ・PySQLite … ソース
  ・Subversion Python binding … ソース(と言うかsubversionのソースから)

 ソースでインストールする時に何か設定が変だったのか、関連ソフトウェアなりライブラリなりが不足しているのか…

 ためしに以下のようにコマンドを打ってみると…

[??@fedora]# trac-admin /var/www/html/trac initenv

: そのようなファイルやディレクトリはありません


 と来たもんだ orz

 普通、コロンの前に対象のファイル名が記載されて「○○と言うファイルなんてありませんよー」と教えてくれる訳ですが、そのファイル名が空で表示されています.
 と言う事は、trac-adminに記述されている変数なり環境変数に値が入っていないと言う事か?と思い、trac-adminの中身を覗いてみるも、当然の如くPythonで記述されているのでイマイチ意味が分かりません orz

 import sys

 このあたりが悪いのかなぁ?
 今からパッケージでインストールするとなると、ソースでインストールしたファイル全部削除すると言う大仕事になっちゃうしなぁ…せめてmake uninstallに対応していれば…と試すも全滅.
 Tracを動かすのはまだまだ先の話になりそうです orz

mod_python.

 先ほど書いたように、Tracをインストールする事前準備として、Apacheのモジュールに「mod_python」が必要との事でしたが、lightmaterialはApacheをソースから入れている為か標準ではmod_pythonが入っていませんでした.
 と言う事で、mod_pythonをインストール.

 mod_pythonは名前の通りPythonをApache上で動作させる為のモジュールです.
 また、詳しくは調べていませんが、最近のバージョンからDSO(Dynamic Shared Objects)のみ対応してるらしいので、Apacheのコンパイル時には「--enable-so」か「--enable-shared」オプションを付ける必要がありそうです(先日書きましたが、「--enable-shared」はconfigureヘルプには出てきませんが、知人の話によると、どうやらApacheではconfigureヘルプには出ないオプションが複数あるようで、「--enable-shared」もその一つらしい).
 じゃぁ、Pythonって何さ?と言うと、lightmaterialの薄い知識ではインタープリターなプログラム言語と言う程度しか知りません(Python自体を動かすのにApacheもmod_pythonも必要ありません).
 この機会に、「Pythonって何さ?」と言う事も調べてみようかと思いました(詳しくは後述).

 取り敢えず、最終目的のTracをインストールするためには、兎にも角にもこのmod_pythonをインストールしなければいけませんので、まず本家からmod_pythonをダウンロードします.

 mod_python

 次にインストールですが、この工程には「日本Pythonユーザー会」のページが役立つでしょう.

 日本Pythonユーザー会

 ついでにプログラム言語「Python」についても、少々知識を仕入れました.

[日本Pythonユーザー会から抜粋]
Python の開発は、1990 年ごろから開始されています。開発者の Guido van Rossum は教育用のプログラミング言語「ABC」の開発に参加していましたが、ABC は実用上の目的にはあまり適していませんでした。このため、Guido はより実用的なプログラミング言語の開発を開始し、英国 BBC 放送のコメディ番組「モンティ パイソン」のファンである Guido はこの言語を「Python」と名づけました。

 ふーん.
 なるほどなるほど.
 このサイトの説明によれば、オブジェクト指向かつ学習が容易で、その開発範囲はゲームからインストーラ(インストーラの一部にPythonが使われているのは知っていました)、はたまたサーバーアプリケーションまで様々な分野に及ぶそうです.
 もっと早く知っていれば(と言うか、調べようとしなかった私が悪い orz)、lightmaterialが使える言語リストに、この「Python」が入っていたかもしれません.
 今はJavaを覚えようと模索中なので、これからいきなり「Python覚えます!」とはいきませんけど.

 とにかく、そんなPythonをApache上(要するにWebアプリケーションとして)で動作させるのがmod_pythonな訳ですね.
 なんとなくPythonの概要が見えてきました.

 そこまで確認した所で、今回の目的であるmod_pythonについて、「mod_pythonマニュアル」が親切にも日本語化されて置いてある事を知りましたので、このマニュアルに従ってインストールしてみる事に.

 mod_pythonマニュアル

ファイル展開.


 本家サイトからダウンロードしたファイルを展開します.

[??@fedora]# tar xvzf mod_python-3.3.1.tgz
[??@fedora]# cd mod_python-3.3.1

 いつもどおり展開して、展開後のディレクトリに入りました.
 今回はマニュアルもあるし、すんなりいきそうです.


configure.


 Apacheをソースから入れている都合上、一応Apache(apxs)パスの指定オプションを付けてconfigureしてみました.

[??@fedora]# ./configure --with-apxs=/usr/local/apache2/bin/apxs

 Apacheをデフォルトのprefixで入れている場合は、指定しなくても行けるかもしれません(?)
 何事も無く終了…あっけない.


make.


 これまたいつも通り、make/make installします.
 普通です.
 すごい普通ですw

[??@fedora]# make; make install

 エラーも出ず、正常にインストール完了.
 後はApacheのconfファイルに、mod_pythonの設定を追記しないといけません.


Apacheの設定.


 confファイルに次の通り追記します.
[??@fedora]# vi /usr/local/apache2/conf/httpd.conf

LoadModule python_module /usr/local/apache2/modules/mod_python.so

 lightmaterialは、分かり易いようにphp_moduleやdav_svn_moduleの下に追記しておきました.
 ここまでは、いつになくスムーズにインストールが出来たのですが、ここからが良く分かりません orz

 マニュアルによると、.htaccessなりhttpd.conf(対象ディレクトリの設定<Directory>項目)にAddHandlerと「PythonHandler」を追記する必要があるとの事ですが…「PythonHandler」って何?w
 AddHandlerはcgiを使う際に記述するのと同様に、Pythonのソースファイルである「.py」について記述します.

 AddHandler mod_python .py

 そして意味の分からない以下の記述を追記.

 PythonHandler mptest
 PythonDebug On

 この記述はマニュアルの通りな訳ですが、例えば

 /var/www/html

 にドキュメントルートを指定している状態で

 <Directory>
 </Directory>

 項目内に「PythonHandler」を記述し、

 /var/www/html/python/mptest.py
 ※中身はマニュアルに書かれた「Hello World」

 としてソースファイルを作っても上手く動きません.
 こんなエラーが帰ってきます.

MOD_PYTHON ERROR
[中略]
Phase: 'PythonHandler'
Handler: 'mptest'
[中略]
ImportError: No module named mptest


 …は?
 何?何?
 意味が分かりませんが…ソースとして設置したファイルをmoduleとして読みかえると意味が分からなくもない.
 例に

 /var/www/html/mptest.py

 とパスを変更して保存してみると、何事もなかったかのように「Hello World!」と表示されやがります.
 全っ然意味が分かりませんw
 まさか全部のコードに対してPythonHandlerを指定しなければいけない訳でもないだろうし…

 この辺の設定、もう少し勉強が必要な様ですが、元々の目的がTracのインストールなだけに、気にせずTracのインストールに行くべきなのか、mod_pythonの設定についてもう少し勉強すべきなのか迷い所ではあります.

 こんな調子で、本当にTracを動かす事が出来るのやら…不安です orz

2007年3月31日土曜日

Bug Tracking System「Trac」?

 知人の勧めで「Trac」と言うプロジェクト管理(?)システムを試してみようかと思い立った私ことlightmaterial.
 何でもバージョン管理にはSubversionを使い、Trac自身もApache上で動作するWebシステム(Wiki)との事.
 そのまま簡単にインストール出来る物でも無さそうだ、と思い、日本語での解説サイトを探しました.

 discypus.jp

 なんか知りませんが、レベルの高い方が運営されているサイト(Wiki)の様です.
 さらりと概要を一読すると、Tracを動作させるには次のソフトウェアが必要な模様.

 ・Python
 ・Apache(Trac付属のWebサーバを使う場合は不要らしい)
 ・mod_python
 ・SQLite
 ・Subversion
 ・ClearSilver(TemplateEngineらしい)

 正直この段階でくじけそうです orz
 ここまで色々とインストールしないといけないのか?!と.
 そんな事を純粋に思ってしまいますが、それがLinuxのLinuxたる所以.
 Linuxは依存依存また依存で成り立っていますので、仕方ないと言えば仕方ない…のか?

 取り敢えずせっかくTracを教えてもらったし、ApacheもSubversionも入れてあるので、使う使わないは別にして、インストールだけでもしてみようかと思います(現時点でまだインストールしてませんよw).

 と思っていた所で、使用しているFC6に何故か既にSQLite(当然rpm版)がインストールされている事に気付きました.
 何で??
 確かにPythonをインストールした事は記憶してますが…SQLiteをインストールした記憶は無いんだけどなぁ…依存周りで勝手にインストールされたのかなぁ??
 既にSQLiteが何らかのソフトウェアで利用されているとも限らないので、そのままTracインストールに行こうかな…それとも依存関係を調べて必要なければアンインストール→ソースからインストールしてみるかな…

 レベルが天と地ほどまったく違いますが、マイクロソフトの古賀正章と言う人が「20代の頃はLinux大好きだったけど30過ぎてから疲れ始めて、それまで大っ嫌いだったMicrosoftに宗派を変えた」[窓の杜記事抜粋]と言っている気持ちが分からなくもない今日この頃.
 まぁ、レベルが天と地、月とすっぽん、玄人と素人なので、本当の意味での「疲れ」が意味する所を知るのは、まだまだ先の事でしょうけど orz