ユーザ用ツール

サイト用ツール


ubuntu-server-10-04:subversion_trac

文書の過去の版を表示しています。


Subversion と Trac をインストール

Apache2 がインストールされ、正常に稼働していることが前提。

パッケージのインストール

Subversion をインストール。

$ sudo apt-get install subversion libapache2-svn

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 ユーザのアクセス権を設定

anonymous ユーザの権限を確認。

$ sudo trac-admin /share/trac/YourProject permission list anonymous

全権限を持ったユーザ admin を追加する。

admin 以外の名前でも良い
$ sudo trac-admin /share/trac/YourProject permission add admin BROWSER_VIEW CHANGESET_VIEW CONFIG_VIEW EMAIL_VIEW FILE_VIEW LOG_VIEW MILESTONE_ADMIN MILESTONE_CREATE MILESTONE_DELETE MILESTONE_MODIFY MILESTONE_VIEW PERMISSION_ADMIN PERMISSION_GRANT PERMISSION_REVOKE REPORT_ADMIN REPORT_CREATE REPORT_DELETE REPORT_MODIFY REPORT_SQL_VIEW REPORT_VIEW ROADMAP_ADMIN ROADMAP_VIEW SEARCH_VIEW TICKET_ADMIN TICKET_APPEND TICKET_CHGPROP TICKET_CREATE TICKET_EDIT_CC TICKET_EDIT_DESCRIPTION TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW TRAC_ADMIN WIKI_ADMIN WIKI_CREATE WIKI_DELETE WIKI_MODIFY WIKI_VIEW
~VIEW と ~MODIFY だったら ~MODIFY だけ追加すれば良いような気もする。管理者権限だったら ~ADMIN だけ追加すればいいのかも。【未検証】

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 にする。

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 にする。

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

Apache2 に設定を追加

Apache2 の設定に Trac を追加する。

/etc/apache2/sites-available/default あたりに以下を追加。今回は認証に LDAP を使用。

<Location /dev/trac>
    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

</Location>

Subversion の設定は以下を追加。

<Location /dev/svn>
    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
</Location>

Apache2 の設定ファイルをリロード。

$ sudo /etc/init.d/apache2 reload
  • https://hostname/dev/svn
    • Subversion にアクセス
  • https://hostname/dev/trac
    • Trac にアクセス

Trac プラグインのインストール

プラグインのインストールに easy_install というコマンドを使う。

参考

ubuntu-server-10-04/subversion_trac.1306155737.txt.gz · 最終更新: 2011/05/23 22:02 by admin