2007年4月28日土曜日

今週も無し.休みも無し.

 orz
 o..rz
 o....rz


 今週も仕事の関係上メモはパス.
 と言いますか、客先案件担当者+経理担当者による偽情報&偽データに惑わされた結果、仕様変更に追われ、2週連続休み無し.
 ゴールデンウィーク(私にとっては5月3~6日)すら怪しい情勢です orz

 あぁ~
 .Netなんて触ってないで、Javaの勉強がしたい!

2007年4月21日土曜日

今週は無し.

 今週はメモ更新無し.

 明日(日曜)も仕事だワッショイワッショイ!! > 意味不明

 … orz


 関係無いけど、HP製の新しい業務用PCが届いた.
 今まで別メーカーで揃えていたけど、とある理由によりHPに変更.
 んが、HPのPCにはリカバリCDもOSのCDも付いてない事に、モノが届いてから気づく.

 HP Backup and Recovery Manager

 と言うソフトで、別パーティションに保存されたリカバリイメージを別の場所なりCD/DVDなりに保存すると言う方法の様で.
 昔のIBMノートPCの様に、HDDだけに保存されていて別メディアにコピー出来ない(今はどうなのか知りませんが)って訳じゃないのでまだ良いですが、やっぱりOSのCDが付いてないと面倒と言うか不安と言うか…
 個人用にHPの

  HP Pavilion Desktop PC s3000 シリーズ
  HP Pavilion Desktop PC v7000 シリーズ

 あたりが欲しかったんですが、これじゃあ再検討が必要です.

2007年4月15日日曜日

Windows Update中にエラーで固まる.その後1.

 以前書いた投稿の経過.

 WindowsUpdateの自動更新をOFFにして凌いでいます.
 自動更新にせず、手動更新にすれば、たとえエラーが発生しても固まる事はありませんので.
 しかし、まだ原因は不明.
 遠隔操作の性質上、遠隔操作ソフトを外して経過を観察する訳にもいかず、応急処置のままズルズルです.

 最近事業所に行く機会もないですし…どうしたもんかなぁ.

svchostがCPUを食い散らかす.

 そう、書こうと思って忘れてました.
 週末しかblog管理してないのが悪い orz


 会社のXPマシンが、何故か先週から調子が悪くなりました.

 【現象】
  起動後、約10分ほどでCPU使用率100%の状態になり固まる

 なんじゃそりゃ orz

 10分経つと何もできなくなるので、原因を調べるのも一苦労ですw
 最初、Thunderbirdでメールを打っている最中、IMEで漢字変換した瞬間固まったので「あぁ、またIME2007の辞書壊れたか…」と思っていたのですが、どうも違うようで.
 その後再起動しても、何もしてないのに固まると言う恐ろしい状態に.

 3回ほどハード的にリセットをかけた後によくよく調べてみると、起動しているsvchostプロセスのひとつがCPU使用率をバカ食いしています.

 …う、ウィルス??
 と顔面蒼白になりながら(会社のPCですので)、プロセスの起動パスを調べると、正常なパスから起動されたsvchostである事を確認.
 ついでにsvchost自体が正常であるか(置換されてないか)確認した所、ハッシュも同一の正常ファイルである事が分かりました.

 …じゃあ何なんだよ orz

 この現象、自宅のPCでも、会社の他のPCでも起きていないので、どうやら特定環境で起こるらしい.
 そう言えば、固まるようになる前にWindowsUpdateかました記憶が……
 インストールされてる何かと、アップデートした内容の相性が悪いんだろうか??

 まぁ、あと数日で新しいPCが入るので、そのまま捨ておくと言うのもありですが、仕事が落ち着いたら、何由来のsvchostが固まってるのか調べてみようかと思うメモ.

/**
 * 2007-04-15 23:40 追記
 */
 今現状として、起動直後にsvchostプロセスを強制終了してますw
 ただ、このsvchostを落とすと、ComputerBrowserまで道連れに落としてしまいますので、起動する毎に

・固まるsvchostのCPU使用率が90%を越えて判断できる様になってから強制終了
・サービスを開いて「ComputerBrowser」を開始

 と言う、通常では有り得ない手順を踏んでいます orz


/**
 * 2007-05-04 23:40 追記
 */
 先日別のWindowsUpdateを適用したら、svchostが固まる現象がパタリ無くなりました.
 …要するに、100% WindowsUpdateが悪いと言う事ですね.
 会社の事業所でエラーが発生してる問題もWindowsUpdateが悪い訳ですし、Linuxのアップデートでも固まったりなんだり(今回のWindowsほど酷くは無い)しますから、OSのアップデートは固まる物だと思うのが、一番の解決策ですね!!
 …んな訳無い orz
 MacOSのアップデートを見習ってほしいモンです.
 アップデートの最後に、HDDの最適化までしてくれたりしますしねぇ.
 とにかく、今のところ面倒な手順が不要になった+新しいPCで快適な仕事環境です.

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

Debianがエラーでインストール出来ない.

/**
 * 2007-04-15 10:47 追記
 *
 * どうやら、私が何も知らないでやっていたのが悪かった様で.
 * 「APTの設定」で「手動で設定」を選び、
 * deb ftp://ftp.jp.debian.org/debian sarge main contrib non-free
 * とsarge(Debian3.1)を明示的に指定、その後推奨されるセキュリティ
 * アップデートを「キャンセル」する事でインストールを続行出来ました.
 */


 OS入れ替えた時の為にTracのインストールメモをまとめようと思い、古いPC(Pen3 550MHzですw)をひっぱり出してDebian GNU/Linuxをインストール中です.
 本当はUbuntuを入れてみたかったんですが、何しろCD-Rドライブが壊れてやがりますので諦めました orz

 以前も会社でインストールしましたので(すぐ削除しましたが)、特にとまどう事も無く……と行きたかったのですが問題にぶちあたりました.
 ベースシステムの設定・インストール(ネット経由)でエラーが発生します.
 途中でKernelイメージを置き換えると言う様なメッセージが表示され(強制)、置き換える前のイメージを削除するか否かの選択メッセージが.
 ここは残しても削除しても同じで、結局その直後に依存関係エラーで先に進めず.
 うーん…

 Debian 4.0がリリースされた(2007/04/08)関係でしょうか??
 手元にあるCDがVer3.1 r5用のネットインストールCDですので、サーバー上のファイルと整合性が取れなくなっているとか?

 どちらにしても、今日はDebianを触る気満々だったので、かなーりショックです orz

 取り敢えずTracをApache上で動作させる事も出来ましたので、Tracいじりつつ車の洗車でもするかなぁ

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 の改行コードを修正

ActiveDirectoryのポリシーを反映させる.

 備忘.

 先日、仕事でActiveDirectory環境(サーバーはWin2003Server)を触る機会があったのですが、ActiveDirectoryの管理ツールでポリシーを変更しても、クライアントではすぐには情報が反映されません.
 と言う事で

C:\> gpupdate

 このコマンドで強制的に適用してやって解決しました.

 ただ、このコマンドで情報が更新されるのはポリシー周りだけの様で、ユーザー名(IDでは無く表示名)やOutlookのアドレス帳には効果がありませんでした.
 この辺の情報は30分くらい間あけてログオフ→ログオンすれば適用されましたが、強制的に適用させるコマンドが無いか調べてみる予定.
// 2007-12-25 追記. 「Force」オプション付けて再起動したらすぐに適用されるのかもしれません(未確認).

 それにしても、ディレクトリサービスってやっぱり便利.
 今度OpenLDAPサーバー(slapd)でも突っ込んで遊んでみようかと妄想中.

動かないAdobeReader for Linux(on FC6).

 先ほど仕事の関係上、某PDFマニュアルをダウンロードして確認していました.
 …何が悲しくて、休みの日に仕事用のファイルを確認してるんだか orz

 と言う話は置いておき、Fedora Core6(と言うかGnomeかな?)にはEvinceと言うPostScript/PDFビューアがあるので、それを使って閲覧していましたが、動作が軽い代わりに膨大なページ数のPDFを閲覧するには向いてない様なので、本家AdobeReaderをダウンロードする事に.

 Adobe Reader
 ※OS自動認識ページなので、Windowsで開いたらWindows用のダウンロードページになります

 ご丁寧にrpm版まで用意されています.
 さっさと仕事の用事を済ませたかったので、迷わずrpm版をダウンロードしてインストール.

[??@fedora]# rpm -ihv AdobeReader_jpn-7.0.9-1.i386.rpm

 ここまでは依存で引っかかる事も無く、何の問題も無し.
 そして早速インストールしたAdobeReaderでPDFを表示…ん?…ひょう…起動しないし orz
 まったくうんともすんとも言いません.
 それどころか、ずーっとCPU使用率100%の状態ですw
 なんじゃそりゃ?と思いつつ、偶然固まったのかとプロセスをkillして再度Reader起動…はい、だめ〜 orz

 うーん、何だろう?
 GUI上から起動してるので、何らかのエラーが出てても気付かないだけかも、と思い、コンソールから起動してみると

[??@fedora]# /usr/bin/acroread
expr: syntax error
expr: syntax error
expr: syntax error
…[延々と続くエラー]…

 なんじゃそりゃw
 どっかおかしい様です.
 が、どこでエラー出てるのかすら表示してくれてませんし、acroread(スクリプトファイル)を開いてみても、膨大な記述量なので、自力で原因を突き止めるのは不可能.

 仕方ないので100%他力本願で調べてみると↓こんなページを発見.

 http://ubuntuforums.org/archive/index.php/t-221769.html
 ※Ubuntu Linuxのフォーラム

 そこにこんな記述がありました.


[上記フォーラムより抜粋]
Change line 421 in /usr/bin/acroread:
# ↑日本語版7.0.9の場合597行目
old:

echo $mfile| sed 's/libgtk-x11-\([0-9]*\).0.so.0.\([0-9]\)00.\([0-9]*\)\|\(.*\)/\1\2\3/g'

new:

echo $mfile| sed 's/libgtk-x11-\([0-9]*\).0.so.0.\([0-9]\)000.\([0-9]*\)\|\(.*\)/\1\2\3/g'

 GTK周りのファイル命名規則と正規表現に相違があるらしい.
 書いてある通りファイルを編集し、再度AdobeReaderを起動してみると

 まるで何事もなかったかのように無事起動!

 ただ、Ver7.0.9のrpmでインストールしたはずなのに、何故かバージョンが7.0.8と表記されているのは疑問ですがw

Bloggerのコメント設定

 どうやらBloggerの設定で、コメントの公開方法を変にしていたらしい.
 Bloggerではコメントの設定画面で「コメントの管理を有効にしますか?」と言う項目があるのですが、lightmaterialは何も考えず「はい」を選択していました.
 んが、どうやらここを「はい」にしていると、blog管理者が管理画面で「コメントの許可」をしないとコメントが表示されないらしい orz

 なんだかなぁ…まぁ、「管理」と言う言葉の意味を深く考えなかった私が悪いと言う事ですね、はい.

動いた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

問答無用で固まるPC(FC6).

 どうやら、昨日誤ってKernelも自動アップデートしてしまったらしい.
 それが原因なのか、はたまた偶然のタイミングなのか、今朝からFC6と言うかPCが何度も固まってます.

 バチコーンと何の前触れもなく、綺麗に固まります.
 まるで、そこだけ時が止まってしまったかのように…

 一切の行動も信号も受付やしませんので、先ほどから3回ほど強制リセットをかける始末 orz

 おかしいと思ってGrubでブートするKernelを見てみたら、見慣れないKernelバージョンがリストアップされていました…ああ、そう言えば昨日のパッケージアップデータ…やけに時間かかってたよなぁ…OpenOfficeのせいかと思ってたらKernelまでバージョンアップしちゃったかなぁ…酒飲んでバージョンアップなんてするもんじゃ無いなぁ… orz

 まぁ、まだこれが原因とは限りませんが、今のところ最有力候補.
 ただこのPC、もともと怪しいハードで組んであって、そこが原因かも知れない(とは言え、CentOSの時も含めて、固まった事なんて無かった様な気がします…)ので、しばらくはKernelを戻して様子を見る事に.

/**
* 2007-04-08 22:09 追記.
*/
 一応書いておいた方がいいかな…
 デフォルトで起動するKernelを変更するには

 /boot/grub/menu.lst
 か
 /boot/grub/grub.conf
 を編集します.
 ※grub.confがある場合は、大抵menu.lstはgrub.confのシンボリックリンクになっているはずです

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/hda
default=0
# ↑ここの数字を以下のリストの順番に沿って、希望の番号に変える

timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu

# ↓このファイル例で言えばここが「default=0」
title Fedora Core (2.6.20-1.2933.fc6xen)
root (hd0,0)
kernel /xen.gz-2.6.20-1.2933.fc6
module /vmlinuz-2.6.20-1.2933.fc6xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.20-1.2933.fc6xen.img

# ↓このファイル例で言えば、ここが「default=1」
title Fedora Core (2.6.19-1.2911.6.5.fc6xen)
root (hd0,0)
kernel /xen.gz-2.6.19-1.2911.6.5.fc6
module /vmlinuz-2.6.19-1.2911.6.5.fc6xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.19-1.2911.6.5.fc6xen.img

 ※あくまでも上記記述内容は例です. 環境によってまったく内容が異なりますが、基本的に上から「default=」0〜と言う順番になります

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