转:linux 安装subversion(svnserve方式)
原文地址:http://www.shiranyu.com/?p=75
?
以前装过一次subversion,使用的是apache方式(相关文章:http://www.shiranyu.com/?p=62),这次因为服务器装apache不方便,所以再装一次不带apache方式的,只需要单独的subversion即可。
一、安装subversion
下载subversion:http://subversion.tigris.org/downloads/subversion-1.6.13.tar.gz
下载subversion的依赖包subversion-deps:http://subversion.tigris.org/downloads/subversion-deps-1.6.13.tar.gz
tar -xzvf subversion-1.6.13.tar.gztar -xzvf subversion-deps-1.6.13.tar.gz(两个包都会自动解压缩到文件夹subversion-1.6.13/)cd subversion-1.6.13./configure --prefix=/usr/local/subversionmake cleanmakemake install
?
安装好之后,可以通过/usr/local/subversion/bin/svnserve –version命令查看是否安装成功。出现如下信息则是成功了:
svnserve, version 1.6.13 (r1002816) compiled Nov 4 2010, 23:13:09Copyright (C) 2000-2009 CollabNet.Subversion is open source software, see http://subversion.tigris.org/This product includes software developed by CollabNet (http://www.Collab.Net/).The following repository back-end (FS) modules are available:* fs_fs : Module for working with a plain file (FSFS) repository.Cyrus SASL authentication is available.
二、建立库文件
创建用户svnroot(最好不要让root用户参与到svn的权限管理和日常的运行和维护工作中来)
adduser?svnroot
passwd?svnroot
然后在svnroot用户下(su?svnroot)运行以下命令:
cd /usr/local/subversion/1.创建文件夹mkdir repository2.创建版本库,指定数据存储为 FSFSbin/svnadmin create --fs-type fsfs /usr/local/subversion/repository/3.创建所需管理的项目的临时目录:mkdir tmpcd tmp/mkdir trunk tags branchescd ..然后将所需管理的项目文件复制到trunk目录下4.导入刚创建的所需要管理的项目(tmp目录下的文件)到创建的版本库repository里面bin/svn import tmp/ file:///usr/local/subversion/repository/ –m "first import"提交后的修订版本为1。5.修改版本库文件的权限chmod 770 repositorychmod -R g+w repository三、用户管理
1.修改版本库repository的配置文件
cd /usr/local/subversion/repository/confvim svnserve.conf
确保svnserve.conf文件里面有如下信息:
anon-access = none
auth-access = write
password-db =passwd
authz-db = authz
realm = repository
其他的不用修改
2.修改版本库repository的用户文件
vim passwd
文件格式如下:
[users]
<用户1> = <密码1>
<用户2> = <密码2>
必须有[users]这一行。下面再列出要访问svn的用户,每个用户一行,后面是密码。示例:
[users]
shiran = password1
shiranyu = password2
3.修改版本库repository的用户访问权限文件
vim authz
文件格式如下:
用户组格式:
[groups]
<用户组名> = <用户1>,<用户2>
1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
方括号 [] 内如果为 / 就表示是全部版本库。可以用 * 表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups]
repository = shiran,shiranyu //repository用户组下有shiran,shiranyu两个用户
[/]?? //此处表示全部版本库
@ repository = rw //此处表示repository用户组
[repository:/]? //此处表示repository版本库下面的所有项目
shiran = rw
* = rw? //此处表示所有用户具有rw权限
[repository:/project]? //此处表示repository版本库下面的project项目
shiran = rw
[repository:/project/trunk]? //此处表示repository版本库下面的project项目中的trunk文件夹
shiran = rw
四、启动与停止subversion
启动subversion:
/usr/local/subversion/bin/svnserve -d -r /usr/local/subversion/
-d表示以daemon方式运行(后台运行)
-r /usr/local/subversion/repository/指定根目录是/usr/local/subversion/
?
停止subversion:
?找到svnserve的进程号
ps -ef | grep svnserve
再kill掉
kill "subversion的进程号"
?
PS:顺带记一下,subversion使用的端口是3690。
访问方式为:svn://xxxx(地址)/repository(访问repository库)