:::: MENU ::::

trac・subversion導入奮闘記 その2

subversionのアンインストール

PythonからSubversionまで

Pythonのインストール

  1. Pythonのバージョンを確認する。
    # python -V
    Python 2.3.4

    Trac0.11のインストールにはPython2.5系が色々と都合がよいらしい(PySQLite2や、xmlRpcプラグインなど)のでPython2.5を入れる。
    但し、Python2.3系はOSが依存しているので、並行して使えるようにする。


  2. Python2.5の入手(ソースからコンパイル)
    # wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
    # tar zxvf Python-2.5.2.tgz
    # cd Python-2.5.2
  3. configure(/usr/local/python252にインストールするように設定する)

    ※WARNINGが出たけど、とりあえず流しても大丈夫かなと判断(TODO WARNINGの添付)。 

    # cd Python-2.5.2
    # ./configure --prefix=/usr/local/Python252
    # make
    # make install
  4. デフォルトでPython2.5になるようにパスを通す
    # ln -s /usr/local/Python252/bin/python /usr/local/bin/python
  5. Terminalを新規に立ち上げて確認。
    # python -V
    Python 2.5.2
  6. PYTHONPATHを設定していないので設定する。

    .bash_profileに 

    export PYTHONPATH=/usr/local/Python252/lib/python2.5/site-packages
    設定後は、
    source ~/.bashrc
    なりrebootなりする。
参考URL:PYTHONPATHの挙動を正確に把握する - ぎじゅっやさん 設定していないと、最初から入っているPython2.4.3で処理してしてしまう。 ちなみにこんなエラーが出る。
[Thu Oct 23 08:59:48 2008] [error] [client 172.19.190.236] PythonHandler trac.web.modpython_frontend: Traceback (most recent call last):
[Thu Oct 23 08:59:48 2008] [error] [client 172.19.190.236] PythonHandler trac.web.modpython_frontend:   File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 287, in HandlerDispatchn    log=debug)
[Thu Oct 23 08:59:48 2008] [error] [client 172.19.190.236] PythonHandler trac.web.modpython_frontend:   File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 461, in import_modulen    f, p, d = imp.find_module(parts[i], path)
[Thu Oct 23 08:59:48 2008] [error] [client 172.19.190.236] PythonHandler trac.web.modpython_frontend: ImportError: No module named trac

setuptoolsのインストール

参考URL:[Python] setuptools - SumiTomohikoの日記

# wget http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py
# ln -s /usr/local/Python252/bin/easy_install /usr/local/bin/easy_install
# /usr/local/Python252/bin/easy_install --help

mod_pythonのインストール

modPythonはApache越しにPythonを使う際に必要なモジュールだとか。
詳細は公式リファレンスを参照のこと。

  1. modPythonの入手
    # wget http://ftp.kddilabs.jp/infosystems/apache/httpd/modpython/mod_python-3.3.1.tgz
  2. 解凍してChangeDirectory
    # tar zxvf mod_python-3.3.1.tgz
    # cd mod_python-3.3.1
    # ./configure
    # make
    # make install

mod_pythonのインストールの注意点

./configureでflexのバージョンによるエラーが発生するが、
無視してやってくと最終的にこんなエラーが出る

[Thu Oct 23 10:04:44 2008] [error] make_obcallback: could not import mod_python.apache.n
Traceback (most recent call last):
File "/usr/local/Python252/lib/python2.5/site-packages/mod_python/apache.py", line 949, in ?
stat = _apache.stat
AttributeError: 'module' object has no attribute 'stat'
[Thu Oct 23 10:04:44 2008] [error] python_handler: no interpreter callback found.
[Thu Oct 23 10:04:44 2008] [error] [client 172.19.190.236] python_handler: Can't get/create interpreter.

なので、» mod_pythonがインストールできない場合の対処 | OpenMediaLaboratoryによると、mod_pythonでは2.5.3xを推奨しており、2.5.4以降のバージョンではWarningが発生し、なおかつインストールされないらしい。

セットアップ方法は、subversion + trac インストール - yzero.org

  • mod_python が 進めるflexをインストール
# wget http://nchc.dl.sourceforge.net/sourceforge/flex/flex-2.5.35.tar.gz
# tar xvzf flex-2.5.35.tar.gz
# cd flex-2.5.35
# ./configure --prefix=/usr/local/flex_2_5_35 && make && make install
  • mod_pythonのインストール
# wget http://ftp.kddilabs.jp/infosystems/apache/httpd/modpython/mod_python-3.3.1.tgz
# tar zxvf mod_python-3.3.1.tgz
# cd mod_python-3.3.1
# ./configure --with-apxs=/usr/local/apache/bin/apxs
--with-flex=/usr/local/flex_2_5_31/bin/flex
# make && make install
  • /usr/local/apache/bin/apxsが見つからなくて、外したときに出るエラー
configure: WARNING: **** apxs was not found, DSO compilation will not be available.
configure: WARNING: **** You can use --with-apxs to specify where your apxs is.
configure: error: Neither static nor DSO option available, there is no point in continuing.

Subversionのインストール

RPMでver1.51が公開されていたのでそれを使う。
subversionに必要なrpmをダウンロード

# wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/rhel-4/i386/neon-0.27.2-1.i386.rpm
# wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/rhel-4/i386/neon-devel-0.27.2-1.i386.rpm
# rpm -ivh neon-0.27.2-1.i386.rpm neon-devel-0.27.2-1.i386.rpm
# wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/rhel-4/i386/subversion-1.5.1-1.i386.rpm
# rpm -ivh subversion-1.5.1-1.i386.rpm

Swigのインストール

TracとSubversionのやり取りに使われるらしい。

  1. ダウンロード
    # wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/rhel-4/i386/swig-1.3.25-1.i386.rpm
  2. 既に古いのが入っていたのでupdateする。
    # wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/rhel-4/i386/swig-1.3.25-1.i386.rpm
    # rpm -Uvh --test swig-1.3.25-1.i386.rpm
    Preparing...                ########################################### [100%]
  3. アップデート
    # wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/rhel-4/i386/swig-1.3.25-1.i386.rpm
    # rpm -Uvh swig-1.3.25-1.i386.rpm
    Preparing...                ########################################### [100%]
    1:swig                   ########################################### [100%]

Swigバインディングのインストール

Subversionのソースをダウンロード
rpmとバージョンが違うけどまぁ大丈夫かなぁと思ってやってみる。

# wget http://subversion.tigris.org/downloads/subversion-1.5.2.tar.gz
# tar zxvf subversion-1.5.2.tar.gz
# cd subversion-1.5.2
# ./configure
# make swig-py
# make install-swig-py

mod_dav_svnのインストール

Apache越しにSubversionを使用するのに必要らしい。

  1. 公式ページからrpmを取得
    # wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/rhel-4/i386/mod_dav_svn-1.5.1-1.i386.rpm
  2. インストール
    # rpm -ivh mod_dav_svn-1.5.1-1.i386.rpm
    Preparing...                ########################################### [100%]
    1:mod_dav_svn            ########################################### [100%]

    ついでにApache側の設定も行う。


  3. Subversion関連のモジュールをロードする。
    # vi /etc/httpd/conf.d/subversion.conf
    LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module   modules/mod_authz_svn.so
  4. Aapache再起動
    # /etc/init.d/httpd restart
    
 

Subversionの動作確認

リポジトリ作成
 # svnadmin create /var/data/svn/hoge
# chown -R apache.apache /var/data/svn/hoge
# vi /etc/httpd/conf.d/subversion.conf
<Location /svn/hoge>
DAV svn
SVNPath /var/data/svn/hoge
<Location>
# /etc/init.d/httpd restart
# svn mkdir http://localhost/svn/hoge/trunk -m "trunk"
# svn mkdir http://localhost/svn/hoge/tags -m "tags"
# svn mkdir http://localhost/svn/hoge/branches -m "branches"

pythonに自力でパスを張る

 # locate svn-python
/usr/local/lib/svn-python
# vi /usr/local/Python252/lib/python2.5/site-packages/subversion.pth
/usr/local/lib/svn-python
# python >>> import svn
  • スタンドアロンモードで起動してアクセス

    svn/testのファイル権限がapacheだとコミットできない、hogeかrootにすること。
    apache認証をしていないので、apache経由でのアクセスでないためだと思われる。