最新Subversion服务器源码编译安装教程
2017-10-27 00:21
507 查看
什么是 Subversion?
Subversion 是一个 免费/开源 的 版本控制系统 (version control system, VCS), 也就是说, Subversion 可以跨越时间地对文件和目录, 以及它们的修改进行管理. 这就允许你恢复 数据的旧版本, 或检查数据的修改历史. 由于这个特点, 很多人把版本控制系统 看成是一种 “数据时间机器”. Subversion 可以跨越网络进行操作, 这就允许多个用户在不同的机器上工作. 从某种程度上讲, 允许用户在各自的空间里修改和管理同一组数据可以促进团队 协作, 因为修改不再是单线进行, 开发速度会更快. 由于所有的工作都被记录在 案, 也就不用担心并行开发会降低软件的质量—如果出现不正确的修改, 只 要撤消那一次更改操作即可. 某些版本控制系统同时也是 软件配置管理 (software configuration management, SCM) 系统. 这种系统经过精巧的设计, 专门用于管理源代码树, 具备许多与软件开发有关的 特性—理解编程语言, 提供了程序构建工具. 但 Subversion 不是 SCM, 它是一个通用系统, 可以管理 任意 类型的文件集合. 对你来说, 这些文件可能是源代码文件—对别人来说, 可能是一个货物清单 或数字电影.
Subversion的运行和数据存储
SVN(subversion)的运行方式有两种:一种是基于Apache的http、https网页访问形式;
还有一种是基于svnserve的独立服务器模式。
SVN的数据存储方式也有两种
Berkeley DB数据库中存储数据;
使用普通的文件FSFS存储数据。
由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全。
Subversion的架构
图中的一端是存放所有版本数据的 Subversion 仓库, 另一端是 Subversion 客户端程序, 客户端程序管理着部分版本数据在本地的映射. 两端之间是穿过仓库访问 (Repository Access) 层的多条访问路径, 其中 一些路径跨越计算机网络, 通过网络服务器对仓库进行访问, 其他一些路径 则不经过网络, 直接访问仓库.
Subversion 的组件
安装好的 Subversion 由好几个组件构成, 下面将简单地介绍 一下这些组件:svn 客户端命令行工具 svnversion 用于报告工作副本状态 (就项目的版本号而言) 的工具 svnlook 可以直接检查仓库的工具 svnadmin 用于创建, 调整或修复 Subversion 仓库的工具 mod_dav_svn Apache HTTP 服务器插件, 该插件允许用户通过网络访问仓库 svnserve 一个定制的, 可独立运行的服务器程序, 可以以守护进程方式运行, 也可以被 SSH 调用, 这是另一种允许用户通过网络访问仓库的方法 svndumpfilter 过滤 Subversion 仓库转储数据流的程序 svnsync 可以跨越网络对仓库进行增量镜像备份的程序 svnrdump 可以跨越网络对仓库历史进行转储和加载的程序 svnmucc 该工具支持在没有工作副本的情况下, 在一个单独的提交中对多个 仓库执行基于 URL 的操作
本文将以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器
系统环境:
rhel7.2 x86_64bit SELinux关闭 防火墙关闭(或者开启防火墙端口,基于svnserve的独立服务器模式,默认端口为3690)
开启防火墙端口的命令如下:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
安装之前请首先清理旧的软件环境
yum remove -y subversion subversion-libs
一、安装
注意:所有软件本人下的版本都比较高1.安装APR(必须安装,本人亲测,否则./configure不过)
下载地址 https://dist.apache.org/repos/dist/release/apr/apr-1.6.3.tar.gz
# tar zxvf apr-1.6.3.tar.gz # cd apr-1.6.3/ # ./configure --prefix=/usr/local/apr # make && make install
2.安装APRUTIL(必须)
下载地址 https://dist.apache.org/repos/dist/release/apr/apr-util-1.6.1.tar.gz
# tar -zxvf apr-util-1.6.1.tar.gz # cd apr-util-1.6.1/ # ./configure --with-apr=/usr/local/apr/bin/apr-1-config # make && make install
如果make && make install 出现如下错误:
xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory #include <expat.h> ^ compilation terminated. make[1]: *** [xml/apr_xml.lo] Error 1 make[1]: Leaving directory `/root/apr-util-1.6.1' make: *** [all-recursive] Error 1
解决方法:
yum install expat-devel -y
3. 下载sqlite-amalgamation(必须)
http://www.sqlite.org/2017/sqlite-amalgamation-3210000.zip
需要将此文件解压到你当前subversion编译安装所处目录的sqlite-amalgamation(自己新建)目录中,如本人为:
[root@lockey6 sqlite-amalgamation]# ls shell.c sqlite3.c sqlite3ext.h sqlite3.h [root@lockey6 sqlite-amalgamation]# pwd /root/subversion-1.9.7/sqlite-amalgamation
如果这一项不正确会提示如下错误,可以根据提示的路径进行解压:
其他依赖都可以直接通过yum 源来进行安装如:
提示需要zlib的时候执行以下安装:
yum install zlib-devel -y
4. 安装Subversion
下载地址:http://mirror.bit.edu.cn/apache/subversion/subversion-1.9.7.tar.gz
# tar -zxvf subversion-1.9.7.tar.gz # cd subversion-1.9.7 # ./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config # make && make install
加入环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/svn/bin
source /etc/profile#使配置立刻生效
whereis libexpat.so.1 #查找文件安装目录,如下:
vi /etc/ld.so.conf #编辑加入libexpat.so.1的目录
/usr/lib64/
ldconfig #使配置生效
测试是否安装成功
[root@lockey6 bin]# svn --version svn, version 1.9.7 (r1800392) compiled Oct 26 2017, 22:18:27 on x86_64-unknown-linux-gnu
二、 使用
1、创建svn代码库mkdir -p /home/svn #创建代码目录 svnadmin create /home/svn #创建svn代码库
上面的命令执行完成之后,会自动建立svn库,在/home/svn文件夹含了conf,db,format,hooks,locks,README.txt等文件。
说明svn代码库创建成功。
2、配置svn代码库
cd /home/svn/conf #进入配置文件存放目录
vim /home/svn/conf/svnserve.conf #配置全局文件
[general] anon-access=none #禁止匿名访问,设置为none。默认为read,参数:read,write,none auth-access=write #授权用户写权限 password-db=passwd #用户账号密码文件路径,可以写绝对路径 authz-db=authz #访问控制权限文件路径,可以写绝对路径 realm = test repo#每个SVN项目的认证命,会在认证提示里显示,建议写项目名称。
vim /home/svn/conf/passwd #配置用户密码
[users] root=redhat lockey=lockey23
vim /home/svn/conf/authz #配置权限控制文件,设置用户可以访问的目录
[groups] admin = root users = root,lockey [/] @admin = rw @lockey = rw #[/]代表根目录下所有的资源
3.设置svn服务开机启动
vim /etc/init.d/svn
#!/bin/sh # processname: svn svn_port=3690 svn_home=/home/svn if [ ! -f "/usr/local/svn/bin/svnserve" ] then echo "svnserver startup: cannot start" exit fi case "$1" in start) echo "Starting svnserve..." /usr/local/svn/bin/svnserve -d -r $svn_home --listen-port $svn_port echo "Successfully!" ;; stop) echo "Stoping svnserve..." killall svnserve echo "Successfully!" ;; restart) $0 stop $0 start ;; *) echo "Usage: svn { start | stop | restart } " exit 1 esac
chmod +x /etc/init.d/svn #添加执行权限 chkconfig svn on #开启自启动
使用以下命令关闭svn然后照下图进行启动
killall svnserve #关闭svn服务
测试svn可用性
[root@lockey6 ~]# svn checkout svn://192.168.1.102 --username=lockey --password=lockey23
会发现当前目录下生成了.svn 隐藏目录
向版本库中提交添加的文件
[root@lockey6 svntest2]# svn checkout svn://192.168.1.102/ --username=lockey --password=lockey23 A halo Checked out revision 1. [root@lockey6 svntest2]# ls halo [root@lockey6 svntest2]# cat halo goood [root@lockey6 svntest2]# echo 'goooooooooood' > good [root@lockey6 svntest2]# svn add good A good [root@lockey6 svntest2]# svn commit -m 'add a file named good' good
在其他目录中进行测试,发现文件已经到了版本库中
在window中通过客户端进行测试
下载地址https://tortoisesvn.net/downloads.html安装过程就不说了吧,window下软件都不会安装那就没救了
安装完成后在桌面-右键单击,选择TortoiseSVN-版本库浏览器
依次输入信息
可以看到svn服务器上的内容,右键单击之后,可以选择创建文件夹等操作。
选择checkout就可以把代码库导到本地,然后就可以进行协同开发了:
相关文章推荐
- MySQL 5.7.13 源码编译安装配置方法图文教程
- 如何在Debian上源码编译安装vim最新版[vim 8]
- Nginx实战基础篇一 源码包编译安装部署web服务器
- 最新最全网络首发安卓4.0源码及内核下载编译教程(图文详解)
- 超级web服务器yum 安装apache+源码编译tomcat+awstat+phpmyadmin+mysql+php+AB压力测试
- CentOS7通过源码编译安装官方最新版Node
- 在CentOS下源码编译安装nginx教程
- 【转】mongodb简介及源码编译安装mongo2.0.0服务器
- ubuntu 源码编译安装最新的vim 8.0
- Subversion快速入门教程,软件下载,服务器和客服端安装,导入项目,基本客服端操作
- ubuntu12.04编译服务器安装教程
- linux subversion服务器安装教程
- Linux下源码编译安装配置SVN服务器
- [Nginx]使用源码编译安装Nginx服务器
- 【服务器环境搭建-Centos】Nginx1.9.9 安装(编译源码)
- Mac 源码安装Subversion服务器
- hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档
- Linux下源码编译安装配置SVN服务器的步骤分享
- CentOS源码编译安装MySQL 5.5.15 | CentOS教程
- 服务器基础搭建最全教程 CentOS 7.0编译安装 Nginx1.6.0 + MySQL5.6.19 + PHP5.6.30