1.yum安装
如果没有安装就会是下面的样子,提示找不到命令。
[root@localhost ~]# svnserve --version
-bash: svnserve: command not found
如果已经安装,会显示版本信息:
[root@localhost ~]# svnserve –version
在Linux下安装的是subversion,直接用yum 安装即可。
[root
@localhost ~]
# yum install -y subversion
检查安装是否成功
同样用的是 svnserve –version成功安装会显示版本信息
[root
@localhost~]
# svnserve --version
2.编译安装预备部分:检查自己的linux系统中是否已经默认安装了svn
[root@c1 ~]# rpm -qa |grep svn
rpm -e --nodeps ****(输入上个命令获取的安装包名称)
1.下载subversion-1.9.7.tar.gz 并把软件包上传到linux,我的是放在/opt/
下载地址 http://subversion.apache.org/download.cgi#recommended-release
[root@c1 ~]# cd /opt/
[root@c1 opt]# tar -xvf subversion-1.9.7.tar.gz
[root@c1 opt]# cd subversion-1.9.7/
[root@c1 subversion-1.9.7]# ./configure --prefi=/opt/subversion
此时会出现第一个问题,看图:apr找不到,此时就要安装apr了
下载地址:http://apr.apache.org/download.cgi
下载并上传到/opt
[root@c1 subversion-1.9.7]# cd /opt/
[root@c1 opt]# tar -xvf apr-1.6.3.tar.gz
[root@c1 opt]# cd apr-1.6.3/
./configure --prefix=/opt/apr
(注意这里可能会出现gcc依赖的没有安装,此时就用yum安装gcc安装,要是有其他依赖需求就自行安装)
编辑 configure文件,查找 $RM "$cfgfile"这个地方,用#注释掉,然后重新编译安装就可以了。安装完以后再解压apr-util-1.5.4.tar.gz并依次执行
[root@c1 apr-1.6.3]# make
[root@c1 apr-1.6.3]# make install
[root@c1 apr-1.6.3]# cd ..
[root@c1 opt]# tar -xvf apr-util-1.6.1.tar.gz
[root@c1 opt]# cd apr-util-1.6.1/
[root@c1 apr-util-1.6.1]# ./configure --prefix=/opt/apr-utl --with-apr=/opt/apr
[root@c1 apr-util-1.6.1]# make
yum install expat-devel
make安装出现错误,解决错误后重新安装前记得用make clean清除一下
[root@c1 apr-util-1.6.1]# make
[root@c1 apr-util-1.6.1]# make install
安装完成,继续安装svn
[root@c1 apr-util-1.6.1]# cd /opt/subversion-1.9.7/
找度娘问了很长时间才得到正确的答案,那就是在执行命令的时候要添加指明aprutil的安装目录
[root@c1 subversion-1.9.7]# ./configure --prefix=/opt/subversion --with-apr-util=/opt/apr-util
复制上图给的地址,下载对应的文件,在wind下载解压后,将全部文件上传到subversion-1.9.7目录下的sqlite-amalgamation文件夹下(如果该文件不存在,创建之)
[root@c1 subversion-1.9.7]# mkdir sqlite-amalgamation
开始测试使用,先以本机为客户端测试
[root@c1]#cd /home #比如文件都在/home下
[root@c1 home]# mkdir svn-repo #创建大仓库
/opt/subversion/bin/svnadmin create /home/svn-repo/shop #创建小仓库shop
/opt/subversion/bin/svnadmin create /home/svn-repo/blog ##创建小仓库blog
conf #配置
db #存提交上来的代码
hhooks #实现高级功能
locks #锁的文件
启动
/opt/subversion/bin/svnserve -d -r /home/svn-repo/ #启动大仓库不用一个一个启动下面的小 仓库
netstat –nltp #确认启动,端口3690
linux本机做客户端测试:
测试往/home/svn-repo/shop小仓库里提交文件,比如说的本地路径是/
先和服务器取得联系
[root@c1 ~]# /opt/subversion/bin/svn checkout svn://127.0.0.1/shop
取出版本 0。
发现本地会创建个shop目录,去到shop文件夹里新建index.php测试
[root@c1 ~]# cd shop/
[root@c1 shop]# vim index.php
提交:提交前先加入
[root@c1 shop]# /opt/subversion/bin/svn add index.php
A index.php
[root@c1 shop]# /opt/subversion/bin/svn commit -m "index zhu shi" index.php
svn: E170001: 提交失败(细节如下):
svn: E170001: 认证失败 #要在shop下的conf设置
[root@c1 shop]# vim /home/svn-repo/shop/conf/svnserve.conf #先设置匿名用户,改完不需要重启
anon-access = write
[root@c1 shop]# /opt/subversion/bin/svn commit -m "index zhu shi" index.php
正在增加 index.php
传输文件数据.done
正在读取事务
提交后的版本为 1。
[root@c1 shop]# ll /home/svn-repo/shop/db/revs/0/ #提交到这里了
0 1
在提交个文件测试
[root@c1 shop]# vim user.php
[root@c1 shop]# /opt/subversion/bin/svn add user.php
A user.php
[root@c1 shop]# /opt/subversion/bin/svn commit -m "user zhu shi" user.php
[root@c1 shop]# vim /home/svn-repo/shop/db/revs/0/2 #这个2可以看上上面user.php里面提交的内容
提交的第一个文件index.php是1,第二个文件 user.php是2 ?