Linux安装SVN
1.安装SVN
yum install subversion 从镜像下载安装svn服务器端
cd /usr/local/ //进入目录,准备创建svn目录
mkdir svn //创建一个svn目录
chmod -R 777 svn //修改目录权限为777
svnadmin create /usr/local/svn/sunny //创建一个svn版本仓库sunny(sunny可以随便起名字)
cd sunny/conf //进入sunny版本仓库下的配置文件目录
2. 配置SVN
(1)vi svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径
把
# anon-access = read
# auth-access = write
# password-db = passwd
这四行,前面的#号和空格去掉,变成
anon-access = none //改成none
auth-access = write
password-db = passwd
realm = sunny //改成自己的版本库
保存
(2)vi authz //文件,创建svn组和组用户的权限
[group]
sunny = gep,wce //创建一个sunny的组,并制定两个用户gep和wce
[/] //制定根目录下的权限
@sunny=rw //sunny组用户权限为读写
* = r //其他用户只有读权限
保存退出
(3) vi passwd //创建或修改用户密码
[users]
gep = 123456 //用户名为gep的用户的密码为123456
wce = 123456 //。。。
保存退出
3. 将SVN设置自为开机启动
vi /etc/rc.local 打开自启动文件
文件内容如下:
|
#!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
##在最后添加一行: svnserve -d -r /usr/local/svn/sunny |
4. 配置防火墙
需要配置防火墙,将SVN的端口(默认端口为3690)开放出来:
(1) 在/etc/sysconfig/iptables里添加
vi /etc/sysconfig/iptables
#添加一条配置规则,以开放3690的端口,如下所示:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3690 –j ACCEPT
(2) 重启iptables
/etc/init.d/iptables restart
(3) 看下状态
/etc/init.d/iptables status
5. 建立自动备份系统
编写自动备份脚本文件,此脚本将SVN数据用svnadmin dump工具导出到一个文件中,然后上传到远程的FTP服务器上。
脚本文件backup_svn.sh的内容如下:
|
echo 'Backup start...' cd /root/
echo 'Config parameters' REPO_NAME=sunny
echo 'Repository Name is: '$REPO_NAME WEEK_NO=`date +%w` GS_FILENAME='svn_'$REPO_NAME'_backup_'$WEEK_NO'.sb' echo $GS_FILENAME FTP_SCR_FILE=ftp.cmd.src FTP_FILE=ftp.cmd
echo 'Dump All SVN data' svnadmin dump /usr/local/svn/$REPO_NAME > $GS_FILENAME
echo 'Backup to Remote FTP Server' sed 's/GS_FILENAME/'$GS_FILENAME'/g' ftp.cmd.src > ftp.cmd ### 注意这里不能写ftp -un, 而要指明FTP命令的绝对路径,因为交互式运行环境下和cron运行环境下的ftp程序可能不是一样的。 cat ftp.cmd | /usr/kerberos/bin/ftp -un
echo 'Cleanup by removing archive' rm ftp.cmd rm $GS_FILENAME
echo 'Backup complete' |
FTP命令文件ftp.cmd.src的内容如下:
|
open 192.168.1.224 user backup bs9p bin hash put GS_FILENAME ls bye |
给backup_svn.sh文件赋予权限
chmod -R 777 backup_svn.sh
将此脚本在cron中执行。
crontab -e
|
* 3 * * * /root/backup_svn.sh |
重新加载cron配置:
service crond reload
此时建立备份系统完成。
6. 关于“svn 认证失败”的问题
在使用SVN时,如果发现“svn 认证失败”的问题,可能是以下原因造成:
a. passwd例子两边都是有空格的
username = password
这是错误的,没空格,两边都没有
b. authz例子
只写
username = rw不足够
要写
[仓库名称:/]
username = rw
c. 在eclipse环境下使用SVN客户时,若以前有相同的用户名不同的密码,要先将密码清空。
SVN数据库迁移方法一(SVN全库操作,或称SVN全局备份并恢复):
版本库数据的移植:svnadmin dump、svnadmin load
导出:
$svnadmin dump repos > dumpfile //将指定的版本库导出成文件dumpfile
新建:
$svnadmin create newrepos
导入:
$svnadmin load newrepos < dumpfile
http://blog.sina.com.cn/s/blog_5eb1a2670100l24i.html

浙公网安备 33010602011771号