ページ更新: 2006-10-19 (木) (4412日前)

(2006-01-18 新規作成)

TracをSolaris 10/x86上で動作させたときの環境構築メモ。

ただし、2006年の後半にこの環境を使用しなくなったため、このページは今後は更新しない。 (OSをDebian GNU/Linux Sarge上に移行したため)

目次

[編集]

そのうち消すつもりのメモ #

[編集]

2006-01-18 #

着手。環境は VMware 4.5.3上のSolaris 10/x86 01/06)

Solarisはまともに触ったことがないので、辛い…。

参考ページ

TracOnSolaris - The Trac Project - Trac
http://trac.edgewall.org/wiki/TracOnSolaris

ClearSilver - Message- Building ClearSilver on solaris 10- problems and solutions
http://groups.yahoo.com/group/ClearSilver/message/512

  • rules.mk を修正。

Building Trac on Solaris Systems Admin .info
http://systemsadmin.info/solaris/articles/building-trac-on-solaris

Solaris Forums - Building Trac on Solaris
http://forum.sun.com/thread.jspa?messageID=99717

ソフトウェア一覧

  • Python-2.3.5.tar.bz2
  • JapaneseCodecs-1.4.11.tar.gz
  • (clearsilver-0.9.14.tar.gz)
  • clearsilver-0.10.2.tar.gz
  • sqlite-3.2.8.tar.gz
  • (pysqlite-2.1.0.tar.gz)
  • pysqlite-2.0.5.tar.gz
  • (subversion-1.3.0.tar.bz2)
  • subversion-1.2.3.tar.bz2
  • swig-1.3.27.tar.gz
  • enscript-1.6.1.tar.gz
  • graphviz-2.6.tar.gz

Python2.3.5を-sharedで入れると失敗。

ClearSilverはなんとかコンパイルできたが、0.9.14, 0.10.2 のいずれも、tracdで実行するとエラーがでる。

Subversion のコンパイルは時間が掛かるなあ。

[編集]

2006-01-19 #

ClearSilver ML で「Solaris」を検索
http://groups.yahoo.com/group/ClearSilver/messagesearch?query=Solaris

「Solaris thread」を検索
http://groups.yahoo.com/group/ClearSilver/messagesearch?query=Solaris%20thread

$ gcc -v
Reading specs from /usr/local/lib/gcc/i386-pc-solaris2.10/3.4.5/specs
Configured with: ./configure  : (reconfigured) ./configure  : (reconfigured) ./configure
  : (reconfigured) ./configure  : (reconfigured) ./configure
Thread model: posix
gcc version 3.4.5

clearsilver-0.10.2

$ ./configure --prefix=/export/home/username --with-python=/export/home/username/bin/pyt
hon --disable-apache --disable-perl --disable-ruby --disable-java --disable-csharp

rules.mk を書き換え

$ diff ../rules.mk rules.mk
39c39
< DESTDIR = /export/home/username
---
> DESTDIR =
66c66
< PYTHON_SITE = /lib/python2.3/site-packages/
---
> PYTHON_SITE =
73c73
< INSTALL    = $(NEOTONIC_ROOT)/install-sh -c
---
> INSTALL    = /opt/sfw/bin/ginstall -c
91c91
< LDSHARED   = $(CC) -shared -fPic -mimpure-text
---
> LDSHARED   = $(CC) -shared $(PICFLG)
$ gmake
$ gmake install

で、

ブラウザでアクセスすると、エラー。

Oops...

Trac detected an internal error:

Traceback (innermost last):
  File "csparse.c", line 294, in unknown_function()
  File "neo_hdf.c", line 1966, in unknown_function()
SystemError: Stat of /export/home/username/trac/sandbox/templates/wiki.cs failed: [0] Error 0

Traceback (most recent call last):
  File "/export/home/username/lib/python2.3/site-packages/trac/web/standalone.py", line 303, in _do_trac_req
    dispatch_request(path_info, req, env)
  File "/export/home/username/lib/python2.3/site-packages/trac/web/main.py", line 139, in dispatch_request
    dispatcher.dispatch(req)
  File "/export/home/username/lib/python2.3/site-packages/trac/web/main.py", line 113, in dispatch
    req.display(template, content_type or 'text/html')
  File "/export/home/username/lib/python2.3/site-packages/trac/web/api.py", line 148, in display
    data = self.hdf.render(template)
  File "/export/home/username/lib/python2.3/site-packages/trac/web/clearsilver.py", line 276, in render
    template.parseFile(filename)
Error: Traceback (innermost last):
  File "csparse.c", line 294, in unknown_function()
  File "neo_hdf.c", line 1966, in unknown_function()
SystemError: Stat of /export/home/username/trac/sandbox/templates/wiki.cs failed: [0] Error 0

trac/web/standalone を次のように書き換えると、OK。うむむ。

$ cd /export/home/username/lib/python2.3/site-packages/trac/web

$ diff standalone.py.org standalone.py.single
192c192,193
< class TracHTTPServer(ThreadingMixIn, HTTPServer):
---
> #class TracHTTPServer(ThreadingMixIn, HTTPServer):
> class TracHTTPServer(HTTPServer):

htdigestは/usr/apache/bin/ にある

  • 2006-10-19
    Trac 0.9.5, 0.9.6, 0.10 でも同じエラーが出る。回避方法も同じくstandalone.pyの書き換え。
[編集]

0.9.2-ja 環境のアップグレード #

なんか警告が出てる

$ trac-admin sandbox upgrade
/export/home/username/lib/python2.3/site-packages/setuptools-0.6a6-py2.3.egg/pkg_resourc
es.py:1943: UserWarning: Module pysqlite2 was already imported from /export/home/usernam
e/lib/python2.3/site-packages/pysqlite2/__init__.pyc, but /export/home/username/lib/pyth
on2.3/site-packages/pysqlite-2.1.0-py2.3-solaris-2.10-i86pc.egg is being added to sys.pa
th
  warn(
Database is up to date, no upgrade necessary.
[編集]

2006-01-20 #

[編集]

GraphViz #

/usr/sfw/bin/ のは古くて、GraphvizPluginでは使えない。ってか自分で入れたものじゃないし、Solarisの流儀(事情)を知らないので、どうなってるか判らん。

Installing GraphViz on Solaris
http://www.ecs.soton.ac.uk/~pjt/ProB/Installation/ALL/SOLARIS/node15.html

[編集]

2006-02-03 #

起動スクリプト /etc/init.d/tracd の例。

Python,tracは/export/home/username/ に入れてあり、アカウント username の権限で起動。

#!/sbin/sh
#

LANG=C
export LANG

USER=username

PYTHON=/export/home/username/bin/python
TRACD=/export/home/username/bin/tracd
PORT=8000
OPTION='\
--auth sandbox,/export/home/username/trac/sandbox/htdigest,sandbox \
--e /export/home/username/trac > /dev/null 2>&1'

##

case "$1" in
'restart')
        $0 stop
        /usr/bin/sleep 1
        $0 start
        ;;

'start')
        /usr/bin/su - $USER -c "$PYTHON $TRACD --daemonize --port $PORT $OPTION"
        ;;

'stop')
        PS=`/usr/ucb/ps auxww | /usr/bin/grep tracd | /usr/bin/awk '/daemonize/{print $2}'`
        if [ "$PSx" != "x" ]; then
                /usr/bin/su - $USER -c "/usr/bin/kill $PS"
        fi
        ;;

*)
        echo "Usage: $0 { start | stop | restart }"
        exit 1
        ;;
esac

動作を確認した後、シンボリックリンク /etc/rc3.d/S99tracd と /etc/rc0.d/K01tracd も作成しておく。

TODO

  • シェルの$! (PID) を使って、start時にpidを記録、stopでpidを指定して終了させたい。