离线安装svn
最近在折腾SVN的安装和配置。尽管Google Code已经有完美的4GB空间的SVN服务,Git也有完善的Git工具,但有时候需要搭建一个私人的版本库。
SVN其实就是Subversion,分为服务器端和客户端。本次折腾是记录在服务器端的安装过程。
系统环境说明如下:
操作系统: Centos6.4 x86 SVN: subversion-1.8.0 Apache: httpd-2.4.6
如开启防火墙,则需添加如下列的规则以放行svn的3690端口
iptables -A INPUT -p tcp --dport 3690 -j ACCEPT iptables save
检查是否安装了低版本的SVN
rpm -qa | grep subversion
一般返回的默认版本:
subversion-1.6.11-9.el6_4.i686
卸载旧版本SVN
yum remove subversion
rpm -e subversion --nodeps
下载、编译、安装的步骤
1、编译安装httpd-2.4.6
下载并解压依赖包apr-1.4.8、apr-util-1.5.2
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.4.8.tar.gz wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.2.tar.gz tar -zxf apr-1.4.8.tar.gz tar -zxf apr-util-1.5.2.tar.gz
下载并解压httpd-2.4.6
wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.6.tar.gz tar -zxf httpd-2.4.6.tar.gz
移动apr-1.4.8、apr-util-1.5.2到httpd-2.4.6的srclib目录下
mv apr-1.4.8 httpd-2.4.6/srclib/apr mv apr-util-1.5.2 httpd-2.4.6/srclib/apr-util
编译httpd-2.4.6
cd httpd-2.4.6 ./configure --prefix=/usr/local/apache --enable-so --enable-dav --enable-deflate=shared --enable-ssl=shared --enable-expires=shared --enable-headers=shared --enable-rewrite=shared --enable-static-support --with-included-apr --enable-modules=all --enable-mods-shared=all --with-mpm=prefork make && make install
2、编译安装subversion-1.8.0
编译安装sqlite3.7.17
wget http://www.sqlite.org/2013/sqlite-autoconf-3071700.tar.gz tar -zxf sqlite-autoconf-3071700.tar.gz cd sqlite-autoconf-3071700 ./configure make && make install
下载svn源码包并安装
wget http://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.8.0.tar.gz tar -zxf subversion-1.8.0.tar.gz cd subversion-1.8.0 ./configure --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache --with-sqlite=/usr/local make && make install
检查安装是否成功
svnserve --version
返回值:
svnserve, version 1.8.0 (r1490375) compiled Jul 23 2013, 21:32:09 on i686-pc-linux-gnu Copyright (C) 2013 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository back-end (FS) modules are available: * fs_fs : Module for working with a plain file (FSFS) repository. Cyrus SASL authentication is available.
代码库创建
mkdir -p /opt/svn/repositories svnadmin create /opt/svn/repositories
执行上面的命令后,自动建立repositories库,查看/opt/svn/repositories 文件夹发现包含了conf,db,format,hooks,locks, README.txt等文件,说明一个SVN库建立完成。
配置代码库
进入上面生成的文件夹conf下,进行配置
cd /opt/svn/repositories/conf
用户密码passwd配置
vi passwd
passwd文件的内容如下:
### This file is an example password file for svnserve. ### Its format is similar to that of svnserve.conf. As shown in the ### example below it contains one section labelled [users]. ### The name and password for each user follow, one account per line. [users] # harry = harryssecret # sally = sallyssecret test = 123456789
权限控制authz配置
vi authz
目的是设置哪些用户可以访问哪些目录,authz文件的内容如下:
### This file is an example authorization file for svnserve. ### Its format is identical to that of mod_authz_svn authorization ### files. ### As shown below each section defines authorizations for the path and ### (optional) repository specified by the section name. ### The authorizations follow. An authorization line can refer to: ### - a single user, ### - a group of users defined in a special [groups] section, ### - an alias defined in a special [aliases] section, ### - all authenticated users, using the '$authenticated' token, ### - only anonymous users, using the '$anonymous' token, ### - anyone, using the '*' wildcard. ### ### A match can be inverted by prefixing the rule with '~'. Rules can ### grant read ('r') access, read-write ('rw') access, or no access ### (''). [aliases] # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average [groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe # [/foo/bar] # harry = rw # &joe = r # * = # [repository:/baz/fuz] # @harry_and_sally = rw # * = r [/] test = rw
设置[/]代表根目录下所有的资源
服务svnserve.conf配置
vi svnserve.conf
svnserve.conf文件的内容如下:
[general] #匿名访问的权限,可以是read,write,none,默认为read anon-access=none #使授权用户有写权限 auth-access=write #密码数据库的路径 password-db=passwd #访问控制文件 authz-db=authz #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字 realm=/opt/svn/repositories
启动svn服务
svnserve -d -r /opt/svn/repositories
查看SVN进程
ps -ef|grep svn|grep -v grep
返回
root 20850 1 0 Jul24 ? 00:00:00 svnserve -d -r /opt/svn/repositories
查看SVN监听的端口
netstat -ln |grep 3690
停止启动SVN
killall svnserve #停止 svnserve -d -r /opt/svn/repositories #启动
目前最流行的svn客户端非TortoiseSVN莫属
posted on 2015-06-09 17:22 Zachary_wiz 阅读(1772) 评论(0) 编辑 收藏 举报