Trac0.12にblockdiagをインストール(Centos5系)

#odstudyに参加してからずっと気になっていたblockdiagをインストールしました。
やっぱり、ドキュメントを蓄積するシステムと組み合わせたほうが真価が発揮されると思ったので、Tracです。
mediawikiもあるんですが、今は比較的スタティックな構築情報をwikiにして、作業途中のメモなどはTracという位置づけです。
Rapidな図はやはり、Rapidな情報記録を主目的に設置したシステムへと思いまして。

Tracとの連携

参考にしたのはこのサイト。

Tracのwikiに図面を入れる(BlockDiag編)

インストールが簡単に紹介されていて、サンプルもあるのでさくっと試せます。
Tracのpluginは下記のようにして入れました。

■ダウンロード、解凍

# cd /usr/local/src
# wget -O tracblockdiagplugin.zip '<a href="http://trac-hacks.org/changeset/latest/tracblockdiagplugin?old_path=/&amp;filename=tracblockdiagplugin&amp;format=zip"> http://trac-hacks.org/changeset/latest/tracblockdiagplugin?old_path=/&amp;filename=tracblockdiagplugin&amp;format=zip</a>'
# unzip tracblockdiagplugin.zip

■移動

# cd /usr/local/src/tracblockdiagplugin/tracblockdiagplugin/0.12
# python ./setup.py install

0.11と0.12とcurrentとかでディレクトリが分かれているので、現在使用しているTracのバージョンである0.12のディレクトリに移動して、インストール。

■Apache再起動

# /etc/init.d/httpd restart

■管理画面で有効に。
Trac management plugin

追記(2011/12/28)

blockdiag作者の@tk0miyaさんがインストール方法書いてるじゃないすか。

(18日目) blockdiag を Trac wiki で使ってみようAdd Star

Trac は Debian パッケージになっていますが、最新版の 0.12 が強くおすすめとのことなので、
easy_install でインストールすることにします。
TracBlockDiagPlugin も URL を指定することで easy_install 経由でインストールできます。

$ sudo easy_install trac
$ sudo easy_install http://trac-hacks.org/svn/tracblockdiagplugin/0.12

Pluginはこっちのほうがインストールがスマートですね!勉強になるなぁ

日本語の問題

でも、日本語のLabelを張れないかな?と試したら、途端に画像が生成されなくなったので、他のサイトを探しました。

blockdiag でいろいろ書いてみる

デフォルトのフォントの位置が書いてあるので助かりました。

でも、CentOSのデフォルトってこんな感じなんですよねー。

[root@redalarm blockdiag]# ls -lha /usr/share/fonts/ja/TrueType/kochi-
kochi-gothic-subst.ttf  kochi-mincho-subst.ttf  
 
[root@redalarm blockdiag]# ls -lha /usr/share/fonts/japanese/TrueType/
fonts.alias          fonts.scale          sazanami-mincho.ttf
fonts.dir            sazanami-gothic.ttf

念のために、インストールされているプログラムがどんな定義か確認。

[root@redalarm blockdiag]# cd /usr/lib/python2.4/site-packages/blockdiag-1.1.0-py2.4.egg/blockdiag
[root@redalarm blockdiag]# fgrep -R fonts ./*
./command.py:    fonts = ['c:/windows/fonts/VL-Gothic-Regular.ttf',  # for Windows
    fonts = ['c:/windows/fonts/VL-Gothic-Regular.ttf',  # for Windows
             'c:/windows/fonts/msmincho.ttf',  # for Windows
             '/usr/share/fonts/truetype/ipafont/ipagp.ttf',  # for Debian
             '/usr/local/share/font-ipa/ipagp.otf',  # for FreeBSD
             '/Library/Fonts/Hiragino Sans GB W3.otf',  # for MacOS
             '/System/Library/Fonts/AppleGothic.ttf']  # for MacOS

なるほど。本当はTracの設定ファイルでfontを指定出来るらしいんだけれど、同じサーバにいくつもプロジェクトが走っていて、
それをすべて変更するのは面倒だったので、シンボリックリンクを張っちゃうことにしたり。(IPAフォントのインストールは割愛) 参考はここです。

日本語フォントのインストール

# mkdir -p /usr/share/fonts/truetype/ipafont/
# ln -s /usr/share/fonts/japanese/TrueType/ipagp.ttf /usr/share/fonts/truetype/ipafont/ipagp.ttf

でも、シンボリックリンクを張ると、日本語を使っていない単純な図でもエラーになってしまいました。
こんな時にはコマンドラインからエラーを見てみようと思って実行したら下記の通り。

[root@redalarm src]# blockdiag -f /usr/share/fonts/truetype/ipafont/ipagp.ttf /home/rebine/sample.diag
ERROR: The _imagingft C module is not installed

このエラーでググるとPILというPython-Imagingというライブラリがうまくいっていないときに出るものらしい。

[root@redalarm src]# easy_install pil
Searching for pil
Best match: PIL 1.1.7
Processing PIL-1.1.7-py2.4-linux-i686.egg
PIL 1.1.7 is already the active version in easy-install.pth
Installing pilconvert.py script to /usr/bin
Installing pilfile.py script to /usr/bin
Installing pilfont.py script to /usr/bin
Installing pildriver.py script to /usr/bin
Installing pilprint.py script to /usr/bin
 
Using /usr/lib/python2.4/site-packages/PIL-1.1.7-py2.4-linux-i686.egg
Processing dependencies for pil

でも、すでにインストール済みっていう形で返ってくるのでおかしいなと…

CentOS 5.5/5.6 の場合

公式に情報が載っていました。(自分、見るのが遅いなぁ…)Centosの付属PILは問題あるってことですね。
とはいえ、touchの意味を知らなかったので、PILをダウンロードしてインストールする方法を調べちゃいました。

Installing PIL (Python Image Library) on CentOS 4.7 

# cd /usr/local/src
# wget -O PIL-1.1.7.tar.gz 'http://effbot.org/media/downloads/PIL-1.1.7.tar.gz'
# tar xvzf PIL-1.1.7.tar.gz
# cd PIL-1.1.7

# python setup.py build_ext -i

--------------------------------------------------------------------
*** TKINTER support not available
*** JPEG support not available
--- ZLIB (PNG/ZIP) support available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------

インストール前に調べてみたら、FREETYPE2のところがnot available でした。日本語はTruetype fontだったので、これではまずいと
調べると、単純にRPM不足していたようで。

# yum install freetype freetype-devel

# python ./setup.py install

--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.4.3 (#1, Nov 11 2010, 13:34:43)
              [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)]
--------------------------------------------------------------------
*** TKINTER support not available
*** JPEG support not available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------
To check the build, run the selftest.py script.
running build_scripts
running install_lib
copying build/lib.linux-i686-2.4/_imagingft.so -&gt; /usr/lib/python2.4/site-packages/PIL
running install_scripts
changing mode of /usr/bin/pilconvert.py to 755
changing mode of /usr/bin/pilfile.py to 755
changing mode of /usr/bin/pilfont.py to 755
changing mode of /usr/bin/pildriver.py to 755
changing mode of /usr/bin/pilprint.py to 755
creating /usr/lib/python2.4/site-packages/PIL.pth

こんな感じでインストールしてうまく日本語のラベルを張ることに成功しました。