Ubuntu server10.10下安装配置SVN

sufjan 2011-07-05

第一个版本(测试是可以用的):

 

1、安装subversion服务器和apache2服务器

sudoapt-getinstallsubversionsubversion-tools

sudoapt-getinstallapache2

sudoapt-getinstalllibapache2-svn

2、配置subversion服务器

1>添加用户组

sudoaddgroupsubversion

2>把www-data用户添加进subversion组

sudousermod-Gsubversion-awww-data

3>在home下面建立svn目录,用来存放不同的svn仓库

sudomkdir/home/svn

4>新建一个目录/home/svn/java-projects

sudomkdir/home/svn/java-projects

5>为这个目录授权,把subversion组的用户添加进去

sudochown-Rwww-data:subversion/home/svn/java-projects

6>创建一个新的svn仓库

sudosvnadmincreate/home/svn/java-projects

7>赋予该svn仓库可读写权限

sudochmod-Rg+rws/home/svn/java-projects

8>在指定的位置增加用户帐号与密码的文件

sudohtpasswd-c/etc/subversion/passwdthinksoar

上面语句是创建一个新的passwd文件,里面默认添加一个thinksoar帐号,回车后,会2次要求输入密码

当需要新增一个svn用户时,千万记得,要去除-c这个选项,否则会创建一个新的passwd覆盖原有的文件

并且会把thinksoar这个帐号给去除

正确的语句是:sudohtpasswd/etc/subversion/passwddaihaixiang

修改用户密码:

sudohtpasswd/etc/subversion/passwddaihaixiang

删除用户:(要用大写的D)

sudohtpasswd-D/etc/subversion/passwddaihaixiang

9>配置svn仓库java-projects的配置文件

sudopico/nano/home/svn/java-projects/conf/svnserve.conf

这里面把下面几行前面的#注释去除

#[general]

#password-db=passwd

#authz-db=authz

3、配置apache2

sudopico/etc/apache2/mods-available/dav_svn.conf

在最下面,增加以下配置

<Location/svn/java-projects>

DAVsvn

SVNPath/home/svn/java-projects

AuthTypeBasic

AuthName"thinksoarsubversionrepository"

AuthUserFile/etc/subversion/passwd

AuthzSVNAccessFile/home/svn/java-projects/conf/authz

Requirevalid-user

</Location>

解释:thinksoarsubversionrepository这里的文字是出现在弹出的对话框上面的文字,可任意设置

4、最后一步,配置svn仓库里面的授权文件和密码文件

1>授权文件配置

sudopico/home/svn/java-projects/conf/authz

先配置groups组,把刚才在第二步,第八小节那里增加的用户分配到不同的组,比如:

把thinksoar分配到admin组,组名可以任意自己取,把daihaixiang用户分配到test组,

然后在svn仓库java-projects的[/]根目录那里,配置相应的读写权限,r表示只读,w表示只写,rw表示可读写

最后那句是表示其他用户只读,因为可能在passwd文件里面还有其他的用户。
(注意行开始不要有多余空格)

[aliases]

[groups]

admin=thinksoar

test=daihaixiang

[/]

@admin=rw

@test=rw

*=r

去除注释后,把上面的文字贴进去。

2>密码文件配置

sudopico/home/svn/java-projects/conf/passwd

[users]

daihaixiang=daihaixiang

thinksoar=thinksoar

在java-projects仓库里面,有多少用户使用,就在这里添加多少个用户。密码可以是明文的

至此,就可以通过http进行访问svn了

http://192.168.203.129/svn/java-projects/

提示输入帐号密码,用绿毛龟软件也可以进行提交和检出了。

当然,你也可以通过svn协议、https等协议进行访问,需要做一些配置

下面继续讲如何配置svn协议和https协议进行访问:

svn协议配置:

启动daemon服务:在$下敲 sudo svnserve -d --foreground -r /home/,想办法弄成服务器启动直接启动

这样,就可以svn co svn://192.168.203.129/svn/java-projects/ 这样访问了

第二个版本,看起来更详细,也收下了:

 

 第一步:安装apache2  libapache2-svn subversion

sudoapt-getinstallapache2

sudoapt-getinstallsubversion

sudoapt-getinstalllibapache2-svn

安装完后按照提示

Run'/etc/init.d/apache2restart'toactivatenewconfiguration!

重启apache2

第二步:创建SVN库和项目

sudomkdir/home/svn//创建SVN库

sudosvnadmincreate/home/svn/project//创建项目

第三步:创建组并添加成员

sudoaddgroupsubversion//创建一个叫subversion的组为拥有仓库所在的目录

系统提示:正在添加组"subversion"(GID1001)...

完成。

sudousermod-Gsubversion-awww-data//将自己和“www-data”(Apache用户)加入组成员中

查看:more/etc/group|grepsubversion

系统提示:subversion:x:1001:www-data

第三步:修改项目权限

sudochown-Rroot:subversion/home/svn/project

sudochmod-Rg+rws/home/svn/project//赋予组成员对所有新加入文件仓库的文件拥有相应的权限

查看txn-current-lock文件的权限和用户以及组信息

ls-l/home/svn/myproject/db/txn-current-lock

系统提示:-rw-rwSr--1rootsubversion02011-01-2517:47/home/svn/project/db/txn-current-lock

第四步:通过命令访问库

sudosvncofile://lodalhost/home/svn/project//第一种方法,知道主机名时用

sudosvncofile:///home/svn/project//第二种方法,当不确定主机命时用,这用的是file:///,三个斜杠

系统提示:取出版本0。

己可以取出版本,说明SVN服务器己正常运行,下面试从webdav访问

第五步:配置apache2

修改/etc/apache2/mods-available/dav_svn.conf

sudovim/etc/apache2/mods-available/dav_svn.conf

加入以下代码:

================================

<Location/svn/project>

DAVsvn

SVNPath/home/svn/myproject

AuthTypeBasic

AuthName"projectsubversionrepository"

AuthUserFile/etc/subversion/passwd

<LimitExceptGETPROPFINDOPTIONSREPORT>

Requirevalid-user

</LimitExcept>

</Location>

如果需要用户每次登录时都进行用户密码验证,就将<LimitExceptGETPROPFINDOPTIONSREPORT>与</LimitExcept>两行注释掉

加入代码后重启apache2

=================================

第六步:建立/etc/subversion/passwd文件,这个文件里包含了用户授权的详细信息

添加用户

sudohtpasswd-c/etc/subversion/passwd[user_name]//第一次添加用户使用参数“-c”以后再添加就不用了

访问文件仓库

 svn co http://hostname/svn/project project --username [username]

OK!这次通过web页面访问到版本库了,下面试一下导入版本库

导入版本库

把/var/www/下的内容导入版本号中:

sudosvnimport-m"第一次导入"/var/wwwhttp://192.168.0.5/svn/project

========================================

系统提示:

认证领域:<http://192.168.0.5:80>myprojectsubversionrepository

“root”的密码:

认证领域:<http://192.168.0.5:80>myprojectsubversionrepository

用户名:test

“test”的密码:

增加/var/www/index.html

-----------------------------------------------------------------------

注意!你的密码,对于认证域:

<http://192.168.0.5:80>myprojectsubversionrepository

只能明文保存在磁盘上!如果可能的话,请考虑配置你的系统,让Subversion

可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/home/icedot/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,

来避免再次出现此警告。

-----------------------------------------------------------------------

保存未加密的密码(yes/no)?

请输入 'yes' 或 'no': yes

提交后的版本为 1。

==========================================

最后在windows下通过TortoiseSVN及web页面访问,成功。

==========================================

试验过程中曾经出现过的错误

检出版本库报错:

sudosvncohttp://192.168.0.5/home/svn/project

svn:方法OPTIONS失败于“http://192.168.0.5/home/svn/myproject”:200OK(http://192.168.0.5)

这个报错在网上查了很久,没什么可借鉴的资料,模糊的觉的可能是说用户名和权限不对,以待后面确认

sudosvncofile://localhost/home/svn/project

svn:无法为URL打开ra_local会话

svn:无法打开版本库“file://localhost/home/svn/projcet”

这个报错应该和上一个报错是一样的,用户的权限的问题性大一点,以待试过后再确认

相关推荐

leehbhs / 0评论 2020-03-04