[原创]ubuntu下subversion工具Trac和SVNManager的配置方法。(花了我一天的时间研究,请支持)

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
leeonix
帖子: 54
注册时间: 2007-12-14 9:18

[原创]ubuntu下subversion工具Trac和SVNManager的配置方法。(花了我一天的时间研究,请支持)

#1

帖子 leeonix » 2007-12-27 2:26

subversion的安装方法见Wiki:
http://wiki.ubuntu.org.cn/index.php?title=SubVersion

最近又建立了两个仓库,把2003年写的代码加了进去保管。subversion实在太好了。可是自己还是手工添加的仓库,svnadmin,htpasswd,修改dav_svn.conf……这个不是程序员所能容忍的。需要管理工具。找来找去,发觉SVNManager还是不错的。用php编写的。

既然是PHP,经典组合LAMP就有用武之地了…… LAMP的安装配置搜索论坛,ubuntu友们早有详细描述。你安装subversion的时候可能安装了Apache2了,不过,svnmanager不一定需要MySQL,它也支持SQLite。所以,还是得安装PHP5不是。:)

官方网站:

http://svnmanager.sourceforge.net

ubuntu的源里面好东西真多,其他Linux会很痛苦的找工具的时候,ubuntu早就给我们准备好了。打开你的命令行,使用你的apt-get,我们来安装。

SVN需要php-pear,

代码: 全选

sudo apt-get install php-pear
然后要安装VersionControl_SVN-0.3.0alpha1。命令行下输入:

代码: 全选

pear install --alldeps VersionControl_SVN-0.3.0alpha1
本篇文章写下的时候,SVNManager的版本是1.03。所以我们最好还是用subversion经常update为好。执行:

代码: 全选

svn co https://svnmanager.svn.sourceforge.net/svnroot/svnmanager/trunk svnmanager
得到最新的SVNManger并移动到 /var/www/ 下。

你会发现有两个php文件很醒目,是双胞胎兄弟两个,他们叫:config.php.linux,config.php.windows。模样有什么区别自己打开看。;)

他们是两个样本config.php,我们cp config.php.linux config.php。然后按照自己的需要编辑一下。

代码: 全选

//
//  SVNManager config.php file for Linux based servers
//

//Shell command's
$htpassword_cmd 			= 	"/usr/bin/htpasswd";
$svn_cmd 				= 	"/usr/bin/svn";
$svnadmin_cmd 				= 	"/usr/bin/svnadmin";

//Subversion locations
$svn_repos_loc 				= 	"/home/svn-repos";
$svn_passwd_file 			= 	"/home/svn-repos/svn.passwd";
$svn_access_file 			= 	"/home/svn-repos/svn.access";
$htpassword_cmd,$svn_cmd,$svnadmin_cmd我们可爱的linux是不需要重点设置的,这里是留给那些windows用户的东东,除非你喜欢移动这些工具的位置……通过这个我们可看到SVNManager只支持htpasswd,这是个缺陷。

而$svn_repos_loc,$svn_passwd_file,$svn_access_file是需要我们设置的。

/home/svn-repos的目的其实是建立一个subversion的ParentPath。SVNParentPath。

而另外两个是SVNManger需要保存的用户名文件,具体功能……我也不清楚,哈,会用就行。它们的位置可以不在仓库目录下,或许你有自己保存密码文件的目录。建立两个空白文本文件放在那里就可。

/home/svn-repos请酌情修改为自己设定的位置。这三个东东请保持他在www-data用户组下。

代码: 全选

mkdir svn-repos
sudo chown -R www-data:www-data svn-repos
然后我们修改/etc/apache2/mods-availabe/dav_svn.conf文件,把我们刚才所建立的三个东东添加如下

代码: 全选

<Location /repos>
    DAV svn
    SVNParentPath /home/svn-repos/
    AuthType Basic
    AuthName "Subversion"
    AuthUserFile /home/svn-repos/svn.passwd
    AuthzSVNAccessFile /home/svn-repos/svn.access
    Require valid-user
</Location>
再往下看config.php我们发觉这么两行:

代码: 全选

$dsn					= 	"mysqli://svnmanager:123456@localhost/svnmanager";
//The following location is not readable from internet by means of an .htaccess file
//$dsn				=	"sqlite://svnmanager/svnmanager.db";  
恩,Linux下默认$dsn指向mysql,而windows下的config.php指向的是sqlite。
如果你想用MySQL想自己建立数据库的话,而又不怎么会用的话。OK,我们就按照上面我给出的那个mysqli://...后面的连接字符串来建一个Mysql的数据库,

代码: 全选

#mysql -u root -q <--- 以root身份进入mysql
Mysql>create database svnmanager;  <---懂英语的你一看就明白,建立一个叫svnmanager的数据库。
Mysql>grant all privileges on svnmanger.* to ‘svnmanager’@’localhost’ identified by ‘123456’; 
    <---建立svnmanager的专属用户,不要忘了,引号里的123456是你的密码。
Mysql>flush privileges;
Mysql>quit;
好了,我们restart我们的apache2,

代码: 全选

sudo /etc/init.d/apache2 restart
然后访问svnmanager站点,

http://localhost/svnmanager

你会看到界面,有个Login的的界面,用admin,密码admin进入,要马上建立一个超级用户来管理。这个admin用户只能用一次。

SVNManger对subverion仓库管理的很不错。还提供了以前仓库的导入借口。你会看到:Import existing repositories not controlled by SVNManager这一行字的。把仓库复制进SVNParentPath下,就可以顺利导入了。

////////////////////////我是分割线/////////////////////////////////////////////////////////////

以前用CVS的时候,有个叫cvstrac的管理工具很不错,用c语言写的一个轻量的web服务器。有wiki功能。
而subversion我们可以用Trac,ubuntu的源里就有最新的Trac。看来,这个东东还是很受欢迎的。

代码: 全选

sudo apt-get install trac
Trac用trac-admin建立trac仓库,其目录结构和subversion类似,需要的话可以放到一起。:)

你的SVNManager配置成功了吗?成功了用SVNManger建立一个叫test的仓库,他的位置就在/home/svn-repos/test

trac-admin /home/test initenv 。会有设置提示的。重点设置项目名和svn仓库路径,其他的默认就可以。

然后还是权限问题。把它的权限设置在www-data组下。

代码: 全选

sudo chown -R www-data:www-data /home/test
sudo chmod -R g+rsw /home/test
trac-admin还有许多功能。具体见Trac的官方帮助。

http://trac.edgewall.org/wiki/TracAdmin

trac提供了两种方式启动。一个是用tracd来启动daemon监听端口,一个还是用Apache。

如果上面的/home/test设置正常了。使用:

代码: 全选

tracd -p 8080 /home/test
启动好了。浏览器下输入:http://localhost:8080/test
就可以访问了。

Apache2下设置和subversion类似:

代码: 全选

ScriptAlias /test /usr/share/trac/cgi-bin/trac.cgi
<Location "/test">
    SetEnv TRAC_ENV "/home/test"
</Location>
重启Apache2。浏览器下输入:http://localhost/test

会有同样的效果。

有管理就有权限控制,会用Apache的应该没有难度,有关这个具体见官方地址:

http://trac.edgewall.org/wiki/TracCgi

这个地址的内容更新的还是很快、很仔细的,想好好用Trac的仔细看看。

Trac有汉化包哦,感谢那个汉化的人,来,下载:

http://trac.edgewall.org/attachment/wik ... 0.4_cn.zip

templates和htdocs覆盖 /usr/share/trac 目录下的文件。

trac目录下的python原文件,覆盖 /usr/share/python-support/trac/trac 目录下的文件。界面汉化的还可以。

有了SVNManger管理subversion仓库更方便了。有了Trac更方便团队开发了,其实一个人开发也很需要的……

发个图看看Trac解析subversion代码库的效果。

太多的图我就不抓了,太晚了,得睡了。:)

写完收工咯。ubuntu中文论坛首发,转载请注明 Ubuntu中文论坛。谢谢。
附件
Screenshot-Changeset 19 - cetus - Trac - Mozilla Firefox.png
aqing99
帖子: 5
注册时间: 2007-12-26 17:11

#2

帖子 aqing99 » 2007-12-27 14:16

不错啊
头像
lwaterl
帖子: 379
注册时间: 2007-08-24 17:46

#3

帖子 lwaterl » 2008-01-05 0:21

支持一下!
summertie
帖子: 1
注册时间: 2008-03-20 12:43

#4

帖子 summertie » 2008-03-20 12:49

解压缩时提示:压缩文件格式未知或数据已经被损坏
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#5

帖子 skyx » 2008-03-20 13:17

:lol:
no security measure is worth anything if an attacker has physical access to the machine
woodyang
帖子: 1
注册时间: 2007-11-07 22:23

#6

帖子 woodyang » 2008-03-21 17:31

楼主啊! 帮帮忙 我按照你的配置咋就没办法安装 VersionControl_SVN-0.3.0alpha1 呢? 是DEBIAN LINUX
hz2580
帖子: 1
注册时间: 2007-01-14 19:05

要怎样安装VersionControl_SVN-0.3.0alpha1.tgz

#7

帖子 hz2580 » 2008-06-27 21:57

svnadmin@svn:~$ sudo pear install VersionControl_SVN-0.3.0alpha1.tgz
Ignoring installed package pear/VersionControl_SVN
Nothing to install
svnadmin@svn:~$
回复