[[trac on FreeBSD]]
なんだか、SVN Tracの記事が散漫で見にくくなっているので、改訂しる
#contents

*subversion のインストール [#q185ff67]
 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]
**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
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]
**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]
 k222# mkdir -p /usr/local/www/apache22/data/trac/sandbox
 k222# trac-admin /usr/local/www/apache22/data/trac/sandbox initenv
 Creating a new Trac environment at /usr/local/www/apache22/data/trac/sandbox
 blackcube# trac-admin /usr/local/www/apache22/data/trac/sandbox initenv
 新規 Trac Environment /usr/local/www/apache22/data/trac/sandbox の生成
 
 Project Name [My Project]> sandbox ( Enter )
 Database connection string [sqlite:db/trac.db]> ( Enter )
 Repository type [svn]> ( Enter )
 Path to repository [/path/to/repos]> /usr/local/var/svn/repos/sandbox ( Enter )

 ---------------------------------------------------------------------
 Warning: couldn't index the repository.
 はじめに、プロジェクトのデータベースの初期化と準備をするために、
 あなたの環境についていくつか確認をします。
 
 This can happen for a variety of reasons: wrong repository type,
 no appropriate third party library for this repository type,
 no actual repository at the specified repository path...
  プロジェクトの名前を入力してください。
  この名前は、ページのタイトルと説明に使用されます。
 
 You can nevertheless start using your Trac environment, but
 you'll need to check again your trac.ini file and the [trac]
 repository_type and repository_path settings in order to enable
 the Trac repository browser.
 プロジェクト名 [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 からインポートしました
 
 ---------------------------------------------------------------------
 Project environment for 'sandbox' created.
 Trac Environment 'sandbox' ができました。
 
 You may now configure the environment by editing the file:
 今後、この環境の設定をする場合は、次のファイルを利用します:
 
 /usr/local/www/apache22/data/trac/sandbox/conf/trac.ini
   /usr/local/www/apache22/data/trac/sandbox/conf/trac.ini
 
 If you'd like to take this new project environment for a test drive,
 try running the Trac standalone web server `tracd`:
 あなたがこの新しいプロジェクトのテストを考えているなら、
 スタンドアロンウェブサーバ `tracd` を試してみてください:
 
  tracd --port 8000 /usr/local/www/apache22/data/trac/sandbox
   tracd --port 8000 /usr/local/www/apache22/data/trac/sandbox
 
 Then point your browser to http://localhost:8000/sandbox.
 There you can also browse the documentation for your installed
 version of Trac, including information on further setup (such as
 deploying Trac to a real web server).
 それから、ブラウザで http://localhost:8000/sandbox にアクセスします。
 インストールしたバージョンに合わせた今後のセットアップ情報などが含まれた、
 ドキュメントが閲覧できます。(例えばウェブサーバで公開する手順など)
 
 The latest documentation can also always be found on the project
 website:
 最新のドキュメントは、プロジェクトのウェブサイトから入手できます:
 
  http://trac.edgewall.org/
   http://trac.edgewall.org/
 
 Congratulations!


 k222# chown -R www:www /usr/local/www/apache22/data/trac/sandbox
 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 




----




----


**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;

----


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS