Subversion + Trac インストール

会社で使っているSubversionがとても便利なのと、いちいち変更したファイルを同期するのが面倒なので、導入することに。

Subversionのインストール

$ yum -y install mod_dav_svn

レポジトリを'/var/www/svn'としました。
プロジェクト名は'test'です。

$ mkdir -p /var/www/svn
$ svnadmin create /var/www/svn/test

トランク、タグ、ブランチ用のディレクトリを作成。

$ svn mkdir file:///var/www/svn/test/trunk file:///var/www/svn/test/tags file:///var/www/svn/test/branches -m "init repository layout (trunk,tags,branches)"

apacheからファイルの書き込みができるようにパーミッションを変更。

$ chown -R apache.apache /var/www/svn/test

Basic認証の設定ファイルを作成

$ htpasswd -c /var/www/.htpasswd ユーザ名

apacheの設定変更。/etc/httpd/conf.d 以下に subversion.conf が出来ているので、編集する。

$ vim /etc/httpd/conf.d/subversion.conf

<Location /svn>                                                                                                                                                                                                                   
   DAV svn                                                                                                                                                                                                                        
   SVNParentPath /var/www/svn                                                                                                                                                                                                     
                                                                                                                                                                                                                                  
   # Limit write permission to list of valid users.                                                                                                                                                                               
   <LimitExcept GET PROPFIND OPTIONS REPORT>                                                                                                                                                                                      
      # Require SSL connection for password protection.                                                                                                                                                                           
      # SSLRequireSSL                                                                                                                                                                                                             
                                                                                                                                                                                                                                  
      AuthType Basic                                                                                                                                                                                                              
      AuthName "Authorization Realm"                                                                                                                                                                                              
      AuthUserFile /var/www/.htpasswd                                                                                                                                                                                             
      Require valid-user                                                                                                                                                                                                          
   </LimitExcept>                                                                                                                                                                                                                 
</Location>                

Tracのインストール
yumで簡単に入れたいところだが、CentOSの標準レポジトリにTracは含まれていないので、依存ライブラリをDAGからインストールするために、サードパーティーのレポジトリであるDAGレポジトリ(rpmforge)というものをインストールする。

$ wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
$ rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

DAGレポジトリは標準でOFFなので、ONにする。DAGレポジトリの設定ファイルを編集する。enabled = 0 にする。

$ vim /etc/yum.repos.d/rpmforge.repo

・・・
enabled = 0
・・・

そしてTracが依存しているライブラリをDAGからインストール

yum --enablerepo=rpmforge install -y python-clearsilver

ついでにmod_pythonも必要なので入れる。

yum install -y mod_python

日本語版をダウンロードして、解凍してインストール。

$ wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.6.ja1.zip                                                                                                                                                        
$ unzip Trac-0.11.6.ja1.zip                                                                                                                                                                                                         
$ cd Trac-0.11.6.ja1
$ python setup.py install

このように出力された↓ん??

Traceback (most recent call last):
  File "setup.py", line 15, in ?
    from setuptools import setup, find_packages
ImportError: No module named setuptools

どうやら、pythonのパッケージをもっていないらしいのでyumする

$ yum install -y python-setuptools

でもう一度、インストール

$ python setup.py install

成功した。

Tracディレクトリを作成

$ mkdir /var/www/trac

Tracプロジェクトの作成。こちらもsubversionのプロジェクト名と同じ'test'とする。

$ trac-admin /var/www/trac/test initenv

またもエラーらしき出力をされた。↓

Traceback (most recent call last):
  File "/usr/bin/trac-admin", line 5, in ?
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 2479, in ?
    working_set.require(__requires__)
  File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 585, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 483, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: Genshi>=0.5

Googleさんに聞いて、解決。またpythonの何かが足りないらしいので、yum

$ yum install -y python-genshi

そして、再度、Tracプロジェクトの作成。

$ trac-admin /var/www/trac/test initenv

大丈夫みたい。いろいろ聞かれる↓以下のように答えた。2,3質問はそのままEnter!した。

Project Name [My Project]> test
Database connection string [sqlite:db/trac.db]> 
Repository type [svn]> 
Path to repository [/path/to/repos]> /var/www/svn/test 

で、完了したので。Apacheで動作するように設定。

$ chown -R apache:apache test

/etc/httpd/conf.d/trac.confファイルを以下のように作成

$ vim /etc/httpd/conf.d/trac.conf

<Location /trac>                                                                                                                                                                                                                  
   SetHandler mod_python                                                                                                                                                                                                          
   PythonDebug On                                                                                                                                                                                                                 
   PythonHandler trac.web.modpython_frontend                                                                                                                                                                                      
   PythonOption TracEnvParentDir /var/www/trac                                                                                                                                                                                    
   PythonOption TracUriRoot /trac                                                                                                                                                                                                 
</Location>                                                                                                                                                                                                                       
                                                                                                                                                                                                                                  
<LocationMatch "/trac/.*/login">                                                                                                                                                                                                  
   AuthType Basic                                                                                                                                                                                                                 
   AuthName "trac"                                                                                                                                                                                                                
   AuthUserFile "/var/www/.htpasswd"                                                                                                                                                                                              
   Require valid-user                                                                                                                                                                                                             
</LocationMatch>               

で再読み込みして、設定を反映させる。

$ /etc/rc.d/init.d/httpd reload

http://サーバのアドレス/trac/testにアクセスして確認。


Tracのheaderの設定
デフォルトだと画面の左上の画像が指定されていないので、/var/www/trac/test/conf/trac.iniを指定した。事前にtracの画像を/var/www/icons/trac/trac_logo.pngに保存しておいた。

$ vim /var/www/trac/test/conf/trac.ini

・・・・・
[header_logo]
alt = trac_logo
height = 61
link = ../
src = /icons/trac/trac_logo.png
width = 214
・・・・・

これで終了。↓


参考