trac on FreeBSD SVN Trac de RS_Base
なんだか、SVN Tracの記事が散漫で見にくくなっているので、改訂しる
2015-08-06 (木) 18:07:22
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
/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"
k222# /usr/local/etc/rc.d/svnserve restart Stopping svnserve. Starting svnserve.
# 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を設定。
# 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で確認。
このように見ていて居ればおk。一番最初は時間がかかるけど、任意のフォルダへ「チェックアウト」しておく。
k222# tar cvfzp svn.tar.gz svn k222# ll total 139684 drwxr-xr-x 3 root wheel 512 Nov 18 2007 namazu drwxr-xr-x 3 www www 512 Feb 8 2010 svn -rw-r--r-- 1 root wheel 142918930 Dec 14 12:48 svn.tar.gz k222# scp svn.tar.gz g7.kuji-clinic.net:/usr/local/var The authenticity of host '[g7.kuji-clinic.net]:xxxx ([210.255.122.215]:xxxx)' can't be established. DSA key fingerprint is 6c:25:0e:52:3d:5c:ea:ea:2b:9e:d2:93:6f:7f:42:a3. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[g7.kuji-clinic.net]:xxxx' (DSA) to the list of known hosts. Password: svn.tar.gz 100% 136MB 45.4MB/s 00:03 k222#
portinstall www/trac ===> japanese/trac
FreeBSD 7.2RなBlackCubeで、
=> No SHA256 checksum recorded for python/Python-2.5.2.tgz
といわれてストップ。したので、portupgrade
blackcube# portupgrade lang/python25
してから、
portinstall www/trac
した。
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
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/. ================================================================================
# 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>
/usr/local/www/apache22/data/trac/sandbox/conf/trac.ini
まずは、参照するreposの設定
repository_dir = /usr/local/var/svn/repos/sandbox
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
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
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
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#
# 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 にする。
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
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
する。と、『管理』というバーが出てくる。
2015-08-06 (木) 18:07:22