dream_653
作者dream_653·2019-12-17 12:03
系统应用运维·*****

Linux系统安装和使用subversion

字数 6079阅读 5632评论 0赞 4

Linux系统安装和使用subversion

1、Linux上subversion下载

Windows上SVN客户端官网:https://tortoisesvn.net/
Linux上SVN官网: http://subversion.apache.org

[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.9.12.tar.gz
[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
[root@localhost ~]# wget https://www.sqlite.org/2019/sqlite-amalgamation-3300100.zip

#[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.41.tar.gz
#[root@localhost ~]# wget https://www.apache.org/dist/serf/serf-1.3.9.tar.bz2
#[root@localhost ~]# wget http://www.zlib.net/fossils/zlib-1.2.11.tar.gz
#[root@localhost ~]# wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz

2、Linux上subversion源码安装

[root@localhost ~]# mkdir /usr/local/apr
[root@localhost ~]# tar -zxvf apr-1.7.0.tar.gz
[root@localhost ~]# cd apr-1.7.0
[root@localhost apr-1.7.0]# ./configure --prefix=/usr/local/apr
 出现 这个提示: cannot remove `libtoolT’: No such file or directory
 解决方案: 编辑 configure文件,查找 $RM "$cfgfile" 这个地方,用#注释掉,然后重新编译安装就可以了。
[root@localhost apr-1.7.0]# make;make install
[root@localhost apr-1.7.0]# cd  
[root@localhost ~]# mkdir /usr/local/apr-util
[root@localhost ~]# tar -zxvf apr-util-1.6.1.tar.gz
[root@localhost ~]# cd apr-util-1.6.1  
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]#  make;make install
出现 这个提示:
xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory  
#include   
^  
解决方案:yum install -y expat-devel*
[root@localhost apr-util-1.6.1]#  cd 
[root@localhost ~]# mkdir /usr/local/svn
[root@localhost ~]# tar -zxvf subversion-1.9.12.tar.gz
[root@localhost ~]# cd subversion-1.9.12
[root@localhost subversion-1.9.12]# ./configure --prefix=/usr/local/svn  --with-apr-util=/usr/local/apr-util  --with-apr=/usr/local/apr
出现如下提示:
Please either install a newer sqlite on this system  
  
or  
  
get the sqlite 3.7.15.1 amalgamation from:  
http://www.sqlite.org/sqlite-amalgamation-3071501.zip  
unpack the archive using unzip and rename the resulting  
directory to:  
/root/subversion-1.9.12/sqlite-amalgamation  
  
configure: error: Subversion requires SQLite  
解决方案
[root@localhost ~]# unzip sqlite-amalgamation-3300100.zip   
[root@localhost ~]# cd subversion-1.9.12  
[root@localhost subversion-1.9.12]# mkdir sqlite-amalgamation  
[root@localhost subversion-1.9.12]# cp ../sqlite-amalgamation-3300100/* ./sqlite-amalgamation/
[root@localhost subversion-1.9.12]# make;make install

3、版本库的创建与删除

创建保存版本库的目录

[root@localhost subversion-1.9.12]# mkdir /usr/local/SvnRepository 

创建svn版本库

svnadmin create 路径  
版本库没有指定一定需要创建在某个目录下  
[root@localhost subversion-1.9.12]# /usr/local/svn/bin/svnadmin create /usr/local/SvnRepository/testrpo
#在/usr/local/SvnRepository/目录下创建testrpo版本库  
创建版本库时可以配置的参数:  
--fs-type #用来指定版本库数据保存类型,该参数的类型有fsfs和dbd,推荐使用fsfs数据类型。  
例如:在/usr/local/SvnRepository/目录下创建testrpo1版本库并指定版本库保存数据的类型为fsfs。  
[root@localhost subversion-1.9.12]# /usr/local/svn/bin/svnadmin create --fs-type fsfs /usr/local/SvnRepository/testrpo1   
[root@localhost subversion-1.9.12]# ls -lrt /usr/local/SvnRepository/  
total 0  
drwxr-xr-x. 6 root root 86 Dec 16 21:08 testrpo  
drwxr-xr-x. 6 root root 86 Dec 16 21:12 testrpo1  
[root@localhost subversion-1.9.12]#   

删除版本库

rm -rvf 版本库路径  
直接使用Linux的删除命令将版本库删除即可  
例:删除/usr/local/SvnRepository/目录下的testrpo2版本库  
[root@localhost SvnRepository]# rm -rvf testrpo2  

版本库配置及权限分组

版本库的配置:  
版本库的配置文件位于创建的版本库的目录下的conf目录下
[root@localhost subversion-1.9.12]# ls -lrt /usr/local/SvnRepository/testrpo/conf/  
total 20  
-rw-r--r--. 1 root root 4371 Dec 16 21:08 svnserve.conf  
-rw-r--r--. 1 root root 309 Dec 16 21:08 passwd  
-rw-r--r--. 1 root root 885 Dec 16 21:08 hooks-env.tmpl  
-rw-r--r--. 1 root root 1080 Dec 16 21:08 authz  
该目录下文件保存的信息分别为:  
authz:配置用户组合用户组的权限  
passwd:配置用户名和用户密码  
svnserve.conf:配置默认权限、权限配置文件及密码配置文件  
svnserve.conf配置文件  
使用编辑器打开svnserve.conf文件  
[root@localhost conf]# vi svnserve.conf 


将注释掉的重要配置信息解注释,更改未通过验证的用户权限为none,其他配置为默认

更改完成保存退出。

passwd配置文件:
使用编辑器打开passwd文件
[root@localhost conf]# vi passwd


添加用户zxr密码为123456

添加完成保存退出。

authz****配置文件:
使用编辑器打开authz文件
[root@localhost conf]# vi authz


用户组(group)配置,该配置的格式为组名等于用户名列表,每个用户需要用逗号隔开,每一行表示一个用户组。
配置组的权限时需要在组的前面加上@符号
例:

用户组配置:  
配置用户组pm,组员为zxr  
配置用户组dev,组员为zxr0,zxr1,zxr2  
配置用户组rookie,组员为zxr3  
pm = zxr  
dev = zxr0,zxr1,zxr2  
rookie = zxr3  

指定根目录配置用户组权限:
pm组具有读写权限(rw),dev组只有读权限(r),rookie组只有读权限(r),  
此处的读(r)表示:在客户端可以跟新服务器上的代码到本地  
此处的写(w)表示:在客户端可以提交代码到服务器  
[/]
@pm = rw
@dev = r
@rookie = r
指定版本库配置权限:  
配置testrpo版本库权限为pm组可读写(rw),用户zxr1可读写(rw),用户zxr2只能读(r),用户zxr3无权限  
  
[testrpo:/]
@pm = rw
zxr1 = rw
zxr2 = r
zxr3 =
指定版本库下的某个目录或文件权限配置:
配置testrpo版本库下的test01目录的权限为所有人可读写(rw)
 [testrpo:/test01] 
* = rw 
*表示所有用户

全部配置如图

配置完成保存退出。

版本库的访问
svn是属于集中式的版本库解决方案,访问拓扑图:

SVN是跨平台的,可以在任何系统上访问SVN服务器上的内容。

4、 启动

指定启动运行创建的版本库testrpo
[root@localhost bin]#  svnserve --listen-port 443 -d -r /usr/local/SvnRepository/testrpo
[root@localhost bin]# netstat -antlup|grep 443  
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 94004/./svnserve   

5、Linux上客户端的访问

在Linux上svn服务器上保存的是二进制文件,所以在svn服务器的版本库中看不到提交到svn服务器上的文件,只有通过Linux上的客户端才能看到svn版本库中的文件。

在/usr/local/目录下创建svn工作副本文件svnwork  
[root@localhost local]# mkdir /usr/local/svnwork  
进入创建的工作副本svnwork  
[root@localhost local]# cd svnwork/  
检出svn版本库  
[root@localhost svnwork]# /usr/local/svn/bin/svn checkout svn://192.168.249.128:443  
Checked out revision 0.  
[root@localhost svnwork]# ls -la  
total 0  
drwxr-xr-x. 3 root root 18 Dec 16 21:30 .  
drwxr-xr-x. 19 root root 243 Dec 16 21:06 ..  
drwxr-xr-x. 4 root root 96 Dec 16 21:30 .svn  
提交文件
[root@localhost svnwork]# echo test >test.txt  
[root@localhost svnwork]# /usr/local/svn/bin/svn add test.txt   
A test.txt  
向svn服务器提交test.txt文件  
提交命令; svn commit -m "注释" 需要提交的文件  
[root@localhost svnwork]# svn commit -m "commit create file testl.txt" test.txt  
-m "commit create file cl.txt"表示注释  
更新版本库(必须先进入到检出的目录下执行该更新命令,否则会报错没有找到工作副本)
[root@localhost svnwork]# svn update

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

4

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广