Linux下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服务端就配置完成了