Linux下安装SVN(转)

原文链接:http://blog.csdn.net/delez/archive/2010/06/01/5640994.aspx

其实Linux下SVN还是比较简单, 在网上, 一搜就是一大把的资料。 但很少有人一次安装成功, 因为Linux中的环境太复杂, 很容易环境冲突。
linux svn一般依赖于httpd(Apache Web服务器).

svn独立方式

当然svn还有独立方式, 即不需要apache服务器, 即跳过下面的apache安装, 及配置中关于httpd.conf部分。
在编译subversion时
$./configure -prefix=/opt/svn -without-berkeley-db -with-zlib
(注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db)

安装apache

  • 检查apache是否安装。
    一般server发行版的linux会附带apache web 服务器。 所以需要先看看是否安装了apache, 及安装的版本号。
    • 通过可执行文件是否存在: 在当前路径下, 转入 $ httpd(apachectl) -v, 如果存在, 那么输入$ whereis httpd(apachectl), 找出其路径, 再通过$ file命令查其安装路径。如果不存在命令; 那么检查/etc/init.d/httpd是否存在, 如果存在, 查看安装路径。 通过vi(m)等工具查看其内容, 可以找到路径。
    • 通过发行包工具检查, 如在radhat(fedora)系统中, 使用的是rpm或yum, Debian(包括ubuntu)的dpkg或apt-get工具, Suse使用的是YaST(RPM). 如果是以二进制包安装, 则需要使用这些工具检查, 则说明已安装apache.
  1. $ rpm -qa | grep "软件或者包的名字"
  2. $ yum list installed | grep "软件名或者包名"
  3. $ dpkg -l |grep ii | grep packagename
  4. $ apt-cache show package
    • 如果是源代码码安装, 且通过第一种方式还找不到, 那么...找找几个常用的地, 如/usr/local(/lib)下, /usr(/lib)下, 或看看/var/www, /httpd目录等。
      找到apache时, 那么需要决定使用当前apache, 还是升级版本(http://httpd.apache.org/docs/2.2/upgrading.html )。 如果不存在, 安装之。
  • 安装apache。
    下面简单介绍通过包, 源代码, 自动包管理工具安装apache的方式
    • 安装 $ yum -y install httpd 设置自启动(fedora) /sbin/chkconfig httpd on
    • 安装 $ sudo apt-get install apache2
    • 安装 $ yast2 -install apache2
    • rpm/deb 包, 官网上不提供。 如果有其包, 可通过rpm -i或dpkg -i
    • 源代码:

安装svn。

  • 检查svn是否安装。
    和上面apache的步骤一个, 下面只是罗列示例命令
    • 通过可执行文件是否存在: svn help/svnadmin help
    • 通过发行包工具检查: rpm -qa | grep subversion
    • 想找常用目录下是否有安装包, 如/usr/local(/lib)下, /usr(/lib)
  • 安装svn。
    下面简单介绍通过包, 源代码, 自动包管理工具安装apache的方式
    • 安装 $ yum install subversion
      $ yum install mod_dav_svn
    • 安装 $ sudo apt-get install subversion
    • rpm/deb 包, http://subversion.apache.org/packages.html 有详细的说明, 在各系统下如何安装。
    • 源代码:
      • 通过 http://subversion.apache.org/source-code.html , 查看最新版本的连接, 如当前最新版本连接为: http://subversion.tigris.org/downloads/subversion-1.6.11.tar.gz (下 面都以这个版本为例)
      • 下载 $ wget(curl) http://subversion.tigris.org/downloads/subversion-1.6.11.tar.gz
      • 解压 $ tar xvzf subversion-1.6.11.tar.gz(或$ gzip -d subversion-1.6.11.tar.gz 回车 $ tar xvf subversion-1.6.11.tar), 进入subversion-1.6.11
      • $ ./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion (可以加其它参数, 如网上有兄弟加了这么一堆参数:./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion
        --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib
        --enable-maintainer-mode)
      • 编译 make, 安装make install(需要root权限)
      • 设置svnadmin, 可在任何路径下运行 sudo ln -s /usr/local/subversion/bin/svnadmin /usr/local/bin/svnadmin
      • 验证 输入svnadmin help

建库

上面安装成功后, 可以开始建库。 建库就相对简单, 只列出所有

  • 建立仓库根目录
    $ mkdir /var/repos
  • 建仓库。
    $ svnadmin create /var/repos/test
  • 导入项目。(可在配置后再行导入)
    $ svn import /home/user/myproject file:///home/svnroot/repository/test -m "初始化导入"
  • 改变目录所有者
    $ chown -R apache:apache(或svn:svn) /var/repos

配置

上面所有物理环境已搭建好, 只要配置httpd的访问, 及加入用户就大功告成了。

  • 修改Apache的配置文件httpd.conf
         
         
    
    
  • 增加用户
    $ htpasswd -m /var/repos/config/authfile usr1 //此目录指向httpd.conf中的"用户配置文件" -c 为创建, -m 为修改
  • 增加用户权限
    修改/var/repos/config/authz.conf //此目录指向httpd.conf中的"权限配置文件"
    $ vi(m) /var/repos/config/authz.conf
         
         
    1. [test:/] #这表示,仓库test的根目录下的访问权限  
    2.    admin = rw #test仓库wooin用户具有读和写权限  
    3.    @developers  = rw #@开头的表示组, 组必须存在, 不然死的会很惨。  
    4.    @test  = r  
    5.    [/] #这个表示在所有仓库的根目录下  
    6.    * = r #这个表示对所有的用户都具有读权限  
    7.    [groups] #这个表示群组设置  
    8.    developers = user1, user2 #这个表示某群组里的成员  
    9.    test = user2  

    将这个设置完成后。重启Apache,就可以通过
    http://localhost/svn/test

猜你喜欢

转载自xiaolong0211.iteye.com/blog/868263