linux下svn服务器安装

2017/06/11 svn

##svn服务器搭建 1.SVN服务安装

yum install subversion

2.创建SVN代码仓库

mkdir /data/svn
svnadmin create /data/svn/repo

3.配置svn帐户

cd /data/svn/repo/conf
vi passwd
增加一行(svn帐户,密码)
admin 123456
test 123456

4.SVN权限控制 目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

[groups]            #组
admin = admin       #创建一个admin组,将用户加入到组

[/]                 #根目录权限设置(就是“svn”这个文件夹)
admin = rw            #admin对svn下的所有版本库有读写权限

[repo:/]            #repo:/,表示对repo版本库下的所有资源设置权限
@admin = rw         #admin组的用户对repo版本库有读写权限
test =r

[repo2:/occi] #表示对版本库repo2中的occi项目设置权限

[repo2:/occi/aaa] #表示对版本库2中的occi项目的aaa目录设置权限  
#权限主体可以是用户组、用户或*,用户组在前面加@,*#表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
#以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

5.配置svn服务

vi svnserver.conf

追加以下内容

[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#使授权用户有写权限
auth-access = write
#密码数据库的路径
password-db = passwd
#访问控制文件
authz-db = authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm = /data/svn/repo

以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

6.iptable防火墙配置

vi /etc/sysconfig/iptables
增加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存退出
重启防火墙
service iptables restart

7.启动SVN服务

rpm -ql subversion
查看SVN安装bin目录,默认/usr/bin
cd /usr/bin
启动SVN
./svnserve -d -r /data/svn/         #指定SVN根目录

查看是否启动
ps -ef |grep svn
root     17270     1  0 11:06 ?        00:00:00 ./svnserve -d -r /data/svn/
root     17272     1  0 11:06 ?        00:00:00 grep --color=auto svn

如果已经有svn在运行,可以换一个端口运行
./svnserve -d -r /data/svn/ --listen-port 3391

8.查看SVN端口

netstat -ntlp |grep svn

tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      17270/./svnserve   

9.停止SVN

kill 进程号

10.使用import导入文件

svn import /mnt/ file:///data/svn/repo/-m "注释"

11.checkout导出文件

svn checkout svn://127.0.0.1/repo

注意!密码只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion 可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,来避免再次出现此警告。
编辑vim /root/.subversion/servers
找到下行去掉#号将on改为yes, store-plaintext-passwords = no

其他遇到的问题

svn: Can't convert string from 'UTF-8' to native encoding 

解决办法很简单,正确设置当前系统的 locale:

export LC_CTYPE="zh_CN.UTF-8"
注意,根据你的系统字符集设置变量,如果 zh_CN.UTF-8 不行,有可能要改成 GB2312:
export LC_CTYPE="zh_CN.GB2312"
另外,看别人的帖子,有的变量名不同,用的是:
export LANG="zh_CN.UTF-8"

若设置之后出现

svn: warning: cannot set LC_CTYPE locale
svn: warning: environment variable LC_CTYPE is zh_CN.GB2312
svn: warning: please check that your locale name is correct

解决方法很简单,修改/etc/profile:

sudo vi /etc/profile
加入一行:
export LC_ALL=C

source /etc/profile

到此,SVN服务端就配置完成了


Search

    Table of Contents