[[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] /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] 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 ---- ---- **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; ----