前两天用编译的方式在centos下安装subversion,比较麻烦。今天在线安装了一下,比较方便,也少些依赖的问题。命令:yum install subversion。官网也有介绍:http://subversion.apache.org/packages.html.
一 一个仓库
1 安装完后,就建仓库。
mkdir /opt/svn/repos
svnadmin create /opt/svn/repos
2 修改配置
创建好仓库后,在仓库目录下(/opt/svn/repos)有个conf文件夹,里面放置了svn的一些认证文件,其中包括,authz, passwd, svnserve.conf
(1)首先修改passwd,设置用户密码
vi passwd
配置以下:
[users]
# harry = harryssecret
# sally = sallyssecret
dylan = dylan
zhanshang = 123
意思是添加了两个用户dylan,zhanshang,密码分别为dylan,123
(2)修改authz,设置访问权限
vi authz
配置以下:
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
manager = dylan
visitor = zhanshang
# [/foo/bar]
# harry = rw
# &joe = r
# * =
[/] (这里是[/]不是[repos:/],如果这里是[repos:/],下面启动svn用svnserve -d -r /opt/svn,访问需要用svn://ip/repos)
#@harry_and_sally = rw
# * = r
@manager = rw
@visitor = r
(3)修改 svnserve.conf,配置svn
vi svnserve.conf
具体配置如下:
[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
anon-access = none ##这里none表示要登录认证才可以访问 (这里anon-access前不能有空格,否则访问不成功,下同)
auth-access = write ##认证通过后有write权限
### The password-db option controls the location of the password
### database file. Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd ##默认在当前文件的同目录下找passwd文件,如果文件在其他地方,可以配置绝对路径
### The authz-db option controls the location of the authorization
### rules for path-based access control. Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file. If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz ##默认在当前文件的同目录下找passwd文件,如果文件在其他地方,可以配置绝对路径
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is repository's uuid.
# realm = /
3 建好仓库,启动svn
svnserve -d -r /opt/svn/repos
4 访问
svn://ip (不用加repos)
二 多个仓库
上面只是创建一个仓库repos,起一个svnserve实例也可以同时管理多个仓库
1 创建仓库
mkdir -p /opt/svn/repos1
mkdir -p /opt/svn/repos2
svnadmin create /opt/svn/repos1
svnadmin create /opt/svn/repos2/
mkdir /opt/svn/conf (用于存放公共的passwd,authz文件)
2 配置
mv /opt/svn/repos1/conf/passwd /opt/svn/conf
mv /opt/svn/repos1/conf/authz /opt/svn/conf
rm -rf /opt/svn/repos2/conf/passwd
rm -rf /opt/svn/repos2/conf/authz
分别修改/opt/svn/conf下的passwd和authz文件,同上.注意authz的配置,如下:
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
manager = dylan
visitor = zhanshang
# [/foo/bar]
# harry = rw
# &joe = r
# * =
#[/] ##注释,不再是[/]
#@harry_and_sally = rw
# * = r
#@manager = rw
#@visitor = r
[repos1:/] ##这里不再是[/],而是[repos1:/]
@manager = rw
@visitor = r
[repos2:/] ##这里不再是[/]而是[repos2:/]
@manager = rw
@visitor = r
3 分别修改/opt/svn/repos1/conf和/opt/svn/repos2/conf下的svnserve.conf,内容如下:
[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
anon-access = none
auth-access = write
### The password-db option controls the location of the password
### database file. Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = ../../conf/passwd ##这里是相对路径,指向/opt/svn/conf下的passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control. Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file. If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = ../../conf/authz ##这里是相对路径,指向/opt/svn/conf下的passwd
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is repository's uuid.
# realm = My First Repository
4 启动svn实例
svnserve -d -r /opt/svn/(这里的目录是/opt/svn/而不是/opt/svn/repos,网上很多资料定位到了/opt/svn/repos,亲测,报认证失败)
5 访问:
svn://ip/repos1
svn://ip/repos2
(这里访问要加上repos1或repos2,在配置一个仓库时,只需要访问/根目录即可)