分类: LINUX
2011-07-20 14:19:37
首先,subversion是基于apache服务器的,所以首先需要安装apache
$ sudo apt-get install apache2
接着,是安装 subversion。
通常大家习惯 直接 apt-get install subversion,或者直接在新立德里面点击,但光这样是不行的,这样会缺少库。正确的方法应该还要安装libapache2-svn。
$ sudo apt-get install subversion $ sudo apt-get install libapache2-svn
或者去 下载相应的版本
然后,创建SVN仓库。
先要使自己和局域网计算机能够具有访问的权限,这也是经常容易出错的地方。添加一个叫subversion的组,然后把自己和网络访问加入其中。
$ sudo addgroup subversion $ sudo usermod -G subversion -a www-data 你可以通过 $ cat /etc/group|grep subversion 来查看是否更改正确
注销后自己就成为subversion组的一员了。假设你要设置的SVN仓库路径是/home/svn
$ sudo mkdir /home/svn $ cd /home/svn $ sudo mkdir project $ sudo chown -R root:subversion project
下面的命令用于创建 SVN 文件仓库:
$ sudo svnadmin create /home/svn/project
赋予组成员对所有新加入文件仓库的文件拥有相应的权限:
$ sudo chmod -R g+rws project
这样,一个SVN server就基本搭建好了,但这样访问连密码都不需要,只要知道路径就OK了,所以就想到了用WebDAV协议来访问(http://),本想用https://的但考虑到局域网内不需要这么严密,就避繁就简了。
要通过 WebDAV 协议访问 SVN 文件仓库,必须配置 Apache 2 Web 服务器。加入下面的代码片段到 /etc/apache2/mods-available/dav_svn.conf中:
DAV svn SVNPath /home/svn/project AuthType Basic AuthName "project subversion repository" AuthUserFile /etc/subversion/passwd Require valid-user 当添加了上面的内容,必须重新起动 Apache 2 Web 服务器,输入下面的命令:
sudo /etc/init.d/apache2 restart
接下来,创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,可以执行下面的命令:
$ sudo htpasswd -c /etc/subversion/passwd user_name
它会提示你输入密码,当你输入了密码,该用户就建立了。“-c”选项表示创建新的/etc/subversion/passwd文件,所以user_name所指的用户将是文件中唯一的用户。如果要添加其他用户,则去掉“-c”选项即可:
$ sudo htpasswd /etc/subversion/passwd other_user_name
这样以后,就可以通过下面的命令来访问文件仓库:
$ svn co myproject --username user_name
它会提示你输入密码。你必须输入您使用 htpasswd 设置的密码。当通过验证,项目的文件就被签出了。或者在客户机上使用GUI界面的SVN工具,比如TortoiseSVN(windows)或者 esvn (linux) 来访问。另外很多IDE,比如NetBeans, eclipse, anjuta, VS 都是有SVN插件的,这为开发也提供了相当的便利。
经验教训:
搭好后一直出现本机可以访问,局域网其他机器无法访问的情况,查了好多资料,也没有解决。最后一惊醒发现linux下也有防火墙,刚装系统的时候设置成了禁止外部访问,这就悲剧了。。。不过也因此知道了很多apache在ubuntu环境下的特点,比如httpd.conf下是空的之类的,默认的服务器访问地址是/var/www。
如果想更改访问目录,首先在/etc/apache2/sites-available/下面复制一份default并重命名,如:$ sudo cp /etc/apache2/sites-available/default/etc/apache2/sites-available/svn 修改其中的DocumentRoot 和 Directory,并使用
sudo a2dissite default && sudo a2ensite svn 来开启新的网页目录。