第一章 安装

1. 采用源文件编译安装。源文件共两个,为:

subversion-1.6.21.tar.gz(subversion 源文件)

subversion-deps-1.6.21.tar.gz(subversion依赖文件)

注意文件版本必须一致,否则很容易产生各种奇怪的问题.

2. 上传以上两个文件到服务器上,解压。解压命令为:

 
  tar xfvz subversion-1.6.21.tar.gz
  tar xfvz subversion-deps-1.6.21.tar.gz

指令简介:tar 为解压命令,xfvz为tar命令的参数,用于解压tar.gz格式压缩的文件。

 

3. 解压后生成 subversion-1.6.21 子目录,两个压缩包解压后都会自动放到此目录下,不用手动更改。

4. 进入解压子目录:

  cd subversion-1.6.21

5. 执行 ./configure
–prefix=/opt/subversion 进行配置设定并指明安装目录. 注意prefix前是两个减号. 默认不带BDB包,
所以默认使用的是FSFS模式. 若想使用BDB模式需另外下载BDB包.建议使用FSFS模式.两种模式比较参考以下链接:

http://doc.iusesvn.com/show-21-1.html

指令简介:configure命令用于检查安装平台和目标特征,prefix用于指定路径。

6. 执行 make 编译.

7. 执行 make install 安装.

8. 添加环境变量:

  vi /etc/profile

在文件最后加入:

export PATH=$PATH:/usr/local/svn/bin

9. 测试SVN是否安装成功,执行:

  svnserve --version

如果显示版本信息, 则安装成功.

第二章 配置

本系统采用为每个项目单独建一版本库的策略。配置文件,密码文件,访问控制文件等都放在版本库的conf目录下。所以每次开始一个新项目都必须新建一个版本库,并重新配置各配置文件。还有很重要的一条,要求各组员重新配置客户端,包括服务器版本库路径,本地路径等信息。

1. 建立版本库目录(可建立多个,新建库后以下各项都需重新配置。注意区别安装目录与版本库目录,以下讲的都是版本库目录)

  mkdir –p /opt/svndata/repos

2. 建立svn版本库(与上面目录对应)

  svnadmin create /opt/svndata/repos

执行此命令后svn自动在repos目录下添加必须的配置文件.

注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库.

此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。

3. 修改版本库配置文件

  vi /opt/svndata/repos/conf/svnserve.conf

各参数功能在配置文件的注释中有说明, 此处配置如下:

[general]

anon-access = none # 使非授权用户无法访问

auth-access = write # 使授权用户有写权限

password-db = /opt/svndata/conf/pwd.conf # 指明密码文件路径

authz-db = /opt/svndata/conf/authz.conf # 访问控制文件

realm = /repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。

其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错.(这个参数跟之后访问的地址有关)

其中pwd.conf 与 authz.conf 在新建版本库时系统不会自动创建,需要自己创建。

指令简介:这是svn配置文件的格式,请按照以上格式书写。

4. 配置用户

1 vi /opt/svndata/repos/conf/pwd.conf

输入以下内容:

[users]

username1 = password1

username2 = password2

可以添加多个,此为用户名密码对。

5. 配置权限

vi /opt/svndata/repos/conf/authz.conf

指令简介:此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册,以下是简单例子:

[/]

user1 = rw

user2 = r

注意:

* 权限配置文件中出现的用户名必须已在用户配置文件中定义。

* 对权限配置文件的修改立即生效,不必重启svn。

权限:注意配置文件格式,前面不能有空格

用户组格式:

[groups]

<用户组名> = <用户1>,<用户2>

————————

[groups]

Svnadmin = shengchao,yingzi

g_chengxu= test1,test2,test2

————————

其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:

[<版本库>:/项目/目录]

@<用户组名> = <权限>

<用户名> = <权限>

其中,方框号内部分可以有多种写法:

/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/www/svndata。这样,/就是表示对全部版本库设置权限。

repos1:/,表示对版本库1设置权限

repos2:/abc, ,表示对版本库2中的abc项目设置权限

repos2:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限

权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

示例:

[groups]

admin = shengchao

[/]

@admin = rw

[repos1:/abc/aaa]

yingzi = rw

[repos2:/pass]

yingzi =

6. 使用import导入文件

新建好的版本库是空的,需要导入工作目录。

  $ svnadmin create /usr/local/svn/newrepos
  $ svnimport mytree file:///usr/local/svn/newrepos/some/project

但是在导入后,用来的目录树并没有转换成工作拷贝,为了开始工作,还是需要运行svn
checkout导出一个工作拷贝。因为导入后,文件在版本库中是以特殊的形式存在db文件夹中的,不能以明文的方式查看。必须使用svn
checkout导出工作副本(workcopy)才能以正常方式查看。

  svn checkout file:///usr/local/svn/newrepos/some/project workcopy

7. 启动服务

执行svnserve –d –r /opt/svndata/ 启动服务, 以deamon方式运行。

本系统采用svnserve方式, 这是小团队项目的推荐方法. 这种方法维护最少, 配置最简单.

指令简介:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“–listen-port=”或者“–listen-host=”来指定其它端口。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。

使用以下命令检出:(svnserver方式)

  svn checkout svn://127.0.0.1/dir

以上为示例。IP需要根据具体情况调整,dir为版本库路径,若在启动时已指定则可省略。

版本库信息在版本库文件夹里,所以要删除版本库只需要删除版本库所在的文件夹即可。

另外工作副本只是自己维护的文件夹,可以用Windows直接删掉,对别人没有影响。千万不要使用版本库的删除命令,否则版本库里的内容也会被删除。

------------------------------------------------------------------------------------------

配置两个资源库:svn默认端口是3690

1.启动命令: svnserve -d -r 版本库路径 --listen-host 192.168.1.178

如:svnserve -d -r /opt/svndata --listen-host 192.168.1.178

启动时遇到的问题:

启动svnserve时出现cannot bind server socket:address already in use

解决方法: 

方法一:找出svnserve id 杀死掉进程

netstat -ntlp

kill -9 id

方法二:重新指定一个端口号(默认端口3690)

svnserve -d --listen-port 3691 -r /opt/svndata/repos

2.检查是否启动成功:(查看是否存在svnserve 进程)

ps -ef|grep svnserve

貌似更简单的安装方法:好尴尬

一:安装

1、下载安装包,这里下载1.7.13版本

1
wget http://archive.apache.org/dist/subversion/subversion-1.7.13.tar.gz

2、编译 --without-berkeley-db取消使用berkeley-db,采

1
./configure --prefix=/usr/local/subversion --without-berkeley-db

出现了错误

1
configure: error: no suitable apr found

在网上找了一下,是因为缺少必要的依赖文件,

运行./get-deps.sh下载一下文件

1
./get-deps.sh

之后再./configure --pre...一下

make && make install

Linux下SVN安装配置以及使用的更多相关文章

  1. Linux下SVN安装配置和使用中遇到的问题

    两个命令: svn info :显示版本库信息,svn的下载url等. svn co https://xxxxx/xxx   wodemulu   (通过我的目录制定co的文件夹) svn st:显示 ...

  2. Linux下SVN安装配置及应用

    一.安装篇 centos下yum安装 yum install subversion 查看安装是否成功: svnserve --version 二.配置篇 创建svn版本库目录 mkdir /home/ ...

  3. Linux下SVN安装配置

      第一章 安装 1. 采用源文件编译安装.源文件共两个,为:subversion-1.6.1.tar.gz (subversion 源文件)subversion-deps-1.6.1.tar.gz ...

  4. 记--linux 下svn安装配置,同步web目录

    安装#yum install subversion 1.创建版本库 # svnadmin create /svn/project 2.配置svn服务的配置文件svnserver.conf文件 anon ...

  5. Linux下SVN安装配置全程实录(转)

    一.安装SVN默认安装到/usr/local/bin下面 二.创建仓库 svnadmin create /home/svnrepo /root/svnrepo为所创建仓库的路径,理论上可以是任何目录 ...

  6. Linux下SVN服务器安装配置及客户端安装说明

    原文地址:http://wenku.baidu.com/link?url=h3dVAMx4azpOXEND5HQEE6nliE8-zc0GSQ03yv4cUs1vXMALXF64UsK7kT7kXm_ ...

  7. 转载-Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  8. Linux下git安装配置

    一.Linux下git安装配置 2013-07-28 20:32:10|  分类: 默认分类 |  标签:linux  git  server  |举报|字号 订阅     http://abomby ...

  9. Linux下PHP安装配置MongoDB数据库连接扩展

    Web服务器: IP地址:192.168.21.127 PHP安装路径:/usr/local/php 实现目的: 安装PHP的MongoDB数据库扩展,通过PHP程序连接MongoDB数据库 具体操作 ...

随机推荐

  1. 我的第一个python web开发框架(14)——后台管理系统登录功能

    接下来正式进入网站的功能开发.要完成后台管理系统登录功能,通过查看登录页面,我们可以了解到,我们需要编写验证码图片获取接口和登录处理接口,然后在登录页面的HTML上编写AJAX. 在进行接口开发之前, ...

  2. ECMAScript arguments 对象(摘自W3C)

    arguments 对象 在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们. 例如,在函数 sayHi() 中,第一个参数是 message.用 argument ...

  3. 根据矩阵变化实现基于 HTML5 的 WebGL 3D 自动布局

    在数学中,矩阵是以行和列排列的数字,符号或表达式的矩形阵列,任何矩阵都可以通过相关字段的标量乘以元素.矩阵的主要应用是表示线性变换,即f(x)= 4 x等线性函数的推广.例如,旋转的载体在三维空间是一 ...

  4. 几种移动app API调用认证方案浅析

    最近做的金融项目,app调用的接口需要做一个身份认证,所以找了下目前API services验证的几种方式.之前翻译的一篇文章--[译]移动API安全终极指南中,主要提出了API服务调用验证的问题,通 ...

  5. 动态创建 script 实现跨域请求数据

    动态创建script标签 (由事件触发) 在我们需要请求数据的时候我们就可以动态的创建 script 标签 src设置为我们需要请求数据的地址 另外我们可以附加参数 ?后面附加参数 例如 :?参数=1 ...

  6. SQL server中事务的四个属性特征(ACID)

    事务的概念.类型和四个特征(ACID). 1.事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 通过事务,SQL Se ...

  7. SDRAM操作(FPGA实现)

    对SDRAM基本概念的介绍以及芯片手册说明,请参考上一篇文章SDRAM操作说明. 1. 说明 如图所示为状态机的简化图示,过程大概可以描述为:SDRAM(IS42S16320D)上电初始化完成后,进入 ...

  8. Python For嵌套循环 图形打印X型 nested loop -练习题

    For嵌套循环图形打印作业很多是C++语言做的,我觉得Python应该也能做,就来试一试. 原网址C++练习题:http://www.imooc.com/qadetail/216848?t=33880 ...

  9. unique & lower_bound C++

    原来C++也有unique和lower_bound,只需头文件iostream unique unique可以对数组进行相邻元素的"去重",实现效果是把所有不重复的元素按顺序放在数 ...

  10. MS08_067漏洞学习研究

    p197 MS08-067漏洞渗透攻击 按照书上的设置做,exploit得到错误信息: Exploit failed [unreachable]: Rex::ConnectionRefused The ...