※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Python2.5をインストール

# cd /usr/ports 
# make search name=python
鬼のように候補が出て来るがpython25ってやつがそうらしい。
# su
# cd /usr/ports/lang/python25
# make install clean
/usr/local/binにpython2.5と言うファイルが出来ているが、pythonと言うのがないのでシンボリックリンクを作成する。
# cd /usr/local/bin
# ln -s ./python2.5 python
これでインストールは完了。

Subversionをインストール

# cd /usr/ports
# make search name=subversion
Port:   subversion-1.4.3_2
Path:   /usr/ports/devel/subversion
Info:   Version control system
 ...
幾つか出てくるが上記のやつがそうらしい。
# su
# cd /usr/ports/devel/subversion
# make install clean
# svn --version
svn, version 1.4.4 (r25188)
   compiled Oct 22 2007, 02:25:44

Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
OK。

neonをインストール

# cd /usr/ports
# make search name=neon
Port:   neon-0.26.3
Path:   /usr/ports/www/neon
Info:   An HTTP and WebDAV client library for Unix systems
...
# cd /usr/ports/www/neon
# make install clean
どうやら既にインストールされているらしくエラーになる。 構わず先に進んでみよう。

swigのインストール

# cd /usr/ports
# make search name=swit
Port:   swig-1.3.31_1
Path:   /usr/ports/devel/swig13
Info:   Simplified Wrapper and Interface Generator
# cd /usr/ports/devel/swig13
# make install clean
OK。無事インストールされた模様。

sqliteのインストール

# cd /usr/ports
# make search name=sqlite
鬼のように候補が出て来るが、/usr/ports/databases/sqlite3がそれっぽい。
# cd /usr/ports/databases/sqlite3
# make install clean
OK。無事インストールが完了した模様。

pysqliteのインストール

# cd /usr/ports
# make search name=pysqlite
Port:   py24-pysqlite-2.3.3
Path:   /usr/ports/databases/py-pysqlite23
Info:   A DB-API v2 Python library for the SQLite 3 embedded SQL engine
Maint:  mnag@FreeBSD.org
B-deps: pkg-config-0.22 python24-2.4.4 sqlite3-3.3.17
R-deps: pkg-config-0.22 python24-2.4.4 sqlite3-3.3.17
WWW:    http://pysqlite.org
と言うのがそれっぽいが、python24用らしいのが気になる。でもpython25用のものが無くこれが最新っぽいので、これをインストールしてみることにする。っと思ったけど/usr/ports/databases/py-sqlite3と言うディレクトリがあったのでこれをインストールしてみる。
# cd /usr/ports/databases/py-sqlite3
# make install clean
OK。無事インストール出来た模様。(ホントかな?)

clearsilverのインストール

# cd /usr/ports
# make search name=clearsilver
Port:   clearsilver-0.10.4
Path:   /usr/ports/www/clearsilver
Info:   A fast, powerful, and language-neutral template system
Maint:  clsung@FreeBSD.org
B-deps: gettext-0.16.1_3 gmake-3.81_2 libiconv-1.9.2_2
R-deps: 
WWW:    http://www.clearsilver.net/

Port:   clearsilver-python-0.10.4
Path:   /usr/ports/www/clearsilver-python
Info:   A fast, powerful, and language-neutral template system
Maint:  clsung@FreeBSD.org
B-deps: gettext-0.16.1_3 gmake-3.81_2 libiconv-1.9.2_2 python24-2.4.4
R-deps: python24-2.4.4
WWW:    http://www.clearsilver.net/
上記2つで悩むが、Pythonなのでclearsilver-python-0.10.4をインストールしてみる。
# cd /usr/ports/www/clearsilver-python
# make install clean
   * Makefileの中身を見てみたらclearsilverのMakefileを呼んでいるだけみたい。
OK。無事インストール出来た模様。

Tracのインストール

日本語用のやつがあるとhttp://d.hatena.ne.jp/akiyan/20060822/p1に書いてあったのでそれをインストールしてみる。
# cd /usr/local/japanese/trac
  * 最初のPostgleSQLを使うかどうか聞かれるのでチェックしておく。
・・・
===>   Compressing manual pages for ja-trac-0.10.3_2
===>   Registering installation for ja-trac-0.10.3_2
===>  Cleaning for unzip-5.52_3
===>   Cleaning for silvercity-0.9.7
===>  Cleaning for py25-docutils-0.4
===>   Cleaning for py25-pysqlite-2.0.7_1
===>  Cleaning for subversion- python-1.4.4
===>  Cleaning for neon-0.26.4
===>  Cleaning for ja-trac-0.10.3_2
こんな感じでインストールされた。

subversionのリポジトリ作成

まずはsubversion用のアカウント作成
# pw groupadd -n svn -g 90
# pw useradd -n svn -u 90 -g svn -d /nonexistent -s /nonexistent
rc.confの編集
# echo svnserve_enable="YES" >> /etc/rc.conf
リポジトリの作成
# mkdir /var/svn
# cd /var/svn
# svnadmin create --fs-type=fsfs tractest
# chown -R svn:svn tractest
svnserveの起動確認
# svnserve -d -r /var/svn --listen-host 0.0.0.0
------- # /usr/local/etc/rc.d/svnserve start これが旨く行かない。後で調査
Mac側から操作してみる
$ cd
$ mkdir tmp/tractest
$ cd tractest
$ mkdir trunk tags blanches
$ cd ..
$ svn import tractest svn://h2-factory.com/tractest -m "Import first."
$ rm -r tractest
$ svn co svn://h2-factory.com/tractest tractest
$ cd tractest/trunk
$ touch hoge.txt
$ svn add hoge.txt
$ sudo svn ci
$ svn up
OK。ちょっと課題はあるがSubversionは一旦完了。

Tracの起動

$ mkdir /var/trac
$ sudo trac-admin /var/trac/test initenv
http://tach.arege.net/trac/wiki/TracEnvironmentを参考にして対話モードで設定する。
$ /usr/local/bin/tracd --port 8000 /var/trac/testtest &
Traceback (most recent call last):
 File "/usr/local/bin/tracd", line 19, in <module>
   from trac.web.standalone import main
 File "/usr/local/lib/python2.5/site-packages/trac/web/standalone.py", line 27, in   <module>
   from trac.util import autoreload, daemon
 File "/usr/local/lib/python2.5/site-packages/trac/util/autoreload.py", line 17, in  <module>
   import thread
ImportError: No module named thread
エラーになる。
http://www.machu.jp/diary/20060527.html#p01を参考に/usr/local/lib/python2.5/site-packages/trac/autoreload.pyを書き換えてみる。
#import
thread
try:
   import thread
except ImportError:
   import dummy_thread as thread
再度起動。無事起動できた模様。
色々試したがPythonがthread対応になっていないみたい。 portからインストールする際に、Makefileのオプション部分を書き換えたらちゃんと動作するようになった。
.endif # defined(WITHOUT_HUGE_STACK_SIZE)
CONFIGURE_ENV+=         LDFLAGS="${PTHREAD_LIBS} ${LDFLAGS}"
.else
CONFIGURE_ARGS+=        --with-threads  <- この部分(--without-threadsをこのように変更)

Tracをlighttpdで動かしてみる

http://tach.arege.net/trac/wiki/TracFastCgi
http://blog.mizzy.org/articles/2006/05/17/trac_and_lighty
http://d.hatena.ne.jp/sun-basix/20071014/1192384449
http://www.machu.jp/diary/20050924.html辺りを参考にlighttpdでtracを動かしてみる。
まず、/usr/local/lib/lighttpdにmod_fastcgi.soが存在することを確認。
次に/usr/local/etc/lighttpd.confを編集する
 server.modules = (
              "mod_fastcgi",
                               )
#server.bind                = "localhost"
server.username        = "svn"
server.groupname      = "svn"
fastcgi.server = ("/public" =>
                  ("public" =>
                    ("socket" => "/tmp/trac-fastcgi.sock",
                     "bin-path" => "/usr/local/share/trac/cgi-bin/trac.fcgi",
                     "check-local" => "disable",
                     "bin-environment" =>
                       ("TRAC_ENV" => "/home/miya/trac/public")
                    )
                  )
                )
lighttpdを起動してブラウザで見てみるとこんなエラー画面が表示される。
 500 Internal Server Error (The user hiro requires read _and_ write permission to the database file /var/trac/tractest/db/trac.db and the directory it is located in.)