====== Subversion と Trac をインストール ====== Apache2 がインストールされ、正常に稼働していることが前提。 インストール時点でのバージョン。 * trac 0.11.7-1 * trac-ja-resource 0.11.5.ja1-1 * subversion 1.6.6dfsg-2ubuntu1.2 ===== パッケージのインストール ===== Subversion をインストール。 $ sudo apt-get install subversion libapache2-svn 今回は省いたが、 subversion-tool を入れておくと使うこともあるかも。 Apache2 のモジュール dav_svn を有効化。 $ sudo a2enmod dav_svn Trac をインストール。 $ sudo apt-get install trac trac-ja-resource libapache2-mod-python Apache2 のモジュール mod_python を有効化。 $ sudo a2enmod python ===== Subversion のリポジトリを作成 ===== リポジトリを格納するディレクトリを作成し、内部に Subversion のリポジトリを作成。 $ sudo mkdir /share/svn $ sudo svnadmin create /share/svn/YourProject 一般的には /var/svn/ とか /var/lib/svn/ に作る人が多い?\\ "YourProject" は任意のプロジェクト名に変更 オーナを変更し、 Apache2 から自由にアクセスできるようにする。 $ sudo chown -R www-data:www-data /share/svn/YourProject ===== Trac のプロジェクトを作成 ===== プロジェクトを格納するディレクトリを作成作成し、内部に Trac のプロジェクトを作成。 $ sudo mkdir /share/trac $ sudo trac-admin /share/trac/YourProject initenv 一般的には /var/trac/ とか /var/lib/trac/ に作る人が多い?\\ "YourProject" は任意のプロジェクト名に変更 $ sudo trac-admin /share/trac/YourProject initenv Creating a new Trac environment at /share/trac/YourProject Trac will first ask a few questions about your environment in order to initialize and prepare the project database. Please enter the name of your project. This name will be used in page titles and descriptions. Project Name [My Project]> プロジェクト名を入力。 Please specify the connection string for the database to use. By default, a local SQLite database is created in the environment directory. It is also possible to use an already existing PostgreSQL database (check the Trac documentation for the exact connection string syntax). Database connection string [sqlite:db/trac.db]> データベースへの接続文字列を入力。そのままエンターを押せばローカルの SQLite を使用する。今回は SQLite で。 Please specify the type of version control system, By default, it will be svn. If you don't want to use Trac with version control integration, choose the default here and don't specify a repository directory. in the next question. Repository type [svn]> バージョン管理システムのタイプを入力。今回は Subversion を使用するので、このままエンター。 Please specify the absolute path to the version control repository, or leave it blank to use Trac without a repository. You can also set the repository location later. Path to repository [/path/to/repos]> 先ほど作成した Subversion のリポジトリのパスを入力。 Creating and Initializing Project Installing default wiki pages : : Congratulations! ヘッダ部分を日本語化する。 trac.ini を編集。 $ sudo vi /share/trac/YourProject/conf/trac.ini [inherit] templates_dir = /usr/share/trac-ja-resource/trac/templates wiki を日本語化する。 $ sudo trac-admin /share/trac/YourProject/ wiki load /usr/share/trac-ja-resource/trac/wiki/default-pages/ オーナを変更し、 Apache2 から自由にアクセスできるようにする。 $ sudo chown -R www-data:www-data /share/trac/YourProject ===== Trac ユーザのアクセス権を設定 ===== 管理者権限を持ったユーザ admin を追加する。 admin 以外の名前でも良い $ sudo trac-admin /share/trac/YourProject permission add admin TRAC_ADMIN コマンドで権限設定するのはしんどいので、後で admin でログインした後に、ブラウザで設定を行う。 ユーザの権限を参照するコマンド。例えば、anonymous ユーザの権限を確認する場合。 $ sudo trac-admin /share/trac/YourProject permission list anonymous ===== Trac と Subversion の連携 ===== Trac と Subversion を連携するためのフックシェルを作成。 /share/trac/YourProject/conf/ にある trac.ini を編集して以下の空のディレクティブを追加。 どこに入れてもいい?とりあえず repository... の後に入れておいた。\\ repository_dir = ...\\ repository_type = ...\\ repository_sync_per_request =\\ repository_sync_per_request = /share/svn/YourProject/hooks/ 内に以下の内容のファイルを作成。ファイル名は post-commit にする。 #!/bin/sh export PYTHON_EGG_CACHE="/share/trac/.python-eggs" /usr/bin/trac-admin /share/trac/YourProject changeset added "$1" "$2" PYTHON_EGG_CACHE="/share/trac/.python-eggs" は .python-eggs という名前ならどこでもよいらしい オーナとパーミッションを変更。 $ sudo chown www-data:www-data /share/svn/YourProject/hooks/post-commit $ sudo chmod +x /share/svn/YourProject/hooks/post-commit PYTHON_EGG_CACHE で設定したディレクトリを作成し、オーナとパーミッションを変更。 $ sudo mkdir /share/trac/.python-eggs $ sudo chown www-data:www-data /share/trac/.python-eggs $ sudo chmod 755 /share/trac/.python-eggs もう1つフックを作成。 /share/svn/YourProject/hooks/ 内に以下の内容のファイルを作成。ファイル名は post-revprop-change にする。 #!/bin/sh export PYTHON_EGG_CACHE="/share/trac/.python-eggs" /usr/bin/trac-admin /var/lib/trac/YourProject changeset modified "$1" "$2" オーナとパーミッションを変更。 $ sudo chown www-data:www-data /share/svn/YourProject/hooks/post-revprop-change $ sudo chmod +x /share/svn/YourProject/hooks/post-revprop-change Subversion のコミット時に不可するコメントにチケット番号を含めることで、 Trac のチケットからコミット内容を確認できるようにする。trac.ini を編集。 $ sudo vi /share/trac/YourProject/conf/trac.ini 以下を追加 [components] tracopt.ticket.commit_updater.* = enabled Apache2 を再起動して完了。 コミットする時に refs #1 のような文字列を含めるとチケット履歴からコミット内容を確認できるようになる。 ===== Apache2 に設定を追加 ===== Apache2 の設定に Trac を追加する。 /etc/apache2/sites-available/default あたりに以下を追加。今回は認証に LDAP を使用。 SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /share/trac PythonOption TracUriRoot /dev/trac PythonPath "['/usr/share/trac-ja-resource'] + sys.path" SetEnv PYTHON_EGG_CACHE /share/trac/.python-eggs # LDAP auth SSLRequireSSL SSLOptions +StrictRequire AuthType Basic AuthBasicProvider ldap AuthName "Trac Authentication" AuthLDAPURL "ldap://127.0.0.1:389/ou=people,dc=example,dc=com?uid" AuthzLDAPAuthoritative off require valid-user Subversion の設定は以下を追加。 DAV svn SVNParentPath /share/svn SVNListParentPath on # LDAP auth SSLRequireSSL SSLOptions +StrictRequire AuthType Basic AuthBasicProvider ldap AuthName "Trac Authentication" AuthLDAPURL "ldap://127.0.0.1:389/ou=people,dc=example,dc=com?uid" AuthzLDAPAuthoritative off require valid-user Apache2 の設定ファイルをリロード。 $ sudo /etc/init.d/apache2 reload * https://hostname/dev/svn * Subversion にアクセス * https://hostname/dev/trac * Trac にアクセス ===== Trac プラグインのインストール ===== プラグインのインストールに easy_install というコマンドを使う。 ==== IniAdmin ==== Trac の設定を変更するのに trac.ini を編集する必要があるが、このプラグインを使えばブラウザから設定を変更できる。 [[http://trac-hacks.org/wiki/IniAdminPlugin|IniAdminPlugin]] sudo easy_install http://trac-hacks.org/svn/iniadminplugin/0.11 Downloading http://trac-hacks.org/svn/iniadminplugin/0.11 Doing subversion checkout from http://trac-hacks.org/svn/iniadminplugin/0.11 to /tmp/easy_install-DfqSdZ/0.11 Processing 0.11 Running setup.py -q bdist_egg --dist-dir /tmp/easy_install-DfqSdZ/0.11/egg-dist-tmp-oPczMK zip_safe flag not set; analyzing archive contents... Adding IniAdmin 0.2 to easy-install.pth file Installed /usr/local/lib/python2.6/dist-packages/IniAdmin-0.2-py2.6.egg Processing dependencies for IniAdmin==0.2 Finished processing dependencies for IniAdmin==0.2 "/usr/local/lib/python2.6/dist-packages/IniAdmin-0.2-py2.6.egg" ここにインストールされたらしい。これを Trac のプロジェクトフォルダ内にある plugin フォルダにシンボリックリンクする。 $ cd /share/trac/YourProject/plugin $ sudo ln -s /usr/local/lib/python2.6/dist-packages/IniAdmin-0.2-py2.6.egg /share/trac/YourProject/conf/trac.ini を編集し、以下を追加。 [components] iniadmin.iniadmin.iniadminplugin = enabled Apache2 を再起動して Trac を確認してみたが、 "'ascii' codec can't decode byte 0xe6 in position 4" こんなエラーでた。 どうやら Unicode の文字列を ASCII で解釈しようとしているらしい。日本語化したのためらしい。 python のデフォルト文字コードを変更すると直るらしいのでやってみた。 $ sudo vi /etc/python2.6/sitecustomize.py 以下の記述を追加。 import sys sys.setdefaultencoding("utf-8") Apache2 を再起動して完了。Trac の管理コンソールが変わっている。 ===== 参考 ===== * [[http://trac.edgewall.org/wiki/Ubuntu-11.04-Subversion#SetuptheMySQLdatabase|DBをMySQLにしたインストール]] * [[http://spais.jp/memo/debian-gnulinux-etch-%E3%81%AB-trac-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E3%82%88/2008-02-01|Debian GNU/Linux etch に Trac をインストールしてみたよ]] * [[http://movion.net/2008/07/05/subversion-trac-install-for-ubuntu/|UbuntuにSubversionとtracのインストール]] * [[http://www.ryuzee.com/contents/blog/716|Tracをインストールしたらまず追加する10のプラグイン]]