Linux下安装svn服务实战详解

    技术2022-05-20  62

    SVN是管理工程本版的必备工具,相对vss以及其前身cvs来说都有着无与伦比的优势

    以下是apache+subversion服务端安装步骤:

    一、准备好安装包:

    ①apr-1.3.6.tar.gz   下载地址:http://apr.apache.org/

    ②apr-util-1.3.8.tar.gz

    ③subversion-1.8.13.tar.gz  下载地址: http://mirrors.cnnic.cn/apache/subversion/subversion-1.8.13.tar.gz

        svn从1.7版本开始,就不需要之前的deps包了

    ④httpd-2.2.9.tar.gz 下载地址:http://httpd.apache.org/

    注意:apache的版本 与 subversion版本的兼容问题,官网都有介绍的

    二、开始安装:把以上安装包上传至/usr/local目录,cd /usr/local 进入该目录

    1、安装apr

          tar zxvf  apr-1.3.6.tar.gz #解压包

          cd apr-1.3.6

          ./configure

          make

          make install

    2、安装apr-util

          tar zxvf apr-util-1.3.8.tar.gz

          cd apr-util-1.3.8

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

          make

          make install

    3、安装 apache

          tar zxvf  httpd-2.2.4.tar.gz

          cd httpd-2.2.4

          ./configure --prefix=/usr/local/apache2 --enable-dav--enable-so --enable-maintainer-mode--with-apr=/usr/local/apr/bin/apr-1-config--with-apr-util=/usr/local/apr/bin/apu-1-config #--prefix表示把apache安装在指定目录

          make

          make install

    4、安装subversion

          tar zxvf  subversion-1.8.13.tar.gz

          cd subversion-1.8.13

          ./configure--prefix=/opt/svn --with-apxs=/usr/local/apache2/bin/apxs--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr

          make

          make install

          至此,安装基本完毕,再配置下就可以使用了

     

          注意:因为这些安装包需要gcc编译,所以要确保linux上装有gcc程序,否则是没办法进行安装的

     

     三、在apache中配置SVN

          vi /usr/local/apache2/conf/httpd.conf

         ① 如果你看到如下两句,说明安装是成功的

          LoadModule dav_svn_module     modules/mod_dav_svn.so       LoadModule authz_svn_module   modules/mod_authz_svn.so

          如果有下面一句就用#注释掉

          #LoadModule foo_module modules/mod_foo.so

                ② 定义apache访问svn配置:       <Location /svn>               DAV  svn       #      SVNPath /opt/svndata               SVNParentPath /opt/svndata               AuthzSVNAccessFile /opt/svn/conf/authz.conf               AuthType Basic               AuthName "Subversion repository"               AuthUserFile /opt/svn/conf/passwd.conf               Require valid-user       </Location>

     四、配置svn

          ①建立svn版本库目录

          mkdir -p /opt/svndata/repos #可以多建版本库目录

          ②建立svn版本库

          svnadmin create --fs-type fsfs /opt/svndata/repos

         一定要记得加上--fs-type fsfs参数,否则apache加载svn处理时要出现BDB错误:

         Failed to load module for FS type 'bdb' svnadmin create

     

          ③建立本地访问控制文件

          /usr/local/apache2/bin/htpasswd -c /opt/svn/conf/passwd.conf  username

          然后输入密码即可,默认是MD5加密的

          /usr/local/apache2/bin/htpasswd  /opt/svn/conf/passwd.conf  username1 #追加用户

          ④建立本地项目控制文件

          touch /opt/svn/conf/authz.conf

          本例authz.conf内容为:

     

          [groups]       #<groupname1>=<username1>,<username2>       admin=username

          #[<versionLib>:projectName/directory]       #@<groupsname>=<authorities>       #<username>=<authorities>

          [/]       @admin = rw      #指定用户组成员可以读写根目录所有应用

          [repos:/abc/aaa]       username1= rw      #指定用户username1可以读写:/abc/aaa目录的文件

    至此,整个安装过程完成了!

    五、测试连接

         ① 启动apache

          /usr/local/apache2/bin/apachectl start

         ② 打开浏览器,输入http://192.168.139.21/svn/repos

          使用刚才创建的权限用户名与密码登录即可访问

          注意:在你上传文件的时候可能会有如下权限不足的提示

          Permission denied       svn: Commit failed (details follow):       svn: Can't create directory '/opt/svndata/repos/db/transactions/0-1.txn': Permission denied

          这是因为apache在线程用户没有权限访问svn的仓库,两者分别属于不同的用户者

          本例apache属于daemon拥有者,而svn仓库属于svn拥有者

          解决方法:

          chown -R daemon /opt/svndata/repos

          chmod -R 755 /opt/svndata/repos

     

           重启下apache:

           /usr/local/apache2/bin/apachectl stop

           /usr/local/apache2/bin/apachectl start

     

    以上参考其他博文,并结合我的实战经验修改而来,特别是建svn库时的参数,一定不要忘了


    最新回复(0)