2008年10月31日(金)
UbuntuにSubversionとtracのインストール
の続きです。
手動実行をただ単に書きならべただけですが、シェルスクリプトにしてみました。
もっとちゃんと工夫すれば、まともに使えるモノになるかも。
vi /usr/local/bin/make-svn-project.sh
-
#!/bin/sh
-
-
#parameter settings
-
REPO_NAME=$1
-
ADMIN_USER=akira
-
SVN_FILE_OWNER=akira
-
SVN_FILE_GROUP=akira
-
SVN_PATH=/var/svn
-
TRAC_PATH=/var/www/trac
-
#TRAC_TEMPLATES=/usr/share/trac/templates
-
TRAC_TEMPLATES=/usr/share/trac-ja-resource/templates
-
SVN_PASSWORD=/var/svn/passwd
-
-
#create svn repository
-
/usr/bin/svnadmin create $SVN_PATH/$REPO_NAME
-
chown -R $SVN_FILE_OWNER:$SVN_FILE_GROUP $SVN_PATH/$REPO_NAME
-
-
/usr/bin/svn mkdir file://$SVN_PATH/$REPO_NAME/trunk -m "make trunk dir"
-
/usr/bin/svn mkdir file://$SVN_PATH/$REPO_NAME/branches -m "make branches dir"
-
/usr/bin/svn mkdir file://$SVN_PATH/$REPO_NAME/tags -m "make tags dir"
-
-
#copy svn password file
-
cp $SVN_PASSWORD $SVN_PATH/$REPO_NAME/conf/
-
-
#create trac
-
/usr/bin/trac-admin $TRAC_PATH/$REPO_NAME initenv $REPO_NAME sqlite:db/trac.db svn $SVN_PATH/$REPO_NAME $TRAC_TEMPLATES
-
chown -R www-data:www-data $TRAC_PATH/$REPO_NAME
-
-
#revoke on anoymous
-
/usr/bin/trac-admin $TRAC_PATH/$REPO_NAME permission remove anonymous REPORT_DELETE WIKI_CREATE WIKI_MODIFY REPORT_SQL_VIEW TICKET_APPEND TICKET_CHGPROP TICKET_CREATE TICKET_MODIFY
-
-
#grant on admin user
-
/usr/bin/trac-admin $TRAC_PATH/$REPO_NAME permission add $ADMIN_USER BROWSER_VIEW CHANGESET_VIEW CONFIG_VIEW FILE_VIEW LOG_VIEW MILESTONE_ADMIN MILESTONE_CREATE MILESTONE_DELETE MILESTONE_MODIFY MILESTONE_VIEW 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_MODIFY TICKET_VIEW TIMELINE_VIEW TRAC_ADMIN WIKI_ADMIN WIKI_CREATE WIKI_DELETE WIKI_MODIFY WIKI_VIEW
-
-
#restart apache
-
/etc/init.d/apache2 restart
chmod 700 /usr/local/bin/make-svn-project.sh
でもって、削除スクリプトは以下。ディレクトリごと削除してるだけです。むしろこれは実行権限与えてない方がよいかも・・・。
vi /usr/local/bin/remove-svn-project.sh
-
#!/bin/sh
-
-
#parameter settings
-
REPO_NAME=$1
-
ADMIN_USER=akira
-
SVN_FILE_OWNER=akira
-
SVN_FILE_GROUP=akira
-
SVN_PATH=/var/svn
-
TRAC_PATH=/var/www/trac
-
#TRAC_TEMPLATES=/usr/share/trac/templates
-
TRAC_TEMPLATES=/usr/share/trac-ja-resource/templates
-
-
#remove svn repository
-
rm -rf $SVN_PATH/$REPO_NAME
-
-
#remove trac
-
rm -rf $TRAC_PATH/$REPO_NAME
-
-
#restart apache
-
/etc/init.d/apache2 restart
あ、使い方は、
make-svn-project.sh プロジェクト名(兼リポジトリ名)
です。
2008年07月5日(土)
結構何回か同じことしてるけど、ネットなしでは設定できません・・・。
■参考サイト
Debian GNU/Linux etch に Trac をインストールしてみたよ
Subversion (via mod_dav_svn) + Trac (on mod_python) でオープンソース開発環境の構築 on FC6CommentsAdd Star
■各種インストール(パッケージ)
-
sudo -s
-
apt-get install subversion
-
apt-get install subversion-tools
-
-
apt-get install trac
-
apt-get install trac-ja-resource
-
-
apt-get install libapache2-mod-python
-
-
a2enmod mod_python
-
a2enmod rewrite
(※mod_python等を無効にしたい場合のコマンドは、a2dismod)
■テスト用リポジトリ作成
-
mkdir /var/svn/
-
svnadmin create /var/svn/testrepos
■テスト用リポジトリに対応したtracを作成
-
mkdir /var/www/trac/
-
trac-admin /var/www/trac/testrepos initenv
「Path to repository」では上記で作成したsvnのリポジトリパスを指定。
最後に、「Congratulations!」とでればOK
あと、Apacheの実行ユーザになるようにオーナーを変更
-
chown -R www-data:www-data /var/www/trac
■tracのユーザ管理
○anoymous権限の変更(というか剥奪)
-
trac-admin /var/www/trac/testrepos permission remove anonymous REPORT_DELETE WIKI_CREATE WIKI_MODIFY REPORT_SQL_VIEW TICKET_APPEND TICKET_CHGPROP TICKET_CREATE TICKET_MODIFY
※権限確認
trac-admin /var/www/trac/testrepos permission list anonymous
○全権限を持つユーザの追加
-
trac-admin /var/www/trac/testrepos permission add akira BROWSER_VIEW CHANGESET_VIEW CONFIG_VIEW FILE_VIEW LOG_VIEW MILESTONE_ADMIN MILESTONE_CREATE MILESTONE_DELETE MILESTONE_MODIFY MILESTONE_VIEW 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_MODIFY TICKET_VIEW TIMELINE_VIEW TRAC_ADMIN WIKI_ADMIN WIKI_CREATE WIKI_DELETE WIKI_MODIFY WIKI_VIEW
○パスワードファイルの作成
-
mkdir /var/trac
-
htpasswd -c /var/trac/.htpasswd akira
■Apacheとtracの設定
まずは、apacheのvirtualhostを設定。subversionにはsvn+sshとかで接続するので、apacheでの設定はしていません。
vi /etc/apache2/sites-available/trac
-
<virtualHost *>
-
ServerName trac.movion.mydns.jp
-
DocumentRoot /var/www/trac
-
<Location />
-
SetHandler mod_python
-
PythonHandler trac.web.modpython_frontend
-
PythonOption TracEnvParentDir /var/www/trac
-
PythonOption TracUriRoot /
-
</Location>
-
-
<locationMatch "/[[:alnum:]]+/login">
-
AuthType Basic
-
AuthName "trac"
-
AuthUserFile /var/trac/.htpasswd
-
Require valid-user
-
</locationMatch>
-
</virtualHost>
一応、部分日本語対応して、apache再起動(reloadでいいはずだけど)
-
ln -s /etc/apache2/sites-available/trac /etc/apache2/sites-enabled/010-trac
-
trac-admin /var/www/trac/testrepos wiki load /usr/share/trac-ja-resource/wiki-default
-
cp /usr/share/trac-ja-resource/templates/* /var/www/trac/testrepos/templates/
-
/etc/init.d/apache2 restart
疲れたので、プロジェクト作成スクリプトとか、tracの設定とかは次回、の予定。
関連記事
SubvrersionリポジトリとTracプロジェクト作成スクリプト(適当)
2008年06月9日(月)
タイムラインのRSSにデフォルトだと、authorが入ってくれない。
(やり方があるのかもしれないが・・・あったら教えてください。)
ので、良くない方法だけど、ソースコードを直接修正して無理矢理対応。
Trac / trac-0.10.4-ja-1
OS / Ubuntu 6.06
2つのファイルを修正して一応author(担当者)が含まれるようになりました。
changeset.py
-
— /usr/lib/python2.4/site-packages/trac/versioncontrol/web_ui/changeset.py.bak 2007-02-19 16:02:04.000000000 +0900
-
+++ /usr/lib/python2.4/site-packages/trac/versioncontrol/web_ui/changeset.py 2008-03-07 20:36:21.000000000 +0900
-
@@ -644,7 +644,7 @@
-
shortlog = shorten_line(message)
-
-
if format == ‘rss’:
-
- title = Markup(u’チェンジセット [%s]: %s’, chgset.rev, shortlog)
-
+ title = Markup(u’チェンジセット by %s [%s]: %s’, chgset.author, chgset.rev, shortlog)
-
href = req.abs_href.changeset(chgset.rev)
-
if wiki_format:
-
message = wiki_to_html(message, self.env, req, db,
web_ui.py
-
— /usr/lib/python2.4/site-packages/trac/ticket/web_ui.py.bak 2007-05-01 18:00:28.000000000 +0900
-
+++ /usr/lib/python2.4/site-packages/trac/ticket/web_ui.py 2008-03-07 20:38:06.000000000 +0900
-
@@ -385,8 +385,8 @@
-
return None
-
kind, verb = status_map[status]
-
if format == ‘rss’:
-
- title = u’チケット #%s (%s) が%s: %s’ %
-
- (id, type.lower(), verb, summary)
-
+ title = u’チケット by %s #%s (%s) が%s: %s’ %
-
+ (author, id, type.lower(), verb, summary)
-
else:
-
title = Markup(u’チケット <em title="%s">#%s</em> (%s) が %s によって%s’,
-
summary, id, type, author, verb )
diffがずいぶん読みづらくなっております。