linux下subversion的安装
第一章 安装
这里以RHEL5下安装subversion-1.6.6,为例
1. 下载源码包
在http://archive.apache.org/dist/subversion/网站下载
subversion-deps-1.6.6.tar.bz2
subversion-deps-1.6.12.tar.bz2
2. 安装依赖包
安装所需要的依赖包:gcc gcc-c++ openssl openssl-devel
如果不安装openssl相关包,./configure时会出现以下错误:configure: error: We require OpenSSL; try –with-openssl configure failed for serf
一般gcc gcc-c++ linux系统都已经安装的。无需重新安装
对于openssl openssl-devel包使用yum方式进行安装在管理员权限下执行下面的命令:
yum install openssl
yum install openssl-devel
在出现提示时输入y进行下载安装
3. 编译
先解压缩文件
tar -jxvf subversion-1.6.6.tar.bz2
tar -jxvf subversion-deps-1.6.6.tar.bz2
请确保这两个压缩包解压到同一目录下(一般情况执行上面的命令这两个压缩包就会解压到同一目录下),否则编译的时候会出现问题。
执行下面命令进行编译和安装
./configure --prefix=/opt/svn
make
make install
注:若在编译的时候有报“"/usr/bin/ld: cannot find -lexpat"”错误则是因为系统缺少expat包,需要安装expat包
执行yum命令进行安装
yum -y install expat-devel
安装好之后再进行编译执行make和make install就可以了。
4. 设置环境变量
编辑/etc/profile
export PATH=/opt/svn/bin:$PATH
或者编辑相应用户家目录下的“.bash_profile”文件(注意该文件是隐藏文件),增加
PATH=/opt/svn/bin:$PATH
注
意这里最好将=/opt/svn/bin放到你的环境变量的最前面,因为假如你的linux系统已经安装了旧版的svn的话,而你有没有删除原来的svn
则有可能导致实际执行的时候还是原来的svn程序。将新安装的目录放到环境变量的最前面就保证了实际执行的一定是你刚刚安装的svn。
5. 测试
在任何目录下执行svn -h来查看svn版本,看看是不是变成了1.6.6,若是说明安装成功了。
第二章 配置
本系统采用为每个项目单独建一版本库的策略。配置文件,密码文件,访问控制文件等都放在版本库的conf目录下。所以每次开始一个新项目都必须新建一个版本库,并重新配置各配置文件。还有很重要的一条,要求各组员重新配置客户端,包括服务器版本库路径,本地路径等信息。
1. 建立版本库目录(可建立多个,新建库后以下各项都需重新配置。注意区别安装目录与版本库目录,以下讲的都是版本库目录)
1 |
mkdir –p /opt/svndata/repos |
2. 建立svn版本库(与上面目录对应)
1 |
svnadmin create /opt/svndata/repos |
执行此命令后svn自动在repos目录下添加必须的配置文件.
注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库.
此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。
3. 修改版本库配置文件
1 |
vi /opt/svndata/repos/conf/svnserve.conf |
各参数功能在配置文件的注释中有说明, 此处配置如下:
[general]
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = /opt/svndata/repos/conf/pwd.conf # 指明密码文件路径
authz-db = /opt/svndata/repos/conf/authz.conf # 访问控制文件
realm = /opt/svndata/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手册,以下是简单例子:
[/opt/svndata/repos]
user1 = rw
user2 = r
6. 使用import导入文件
新建好的版本库是空的,需要导入工作目录。
1 |
$ svnadmin create /usr/ local /svn/newrepos |
2 |
$ svnimport mytree file :///usr/ local /svn/newrepos/some/project |
但是在导入后,用来的目录树并没有转换成工作拷贝,为了开始工作,还是需要运行svn
checkout导出一个工作拷贝。因为导入后,文件在版本库中是以特殊的形式存在db文件夹中的,不能以明文的方式查看。必须使用svn
checkout导出工作副本(workcopy)才能以正常方式查看。
1 |
svn checkout file :///usr/ local /svn/newrepos/some/project workcopy |
7. 启动服务
执行svnserve –d –r /opt/svndata/repos/ 启动服务, 以deamon方式运行。
本系统采用svnserve方式, 这是小团队项目的推荐方法. 这种方法维护最少, 配置最简单.
指
令简介:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“–listen-
port=”或者“–listen-host=”来指定其它端口。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整
路径。
使用以下命令检出:(svnserver方式)
1 |
svn checkout svn://127.0.0.1/ dir |
以上为示例。IP需要根据具体情况调整,dir为版本库路径,若在启动时已指定则可省略。
版本库信息在版本库文件夹里,所以要删除版本库只需要删除版本库所在的文件夹即可。
另外工作副本只是自己维护的文件夹,可以用Windows直接删掉,对别人没有影响。千万不要使用版本库的删除命令,否则版本库里的内容也会被删除。
linux下subversion的安装的更多相关文章
- linux下subversion server安装手册
linux下subversion server安装手册 安装基于的Linux版本为:Red Hat Enterprise Linux Server release 6.3. 一 准备需要的安装包. ( ...
- linux下svn的安装与配置
---恢复内容开始--- linux下svn的安装与配置 Linux发行版本:CentOS6.5 1.安装subversion sudo yum -y install subversion 2.创建s ...
- Linux下命令行安装weblogic10.3.6
Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...
- Linux下MongoDB服务安装
Linux下MongoDB服务安装 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...
- Windows下的Memcache安装 linux下的Memcache安装
linux下的Memcache安装: 1. 下载 memcache的linux版本,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent. 官方网址:http ...
- Linux下Perl的安装(转)
原文地址:Linux下Perl的安装 今天在虚拟机测试shell脚本的时候,有些命令使用不了. 比如说 mysqlhotcopy ,它提示Perl的版本太低. 我用的 RedHat9 的Perl才5. ...
- 细说Linux下软件包的安装与管理
一 源码安装方式 由于linux操作系统开放源代码,因而在其上安装的软件大部分也都是开源软件,例如apache.tomcat.php等软件.开源软件基本都提供源码下载,源码安装的方式:源码安 ...
- Linux下Qt的安装与配置
参考资料:http://www.cnblogs.com/emouse/archive/2013/01/28/2880142.html Linux 下编译.安装.配置 QT 下载qt 这里用的是4.7. ...
- Linux下OpenSSL的安装与使用
Linux下OpenSSL的安装与使用 OpenSSL简介 OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux.Windows.Mac OS ...
随机推荐
- PHP对象的复制
对象的复制(克隆) $obj1 = new A(); $obj1->p1 = 11; $obj2 = $obj1; //值传递 //则,现在有几个对象?——1个对象! 当然: $obj3 ...
- SWERC2015-I Text Processor
题意 给一个长度为\(n\)的字符串\(s\),再给定一个\(w\),问对于所有的\(i\in [1,n-w+1]\),\(s[i..i+w-1]\)有多少个不同字串.\(n,w\le 10^5\). ...
- luogu 1437 敲砖块(DP)
这道题的DP的状态设计的很有想法啊. 假如我们一行一行来选择的话,状态将会极其复杂. 如果一列一列来看的话,比如你想选aij,那么第i列的前j个都要选,并且第i+1列的前j-1个都要选. 于是状态就很 ...
- web项目访问路径上为什么不能写上WebContent
我们常常在WEB项目中要写很多的访问路径,比如说/good/target.jsp;目录结构中从来不会带有项目目录结构的WebContent?这到底的为什么呢? 我们知道WEB项目是放在容器上运行的,而 ...
- [十三]SpringBoot 之 过滤器(Filter)和监听器(Listener)
过滤器(Filter)和 监听器(Listener)的注册方法和 Servlet 一样,不清楚的可以查看下上一篇文章 代码示例 package me.shijunjie.filter; import ...
- Redis安装配置及使用详解
1. 简介-两个程序通信,除了socket就是文件了,但是通过磁盘效率太低了,之前的RabbitMQ只是实现了消息的传递,现在要是实现数据的共享(一份数据,可供多人查阅),可以通过缓存实现,一个中间商 ...
- 【比赛】HNOI2018 游戏
考试的时候线段树区间查询的return条件打成了l==r....于是光荣爆20(线段树都不会打了?) 看膜博士的题解 #include<bits/stdc++.h> #define ui ...
- 【BZOJ4516】生成魔咒(后缀自动机)
[BZOJ4516]生成魔咒(后缀自动机) 题面 BZOJ Description 魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示.例如可以将魔咒字符 1.2 拼凑起来形成一个魔咒串 [1,2]. ...
- 【BZOJ1491】【NOI2007】社交网络(最短路,动态规划)
[BZOJ1491][NOI2007]社交网络(最短路,动态规划) 题面 BZOJ 洛谷 图片是假的,只能到OJ上看 Description 在社交网络(socialnetwork)的研究中,我们常常 ...
- 【BZOJ4540】【HNOI2016】序列(莫队)
[BZOJ4540][HNOI2016]序列(莫队) 题面 BZOJ 洛谷 Description 给定长度为n的序列:a1,a2,-,an,记为a[1:n].类似地,a[l:r](1≤l≤r≤N)是 ...