转载

SVN安装(Linux)

   

SVN安装

Subversion是流行的开放源码的版本控制工具。 因为它是开放源码,它是一个互联网上免费提供。默认情况下,大多数的GNU/Linux发行,所以它可能是你的系统上已经安装了。要检查它是否安装或不使用下面的命令。

 [jerry@CentOS ~]$ svn --version 

如果没有安装Subversion客户端,然后命令将报告错误,否则它会显示安装的软件版本。

 [jerry@CentOS ~]$ svn --version -bash: svn: command not found 

如果使用的是GNU/Linux基于RPM,然后使用yum命令进行安装。安装成功后,执行的svn - version命令。

 [jerry@CentOS ~]$ su - Password:  [root@CentOS ~]# yum install subversion  [jerry@CentOS ~]$ svn --version svn, version 1.6.11 (r934486) compiled Jun 23 2012, 00:44:03 

如果使用的是基于Debian GNU/Linux的命令进行安装然后用apt

 [jerry@Ubuntu]$ sudo apt-get update [sudo] password for jerry:  [jerry@Ubuntu]$ sudo apt-get install subversion  [jerry@Ubuntu]$ svn --version svn, version 1.7.5 (r1336830) compiled Jun 21 2013, 22:11:49 

Apache安装

我们已经看到了如何在GNU/Linux上安装Subversion客户端。让我们来看看如何创建新的存储库,并允许用户访问。

我们必须在服务器上安装的Apache 的 httpd模块和svnadmin工具。

 [jerry@CentOS ~]$ su - Password:  [root@CentOS ~]# yum install mod_dav_svn subversion 

mod_dav_svn 包允许使用HTTP访问到存储库,从Apache httpd 服务器和颠覆包安装svnadmin 工具。

Subversion版本读取它的配置从 /etc/httpd/conf.d/subversion.conf 文件.,增加配置后 subversion.conf 文件看起来像这样。

 LoadModule dav_svn_module     modules/mod_dav_svn.so LoadModule authz_svn_module   modules/mod_authz_svn.so  <Location /svn>    DAV svn    SVNParentPath /var/www/svn    AuthType Basic    AuthName "Authorization Realm"    AuthUserFile /etc/svn-users    Require valid-user </Location> 

让我们创建Subversion用户,并授予他们访问到存储库。 htpasswd的命令是用来创建和更新纯文本文件,用来存储​​用户HTTP基本身份验证的用户名和密码。 “-c”选项创建密码文件,如密码文件已经存在,它是覆盖。这就是为什么只有第一次使用'-c'选项。 '-m'选项启用MD5加密密码。

用户设置

让我们创建用户tom。

 [root@CentOS ~]# htpasswd -cm /etc/svn-users tom New password:  Re-type new password:  Adding password for user tom 

让我们创建用户 jerry

 [root@CentOS ~]# htpasswd -m /etc/svn-users jerry New password:  Re-type new password:  Adding password for user jerry [root@CentOS ~]#  

创建Subversion版本父目录来存储所有的工作(详细风 /etc/httpd/conf.d/subversion.conf).

 [root@CentOS ~]# mkdir /var/www/svn [root@CentOS ~]# cd /var/www/svn/ 

信息库设置

创建项目库名为project_repo。 svnadmin 命令将创建新的存储库,里面存储元数据和其他一些目录。

 [root@CentOS svn]# svnadmin create project_repo  [root@CentOS svn]# ls -l project_repo total 24 drwxr-xr-x. 2 root root 4096 Aug  4 22:30 conf drwxr-sr-x. 6 root root 4096 Aug  4 22:30 db -r--r--r--. 1 root root    2 Aug  4 22:30 format drwxr-xr-x. 2 root root 4096 Aug  4 22:30 hooks drwxr-xr-x. 2 root root 4096 Aug  4 22:30 locks -rw-r--r--. 1 root root  229 Aug  4 22:30 README.txt 

让我们改变存储库的用户和组所有权。

 [root@CentOS svn]# chown -R apache.apache project_repo/ 

检查是否启用SELinux或不使用SELinux状态工具。

 [root@CentOS svn]# sestatus SELinux status:                 enabled SELinuxfs mount:                /selinux Current mode:                   enforcing Mode from config file:          enforcing Policy version:                 24 Policy from config file:        targeted 

对于我们的服务器上启用SELinux的,所以我们不得不改变SELinux的安全上下文。

 [root@CentOS svn]# chcon -R -t httpd_sys_content_t /var/www/svn/project_repo/ 

为了让承诺通过HTTP执行以下命令。

 [root@CentOS svn]# chcon -R -t httpd_sys_rw_content_t /var/www/svn/project_repo/ 

重新启动Apache服务器,我们完成配置Apache服务器。

 [root@CentOS svn]# service httpd restart Stopping httpd:                                            [FAILED] Starting httpd: httpd: apr_sockaddr_info_get() failed for CentOS httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName                                                            [  OK  ] [root@CentOS svn]# service httpd status httpd (pid  1372) is running... [root@CentOS svn]# 

我们已经配置成功,现在Apache服务器配置存储库。库访问只有通过身份验证的用户,使用默认的授权文件,添加以下几行到 project_repo/conf/svnserve.conf 文件

 anon-access = none authz-db = authz 

每个Subversion项目通常有 trunk, tags 和 branches 目录项目的根目录下。

树干(trunk )是一个目录,在所有主要的发展发生,通常是签出开发人员工作的项目。

标签目录是用来存储的项目命名的快照。当创建一个产能释放,团队将标记的代码,进入释放。

当想要追求发展的不同线路的分支目录。

让我们创建的树干(branches),标签和分支的目录结构,根据项目资料库。

 [root@CentOS svn]# mkdir /tmp/svn-template [root@CentOS svn]# mkdir /tmp/svn-template/trunk [root@CentOS svn]# mkdir /tmp/svn-template/branches [root@CentOS svn]# mkdir /tmp/svn-template/tags 

从目录 /tmp/svn-template 模板导入到存储库。

 [root@CentOS svn]# svn import -m 'Create trunk, branches, tags directory structure' /tmp/svn-template/  Adding         /tmp/svn-template/trunk Adding         /tmp/svn-template/branches Adding         /tmp/svn-template/tags Committed revision 1. [root@CentOS svn]# 

完成! 我们已经创建成功,并允许访问Tom Jerry。从现在开始,他们可以执行所有支持的操作到版本库。

   
正文到此结束
Loading...