- 追加された行はこの色です。
- 削除された行はこの色です。
[[trac on FreeBSD]]
なんだか、SVN Tracの記事が散漫で見にくくなっているので、改訂しる
#contents
*subversion のインストール [#q185ff67]
Apacheのモジュール、mod_dav_svn.soを入れる為にSubversionをMOD_DAV_SVNオプションを有効にして、make installします。
portinstall devel/subversion
# echo svnserve_enable="YES" >> /etc/rc.conf
http://www.caldron.jp/~nabetaro/svn/svnbook-1.5-final/svn-book.html#svn.basic
**svn起動 [#n2620902]
/usr/local/etc/rc.d/svnserve start
Jun 9 14:50:15 blackcube kernel: Starting svnserve.
Jun 9 14:50:15 blackcube kernel: su:
Jun 9 14:50:15 blackcube kernel: unknown login: svn
FreeBSD 8.2R でインストールしたsubversion 1.7.1_1だと、
blackcube# /usr/local/etc/rc.d/svnserve restart
svnserve not running?
Starting svnserve.
svnserve: Root path '/home/svn/repos' does not exist or is not a directory.
/usr/local/etc/rc.d/svnserve: WARNING: failed to start svnserve
といって、起動せず。で、
http://d.hatena.ne.jp/komamitsu/20080203/1201988189
を参考に、/usr/local/etc/rc.d/svnserve
svnserve_data=${svnserve_data:-"/home/svn/repos"}
を、
svnserve_data=${svnserve_data:-"/usr/local/var/svn/repos"}
とする。
blackcube# /usr/local/etc/rc.d/svnserve restart
svnserve not running?
Starting svnserve.
http://blog.perl.tv/2007/01/freebsd_60subversion_trac.html
# pw groupadd -n svn -g 90
# pw useradd -n svn -u 90 -g svn -d /nonexistent -s /nonexistent
デフォルトだと svnserve に -r オプションがついているので該当箇所をコメントアウトしておく。
# diff -u /usr/local/etc/rc.d/svnserve.sh.orig /usr/local/etc/rc.d/svnserve.sh
--- /usr/local/etc/rc.d/svnserve.sh.orig Sun Jan 14 17:11:17 2007
+++ /usr/local/etc/rc.d/svnserve.sh Sun Jan 14 17:12:01 2007
@@ -30,6 +30,6 @@
rcvar=`set_rcvar`
load_rc_config $name
command=/usr/local/bin/svnserve
-command_args="-r ${svnserve_data}"
+#command_args="-r ${svnserve_data}"
run_rc_command "$1"
**svn再起動 [#jb8160e9]
k222# /usr/local/etc/rc.d/svnserve restart
Stopping svnserve.
Starting svnserve.
**WordPress ( リポジトリ ) の作成 [#l7b4304a]
# mkdir -p /usr/local/var/svn/repos
# svnadmin create /usr/local/var/svn/repos/wordpress
# cd /usr/local/var/svn/repos/wordpress
# mkdir -p tmp/trunk tmp/tags tmp/branches
# chown -R svn:svn /usr/local/var/svn/repos/wordpress
/usr/local/var/svn/repos/wordpress/tmp/trunk へ管理したいデータを入れる。今回は、WordPress で。
blackcube# svn import /usr/local/var/svn/repos/wordpress/tmp/ file:///usr/local/var/svn/repos/wordpress/ -m "Initial import"
Adding /usr/local/var/svn/repos/wordpress/tmp/trunk/wordpress/wp-admin/user/index.php
Adding /usr/local/var/svn/repos/wordpress/tmp/trunk/wordpress/wp-admin/user/admin.php
Adding /usr/local/var/svn/repos/wordpress/tmp/trunk/wordpress/wp-admin/user/index-extra.php
Adding /usr/local/var/svn/repos/wordpress/tmp/trunk/wordpress/wp-feed.php
Adding /usr/local/var/svn/repos/wordpress/tmp/branches
Adding /usr/local/var/svn/repos/wordpress/tmp/tags
Committed revision 1.
ここで、TrotoiseSVN(Win)または(Mac)で確認したいところだが、HTTPプロトコールでの確認ができないので、ApacheにDAVを設定。
**Apache WebDAV on Subversion † [#qf7530d4]
# vi /usr/local/etc/apache22/Includes/subversion.conf
<Location /svn>
DAV svn
SVNParentPath /usr/local/var/svn/repos
SVNListParentPath On
<LimitExcept GET PROPFIND OPTIONS REPORT>
Deny from all
</LimitExcept>
</Location>
リポジトリ一覧を見せたくない場合は SVNListParentPath? を off にする。
# vi /usr/local/etc/apache22/Includes/subversion.conf
<Location /svn>
DAV svn
SVNParentPath /usr/local/var/svn/repos
SVNListParentPath On
# <LimitExcept GET PROPFIND OPTIONS REPORT>
<LimitExcept GET POST OPTIONS PROPFIND MKACTIVITY CHECKOUT MKACTIVITY DELETE PROPPATCH MKCOL MERGE REPORT PUT COPY>
Deny from all
</LimitExcept>
</Location>
ココで一応TortoiseSVNで確認。
&ref(TortoiseSVN_WP.png);
このように見ていて居ればおk。一番最初は時間がかかるけど、任意のフォルダへ「チェックアウト」しておく。
*trac [#r4406db4]
portinstall www/trac
FreeBSD 7.2RなBlackCubeで、
=> No SHA256 checksum recorded for python/Python-2.5.2.tgz
といわれてストップ。したので、portupgrade
blackcube# portupgrade lang/python25
してから、
portinstall www/trac
した。
**使用準備 [#v6bb5f41]
blackcube# trac-admin /usr/local/www/apache22/data/trac/sandbox initenv
新規 Trac Environment /usr/local/www/apache22/data/trac/sandbox の生成
はじめに、プロジェクトのデータベースの初期化と準備をするために、
あなたの環境についていくつか確認をします。
プロジェクトの名前を入力してください。
この名前は、ページのタイトルと説明に使用されます。
プロジェクト名 [My Project]> sandbox
使用するデータベースへの接続文字列を指定してください。
デフォルトではローカルに SQLite データベースを作成します。
既に存在する PostgreSQL データベースを使うこともできます。
(Trac では、接続文字列は厳密に表記する必要があります。
詳細は Trac のドキュメントを参照してください)
データベース接続文字列 [sqlite:db/trac.db]>
プロジェクトの生成と初期化
デフォルトの Wiki ページのインストール
InterMapTxt を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/InterMapTxt からインポートしました
TracIni を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracIni からインポートしました
WikiRestructuredTextLinks を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/WikiRestructuredTextLinks からインポートしました
TracLogging を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracLogging からインポートしました
WikiStart を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/WikiStart からインポートしました
TracLinks を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracLinks からインポートしました
TracStandalone を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracStandalone からインポートしました
WikiProcessors を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/WikiProcessors からインポートしました
TracImport を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracImport からインポートしました
TracInterfaceCustomization を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracInterfaceCustomization からインポートしました
WikiHtml を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/WikiHtml からインポートしました
SandBox を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/SandBox からインポートしました
TracSearch を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracSearch からインポートしました
TracQuery を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracQuery からインポートしました
TracFineGrainedPermissions を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracFineGrainedPermissions からインポートしました
TracWiki を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracWiki からインポートしました
TracAccessibility を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracAccessibility からインポートしました
TracChangeset を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracChangeset からインポートしました
TracRss を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracRss からインポートしました
TracEnvironment を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracEnvironment からインポートしました
TracUnicode を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracUnicode からインポートしました
TracModPython を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracModPython からインポートしました
TracRevisionLog を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracRevisionLog からインポートしました
WikiPageNames を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/WikiPageNames からインポートしました
TitleIndex を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TitleIndex からインポートしました
TracBrowser を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracBrowser からインポートしました
CamelCase を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/CamelCase からインポートしました
WikiRestructuredText を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/WikiRestructuredText からインポートしました
TracNavigation を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracNavigation からインポートしました
TracAdmin を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracAdmin からインポートしました
TracGuide を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracGuide からインポートしました
TracNotification を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracNotification からインポートしました
TracPermissions を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracPermissions からインポートしました
TracRepositoryAdmin を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracRepositoryAdmin からインポートしました
InterTrac を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/InterTrac からインポートしました
TracReports を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracReports からインポートしました
TracCgi を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracCgi からインポートしました
InterWiki を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/InterWiki からインポートしました
TracSupport を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracSupport からインポートしました
TracRoadmap を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracRoadmap からインポートしました
WikiNewPage を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/WikiNewPage からインポートしました
TracBackup を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracBackup からインポートしました
TracUpgrade を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracUpgrade からインポートしました
TracWorkflow を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracWorkflow からインポートしました
TracPlugins を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracPlugins からインポートしました
TracModWSGI を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracModWSGI からインポートしました
WikiMacros を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/WikiMacros からインポートしました
TracSyntaxColoring を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracSyntaxColoring からインポートしました
WikiDeletePage を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/WikiDeletePage からインポートしました
TracFastCgi を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracFastCgi からインポートしました
TracTicketsCustomFields を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracTicketsCustomFields からインポートしました
WikiFormatting を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/WikiFormatting からインポートしました
TracTimeline を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracTimeline からインポートしました
TracTickets を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracTickets からインポートしました
TracInstall を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/TracInstall からインポートしました
PageTemplates を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/PageTemplates からインポートしました
RecentChanges を /root/.python-eggs/Trac-0.12.2-py2.5.egg-tmp/trac/wiki/default-pages/RecentChanges からインポートしました
---------------------------------------------------------------------
Trac Environment 'sandbox' ができました。
今後、この環境の設定をする場合は、次のファイルを利用します:
/usr/local/www/apache22/data/trac/sandbox/conf/trac.ini
あなたがこの新しいプロジェクトのテストを考えているなら、
スタンドアロンウェブサーバ `tracd` を試してみてください:
tracd --port 8000 /usr/local/www/apache22/data/trac/sandbox
それから、ブラウザで http://localhost:8000/sandbox にアクセスします。
インストールしたバージョンに合わせた今後のセットアップ情報などが含まれた、
ドキュメントが閲覧できます。(例えばウェブサーバで公開する手順など)
最新のドキュメントは、プロジェクトのウェブサイトから入手できます:
http://trac.edgewall.org/
Congratulations!
blackcube# chown -R www:www /usr/local/www/apache22/data/trac/sandbox
**mod_python Install [#s49ae2fc]
k222# portinstall www/mod_python3
================================================================================
Also remember to add to your Apache configuration in the appropriate context:
PythonPath "['/path/to/foo', '/path/to/bar']"
AddHandler python-program .py
PythonHandler foobar
PythonDebug On
For more information, see http://www.modpython.org/.
================================================================================
**Apache Setting [#rf41f95f]
# vi /usr/local/etc/apache22/httpd.conf
以前は手動で追加してたけど、
LoadModule python_module libexec/apache22/mod_python.so
いまのPortsでは、自動で追加される。
# vi /usr/local/etc/apache22/Includes/trac.conf
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /usr/local/www/apache22/data/trac
PythonOption TracUriRoot /trac
</Location>
***Tracの設定 [#x8b7e448]
/usr/local/www/apache22/data/trac/sandbox/conf/trac.ini
まずは、参照するreposの設定
repository_dir = /usr/local/var/svn/repos/sandbox
***Trac に『管理コンソール』を表示 [#bca65e7f]
Trac に [管理コンソール] 画面を追加するプラグイン。Trac 0.11 以降は統合されているためインストールは不要。
Trac に統合されている Web Admin Plugin を有効にするため trac.ini ファイルを編集する。
/usr/local/www/apache22/data/trac/wordpress/conf
trac.ini ファイルに次の内容を追加する。
[components]
webadmin.* = enabled
[管理コンソール] 画面を表示するには TRAC_ADMIN パーミッションを持つユーザが必要となるが、この段階ではまだユーザ登録できないので、暫定的に anonymous ユーザに TRAC_ADMIN パーミッションを付与して動作確認をする。
blackcube# trac-admin /usr/local/www/apache22/data/trac/wordpress permission add anonymous TRAC_ADMIN
Web ブラウザ で Trac を表示すると Wiki メニューの一番右に [管理] ボタンが追加される。[管理] ボタンを押すと管理コンソールが開く。
確認作業が終了したら anonymous ユーザから TRAC_ADMIN パーミッションを削除しておく こと。
blackcube# trac-admin /usr/local/www/apache22/data/trac/wordpress permission remove anonymous TRAC_ADMIN
***Account Manager Plugin [#j2082475]
Trac のユーザアカウントを管理するためのプラグイン。
Easy Install を利用して Account Manager Plugin をインストールする。
blackcube# easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk
Downloading http://trac-hacks.org/svn/accountmanagerplugin/trunk
Doing subversion checkout from http://trac-hacks.org/svn/accountmanagerplugin/trunk to /tmp/easy_install-Wc8ytY/trunk
Processing trunk
Running setup.py -q bdist_egg --dist-dir /tmp/easy_install-Wc8ytY/trunk/egg-dist-tmp-TyPeBJ
Adding TracAccountManager 0.3dev-r10265 to easy-install.pth file
Installed /usr/local/lib/python2.5/site-packages/TracAccountManager-0.3dev_r10265-py2.5.egg
Processing dependencies for TracAccountManager==0.3dev-r10265
Finished processing dependencies for TracAccountManager==0.3dev-r10265
blackcube#
TRAC_ADMIN パーミッションを持つ admin ユーザを登録する。
%trac-admin /usr/local/www/apache22/data/trac/wordpress permission add admin TRAC_ADMIN
trac.ini ファイルに次の内容を追加する。
[account-manager]
password_format = htpasswd
password_store = HtPasswdStore
password_file = /usr/local/www/apache22/data/trac.htpasswd
[components]
trac.web.auth.loginmodule = disabled
acct_mgr.admin.accountmanageradminpage = enabled
acct_mgr.api.accountmanager = enabled
acct_mgr.htfile.abstractpasswordfilestore = enabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.web_ui.accountmodule = enabled
acct_mgr.web_ui.loginmodule = enabled
***IniAdminPlugin [#c25f6646]
trac.ini ファイルを直接編集することなく、ブラウザから Trac の各種設定を変更できるようにするプラグイン。
Easy Install を利用して IniAdminPlugin をインストールする。
blackcube# 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-kECGWR/0.11
Processing 0.11
Running setup.py -q bdist_egg --dist-dir /tmp/easy_install-kECGWR/0.11/egg-dist-tmp-IU0uSN
zip_safe flag not set; analyzing archive contents...
Adding IniAdmin 0.2 to easy-install.pth file
Installed /usr/local/lib/python2.5/site-packages/IniAdmin-0.2-py2.5.egg
Processing dependencies for IniAdmin==0.2
Finished processing dependencies for IniAdmin==0.2
blackcube#
※ Trac 0.12 の場合も Trac 0.11 と同じ URL (iniadminplugin/0.11) を指定する。
テキストエディタで trac.ini ファイルを編集し IniAdminPlugin を有効にする。
%vi /usr/local/www/apache22/data/trac/wordpress/conf/trac.ini
trac.ini ファイルに次の内容を追加する。
[components]
iniadmin.iniadmin.iniadminplugin = enabled
----
----
**OpenSSH on Subversion [#aa600ba8]
svn専用ユーザを追加する。
# pw groupadd -n svn
# pw useradd -n svn -c "Subversion Comit User" -d /home/svn -g svn -h - -s /bin/sh
# mkdir -p /home/svn/.ssh
# chown -R svn:svn /home/svn
一般ユーザの公開鍵を /home/svn/.ssh にコピーする。
通常の公開鍵だとシェルでのログインも出来てしまうので、 command 等を公開鍵の先頭に追記する。 ( 実際は一行 )
command="svnserve -t --tunnel-user=コミットユーザ名 -r /usr/local/var/svn/repos"
,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-dss AAAAB
(中略)M6BA== ****@examle.com
sshd_config で AllowUsers を設定している場合は svn ユーザを追加する。
# grep AllowUsers /etc/ssh/sshd_config
AllowUsers user svn
# /etc/rc.d/sshd restart
k222# cd /home/svn/
k222# svnadmin create repos
k222# chown -R svn:svn repos
k222# /usr/local/etc/rc.d/svnserve start
vi /etc/rc.conf
svnserve_enable="YES"
k222#
k222#
**Apache WebDAV on Subversion [#ze991b71]
# vi /usr/local/etc/apache22/Includes/subversion.conf
<Location /svn>
DAV svn
SVNParentPath /usr/local/var/svn/repos
SVNListParentPath On
<LimitExcept GET PROPFIND OPTIONS REPORT>
Deny from all
</LimitExcept>
</Location>
リポジトリ一覧を見せたくない場合は SVNListParentPath を off にする。
**error [#ya5687bf]
k222# trac-admin /usr/local/www/apache22/data/trac/sandbox resync
Resyncing repository history...
Command failed: /usr/local/www/apache22/data/trac/sandbox does not appear to be a Subversion repository.
k222#
http://mishuku.net/archives/2008/04/trac.php
** portinstall www/trac-webadmin [#c5a58693]
TracWebAdmin のeggファイルは添付ファイルにあります。
この添付ファイルをDLし、.zip 拡張子を除去し、プロジェクトのpluginsフォルダへコピー
その後、
chown www:www TracWebAdmin-0.1.2dev_r6060-py2.4.egg
してから、権限を与えたいユーザ が kuji であれば、
k222# trac-admin /usr/local/www/apache22/data/trac/RS_Base permission add kuji TRAC_ADMIN
する。と、『管理』というバーが出てくる。
----
#counter([total|today|yesterday]);
&lastmod;
----