首页 > 技术文章 > svn的安装和备份

RottenLeaf 2018-10-06 22:04 原文

svn的安装:

yum install subversion -y

mkdir                   /svn 创建用来存放svn版本库的目录

svnadmin create /svn/first          创建一个svn的版本库

svnsereve -d -r /svn/first           启动该版本库

 

版本库的备份:

 

svnadmin dump svn/test > svn_backfile   把具体的某个版本库(这里是“test”)重定向到某个文件中去。这样就将整个版本库备份下来了。

 

 

在新的主机上安装svn并将之前的版本库导入,同时实现利用http协议访问svn:

 

yum install subversion -y

 

mkdir /home/svn    创建用来存放svn版本库的目录

 

svnadmin create /home/svn/test    创建一个svn的版本库

 

svnadmin load /home/svn/test < svn_backfile  导入之前备份的版本库

实现利用http访问svn

 

思路:apache本身自带svn的模块——mod_dav_svn,由于Subversion需要版本化的控制,因此标准的HTTP协议不能满足需求。要让ApacheSubversion协同工作,就要使用WebDAVWeb-based Distributed Authoring and VersiongWeb分布式创作和版本控制协议。 mod_dav_san模块就是作为SubversionApache之间的接口,通过它,Apache就可以访问版本库,并且可以让客户端也使用HTTP的扩展协议WebDAV/DeltaV进行访问。

 

在安装了mod_dav_svn模块之后,只需要为版本库所在的目录进行相应的配置,并添加认证模块,就可以了。

 

配置步骤:

 

安装并启动httpdcentos6.9)

 

因为centos6默认httpd2.2没有svn模块,所以需要在编译时加入svn的功能

 

httpd-2.4 依賴于1.4+及以上版本的apr 而且版本不能太高,最好用1.5

 

yum install gcc

 

yum install pcre-devel

 

yum install expat-devel

 

yum install openssl-devel -y

 

 

 

 tar -xf apr-1.5.0.tar.bz2

 

 cd apr-1.5.0

 

./configure --prefix=/usr/local/apr

 

make && make install

 

 

 

tar -xf apr-util-1.5.3.tar.bz2

 

cd apr-util-1.5.3

 

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

 

make && make install

 

 

 

tar -xf httpd-2.4.28.tar.bz2

 

 cd httpd-2.4.28

 

./configure --prefix=/usr/local/apache --with-apr-util=/usr/local/apr-util   --with-apr=/usr/local/apr       --sysconfdir=/etc/httpd24  --enable-so --enable-ssl   --enable-cgi   --enable-rewrite  --with-zlib  --with-pcre --with-mpm=prefork  --enable-modules=most  --enable-mpms-shared=all  --enable-dav

 

其中--enable-dav --enable-so是和subversion整合时需要的

 

make && make install

 

 

在源码里已经有启动的脚本,我们要修改下即可,把Apache加入系统SysV服务中来。

 

在源码httpd-2.x.x/build/rpm中存在httpd.init,将其复制到/etc/init.d/下面,并赋予执行权限。

 

 安装并配置svn模块:

yum install mod_dav_svn -y

修改/etc/httpd/conf.d/subversion.conf配置文件的内容

vim /etc/httpd/conf.d/subversion.conf    

  <Location /svn/>

     DAV svn

     SVNParentPath /home/svn/

     # Limit write permission to list of valid users.

   # <LimitExcept GET PROPFIND OPTIONS REPORT>

        # Require SSL connection for password protection.

        # SSLRequireSSL

        AuthType Basic

        AuthName "Authorization Realm"

        AuthUserFile /home/svn/svn_http_passwd

        AuthzSVNAccessFile /home/svn/svn_authz

        Require valid-user

    # </LimitExcept>

  </Location>

 

cp /home/svn/project1/conf/svnserve.conf  /home/svn/conf/svnserve.conf  得到版本库配置文件的模板

vi /home/svn/conf/svnserve.conf    编辑配置文件

  anon-access = none

  auth-access = write

  password-db = /home/svn/svn_passwd

  auth-db = /home/svn/svn_authz

  realm = test-SVN

 

svnserve -d -r /home/svn/test --config-file /home/svn/svnserve.conf --listen-port 3690              启动时指明配置文件位置

 

修改了配置文件之后,要记住,这里是以apache用户的身份来访问svn的版本库,所以需要修改版本库的属主,使apache用户能够来访问。

chown -R apache:apache /home/svn/test/

添加防火墙规则 

iptables -A INPUT -p tcp --dport 80 -j ACCEPT  

iptables -A INPUT -m state --state NEW -p tcp --dport 3690 -j ACCEPT  

 

通过网页访问版本库:ip/svn    url路径是根据在/etc/httpd/conf.d/subversion.conf  配置文件中Location后面的地址来的。

 

推荐阅读