一、yum安装
rpm -qa subversion //检查是否安装了低版本的SVN yum remove subversion //如果存储旧版本,卸载旧版本SVN
开始安装
yum -y install subversion svnserve --version //查看版本
创建版本仓库
mkdir -p /data/svn/project svnadmin create /data/svn/project/
查看/data/svn/project 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。
配置权限
cd /data/svn/project/conf/ //进入配置目录 vim svnserve.conf //编辑配置文件
vim passwd //编辑密码文件
vim authz
举例:
[groups] project_p = pm project_s = server1,server2,server3 project_c = client1,client2,client3 project_t = test1,test1,test1 [project:/] @project_p = rw * = [project:/server] @project_p = rw @project_s = rw * = [project:/client] @project_p = rw @project_c = rw * = [project:/doc] @project_p = rw @project_s = r @project_c = r @project_t = r * = 说明:以上信息表示,只有project_p用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限, rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。 这个很重要,一定要加上!
配置防火墙
vi /etc/sysconfig/iptables //配置防火墙 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -dport 3690 -j ACCEPT //加入此行代码
service iptables restart //重启防火墙
另,有开启3690端口的命令,在终端输入以下命令: 1>iptables -I INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT 2>iptables -I OUTPUT -o eth0 -p tcp --sport 3690 -j ACCEPT 然后保存:/etc/rc.d/init.d/iptables save 在看看是否已经有了3690端口的开放权限:/etc/init.d/iptables status
svnserve -d -r /data/svn/ //启动SVN netstat -ln | grep 3690 //查看端口状态
打开本地Windows客户端检出
客户端提交文件测试
然后新创建一个WEB目录,实现修改WEB程序文件。 在这里把/data/www/作为指定WEB目录
svn co svn://127.0.0.1/project /data/www/
客户端提交了版本修改之后,在之前的公司每次都是需要执行svn update命令,而且不小心会出现开发冲突。
下面来配置SVN钩子,来实现自动更新服务器WEB目录文件
cd /data/svn/project/hooks/ vim post-commit
#!/bin/sh export LANG=zh_CN.UTF-8 SVN=/usr/bin/svn #这里填写你的svn程序目录 WEB=/data/www/ #这里填写你的web程序目录 $SVN update $WEB --username user1 --password password123456 #客户端的用户名和密码,在svn配置文件里配置的信息
chmod 777 post-commit
最后重启svn!客户端提交测试,查看WEB目录文件自动更新成功!
二、非yum安装
wget http://subversion.tigris.org/downloads/subversion-1.6.9.tar.gz wget http://subversion.tigris.org/downloads/subversion-deps-1.6.9.tar.gz #解压 tar zxvf subversion-1.6.9.tar.gz tar zxvf subversion-deps-1.6.9.tar.gz #编译 cd subversion-1.6.9 ./configure --prefix=/usr/local/svn --without-berkeley-db make make install
安装过程中可能遇到的问题:
1、提示OpenSSL缺失
configure: error: We require OpenSSL; try --with-openssl
解决方法:编译前先安装了一个openssl即可
cd /usr/local/src wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz tar -zxvf openssl-1.0.0a.tar.gz cd openssl-1.0.0a ./config ./config -t make depend make make test make install
make test 的时候本人出现过以下错误,本人没有去理会,继续make install。
yum -y install openssl #为了放心,抱着试一试的态度,执行了yum安装命令
安装之后会在/usr/local下生成一个ssl目录,编译SVN时加上openssl路径即可
./configure --prefix=/usr/local/svn --without-berkely-db --with-openssl=/usr/local/ssl/
2、 zlib依赖缺失
configure配置SVN时可能提示如下错误信息:
configure: error: subversion requires zlib
解决办法:安装zlib
百度云下载地址:http://pan.baidu.com/s/1qYfM7Ha
cd /usr/local/src 这里我上传百度网盘了 。也可以直接百度 zlib-1.2.8.tar.gz ,下载上传至指定目录即可 tar -xvzf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure make make install
3、expat依赖缺失
configure: error: no XML parser was found: expat or libxml 2.x required
解决办法:安装expat
cd /usr/local/src wget http://nchc.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz tar -zxvf expat-2.1.0.tar.gz cd expat-2.1.0 ./configure make make install
再次执行
./configure --prefix=/usr/local/svn --without-berkely-db --with-openssl=/usr/local/ssl/
4、在make && make install 时出现报错
make[1]: Leaving directory `/usr/local/src/subversion-1.6.9/serf‘
解决办法:添加 --without-serf 参数重新编译subversion即可:
./configure --prefix=/usr/local/svn --without-berkely-db --with-openssl=/usr/local/ssl/ --without-serf
make && make install
安装完毕之后查看一下SVN版本
/usr/local/svn/bin/svnserve --version
OK!咱的SVN都可以看到版本了,证明没问题,可以创建仓库之类的操作了。和yum配置的方式差不多,只不过有时候命令行要有所改动了,
比如yum安装之后是这样创建仓库:svnadmin create /data/svn/project/
但是在编译安装的需要指定目录了:/usr/local/svn/bin/svnadmin create /data/svn/project/
mkdir -p /data/svn/project /usr/local/svn/bin/svnadmin create /data/svn/project/ cd /data/svn/project/
接下来的配置步骤就略了,可以参考上面yum安装的配置方式,最后启动SVN服务还是需要注意的
/usr/local/svn/bin/svnserve -d -r /data/svn/
完毕~!