红联Linux门户
Linux帮助

Ubuntu安装SVN纪实

发布时间:2014-12-20 09:24:53来源:linux网站作者:linux人

1, 通过命令安装SVN服务器和apache:
$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn
$ sudo apt-get install apache2
安装時出现错誤:
无法发起与 8000:80 (0.0.31.64) 的连接 - connect (22: Invalid argument)
无法下载 http://cn.archive.Ubuntu.com/ubuntu/pool/main/a/apache2/apache2-mpm-worker_2.2.14-5ubuntu8.3_i386.deb  无法发起与 8000:80 (0.0.31.64) 的连接 - connect (22: Invalid argument)
无法下载 http://cn.archive.ubuntu.com/ubuntu/pool/main/a/apache2/apache2_2.2.14-5ubuntu8.3_i386.deb  无法发起与 8000:80 (0.0.31.64) 的连接 - connect (22: Invalid argument)
解决办法: 发现实实际上访问网址文件是能够下载到的,于是手动将文件下载到,然后放到/var/cache/apt/archives目录里, 重新输入安装命令即可.


2. 创建 SVN 仓库
许多位置都可以放置 Subversion 文件仓库,其中两个最常用的是:/usr/local/svn 以及 /home/svn。为了在下面的描述中简单明了,我们假设您的 Subversion 文件仓库放在 /home/svn,并且你的项目名称是简单的“myproject”。
同样的,也有许多常用的方式设置文件仓库的访问权限。然而,这也是安装过程中最经常出现错误的地方,因此我们会对此进行一个详细说明。典型的情况 下,您应该创建一个名为“Subversion”的组来拥有文件仓库所在的目录。下面是一个快速的操作说明,有关内容请参考相关文档的详细说明:
在 Ubuntu 菜单上选择“系统->系统管理->用户和组”;
切换到“组”标签;
点击“添加组”按钮;组名为“subversion”;
将您自己和“www-data”(Apache 用户)加入组成员中;
点击“OK”以确认修改,关闭该程序。
您需要注销然后再登录以便您能够成为 subversion 组的一员,然后就可以执行签入文件(Check in,也称提交文件)的操作了。

现在执行下面的命令
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo chown -R root:subversion myproject
$ sudo chmod -R g+rws myproject
最后的一条命令赋予组成员对所有新加入文件仓库的文件拥有相应的权限。
下面的命令用于创建 SVN 文件仓库:
$ sudo svnadmin create /home/svn/myproject


3, 配置通过 WebDAV 协议访问(http://)
要通过 WebDAV 协议访问 SVN 文件仓库,您必须配置您的 Apache 2 Web 服务器。您必须加入下面的代码片段到您的 /etc/apach2/apache2.conf 中:
<Location /svn>
DAV svn
SVNPath /home/svn/myproject
AuthType Basic
AuthName "myproject subversion repository"
AuthUserFile /etc/subversion/passwd
Require valid-user
</Location>


4, 启动apache,
出现错误提示:
apache2: bad user name ${APACHE_RUN_USER}
解决办法:
1. 打开apache2的配置文件
#sudo gedit /etc/apache2/apache2.conf
(本来应该改envvars这个文件的,但是不知道为什么修改了不起作用)
2. 修改默认的用户名和组
找到 ${APACHE_RUN_USER} 和 ${APACHE_RUN_GROUP}
替换为自己的用户名和组,然后保存退出。
出现错误提示:
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.111 for ServerName
解决办法:
因为DNS没配置好. 如果不想配置DNS, 就在httpd.conf , 在最前加入 ServerName localhost:80 即可.
出现错误提示:
端口被占用
解决办法:
netstat -lnp|grep 80, 获得进程ID
kill ID

当您添加了上面的内容,您必须重新起动 Apache 2 Web 服务器,请输入下面的命令:
sudo /etc/init.d/apache2 restart


5, 通过自带协议访问(svn://)
当您创建了 SVN 文件仓库,您可以修改 /home/svn/myproject/conf/svnserve.conf 来配置其访问控制。
例如,您可以取消下面的注释符号来设置授权机制:
# [general]
# password-db = passwd
现在,您可以在“passwd”文件中维护用户清单。编辑同一目录下“passwd”文件,添加新用户。语法如下:
username = password
现在,您可以在本地或者远程通过 svn:// 当文 SVN 了,您可以使用“svnserve”来运行 svnserver,语法如下:
$ svnserve -d --foreground -r /home/sv
访问时出现错误:
svn: /home/svn/myproject/conf/svnserve.conf:20: Option expected
password-db = passwd这句不能有空格.


6, 创建第一个项目:
svn import TescSvn/ svn://username@localhost/myproject -m "initial import"
TescSvn是本地目录,其中必需包含trunk, branches,tags三个目录, trunk中放文件. 其他为空, "svn://username@localhost/myproject"是服务器的目录和用户名.
然后创建用户
接下来,您需要创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,您可以执行下面的命令:
htpasswd -c /etc/subversion/passwd user_name
它会提示您输入密码,当您输入了密码,该用户就建立了.

取出项目:
svn://localhost/myproject /home/hueylu/work/TescSvn2/ --username hueylu --password ****** --non-interactive


7, 推荐一个界面的SVN客户端
esvn
sudo apt-get install esvn


以上配置在ubuntu10.04通过。