linux 安装svn服务端

时间:2021-11-24 09:42:55

 

1、去svn官网下载对应的svn服务端

官网地址:http://subversion.apache.org/news.html  

或者直接用我的版本svn1.8以及用到的辅助包,百度网盘地址 http://pan.baidu.com/s/1c20mgfQ


直接解压安装svn包,如果少了什么包,在configure的时候就会提示,少了什么就安装什么

我参照的是:http://jingyan.baidu.com/article/3c343ff7039de20d37796306.html


大概就是这几个包

subversion-1.8.15.tar.gz

apr-1.5.1.tar.gz

apr-util-1.5.3.tar.gz

sqlite-autoconf.tar.gz

zlib-1.2.8.tar.gz


一般缺少的是是标红的这几个依赖包,所以先安装他们,最后安装subversion-1.8.15.tar.gz即可


1、安装步骤,这里只介绍一个包的安装步骤,因为其他包的安装步骤是一样的命令,就不多解释了。


a、解压

tar zxvf subversion-1.8.15.tar.gz


b、然后进入解压后的文件

cd subversion-1.8.15

c、然后执行如下命令,配置安装目录(/usr/local/svn/svnapp),这个安装目录可以自己设置路径
./configure --prefix=/usr/local/svn/svnapp

d、编译
make


e、运行
make install


所有包的安装步骤都是如此。


安装步骤虽然如此有两个点需要注意,

第一点:

zlib-1.2.8.tar.gz 的解压不是 tar zxvf 来解压的

而是tar vf zlib-1.2.8.tar.gz 


第二点:配置apr-util-1.5.3.tar.gz

apr-util-1.5.3.tar.gz的安装目录时,需要添加依赖,--with apr


完整命令如下:

./configure --prefix=/usr/local/svn/apr-util --with-apr=/usr/local/svn/apr 

黑色部分是apr包的安装目录,如果你配置apr的安装目录不在其他路径,就写其他路径

同理安装subversion-1.8.15.tar.gz的时候,需要依赖的包更加多,命令如下:


./configure --prefix=/usr/local/svn/svnapp --with-apr=/usr/local/svn/apr --with-apr-util=/usr/local/svn/apr-util--with-sqlite=/usr/local/svn/sqlite--with-zlib=/usr/local/svn/zlib --without-berkeley-db


依赖了上面所有的包,并且选择了不适用db形式


安装成功之后,配置环境变量:


特别注意:很多文档写的配置环境变量是添加一个新的变量

环境变量的配置:

vi /etc/profile

然后在文件的最下面添加

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


千万不要单独写一个变量如

SVNPATH=$PATH:/usr/local/svn/svnapp/bin

export SVNPATH

这样会不起作用


保存之后执行 

source profile 

然后执行

env

即可看到刚刚配置的变量

这时候可以直接用命令查看svn

svnserve --version

既可以看到版本信息


当然正常情况是可以看到的,如果看不到,报错了,如我这种情况:



[root@localhost etc]# svnserve:/lib/libz.so.1
no version information available (required by /usr/local/svn/svnapp/lib/libsvn_delta-1.so.0)
n/svnapp/lib/libsvn_delta-1.so.0)


解决办法如下1、:


表明安装成功,但出现了错误提示:svn: /usr/lib/libz.so.1: no version information available (required by /usr/local/subversion/lib/libsvn_delta-1.so.0)


这是libsvn_delta-1.so.0依赖的库/usr/lib/libz.so.1不可用导致的。错误追踪:


[root@www ~]# cd /usr/lib


[root@www lib]# ll libz*


-rwxr-xr-x 1 root root 92598 Jan 10  2007 libz.a


lrwxrwxrwx 1 root root    13 Apr 20  2010 libz.so -> libz.so.1.2.3


lrwxrwxrwx 1 root root    13 Oct 13 14:45 libz.so.1 -> libz.so.1.2.3


-rwxr-xr-x 1 root root 75028 Jan 10  2007 libz.so.1.2.3


[root@www lib]# ldd libz.so.1.2.3


        linux-gate.so.1 =>  (0x00d8f000)


        libc.so.6 => /lib/libc.so.6 (0x00c0f000)


        /lib/ld-linux.so.2 (0x00bec000)


从上可以看到libz.so.1软链接到libz.so.1.2.3,libz.so.1.2.3是zlib-1.2.3生成的库,该库可能已被删除,而我已安装的zlib-1.2.5,见:


[root@www lib]# cd /usr/local/zlib/lib


[root@www lib]# ls


libz.a  libz.so  libz.so.1  libz.so.1.2.5  pkgconfig


[root@www lib]# ll libz*


-rw-r–r– 1 root root 101462 Oct 13 14:43 libz.a


lrwxrwxrwx 1 root root     13 Oct 13 14:43 libz.so -> libz.so.1.2.5


lrwxrwxrwx 1 root root     13 Oct 13 14:43 libz.so.1 -> libz.so.1.2.5


-rwxr-xr-x 1 root root  95004 Oct 13 14:43 libz.so.1.2.5


[root@www lib]# ldd libz.so.1.2.5


        linux-gate.so.1 =>  (0x002f8000)


        libc.so.6 => /lib/libc.so.6 (0×00134000)


        /lib/ld-linux.so.2 (0x00bec000)


故可将/usr/lib/libz.so.1重新链接至/usr/local/zlib/lib/libz.so.1.2.5,如下:


--这里是备份而已
[root@www lib]# cp /usr/lib/libz.so.1 /usr/lib/libz.so.1.bak

--这里是备份而已
[root@www lib]# cp /usr/local/zlib/lib/libz.so.1.2.5 /usr/local/zlib/lib/libz.so.1.2.5.bak

--这句才是主角
[root@www lib]# ln -fs /usr/local/zlib/lib/libz.so.1.2.5 /usr/lib/libz.so.1



如果仍然不行,反正我是仍然不行,用下一种简单办法:


解决办法2:

上面的办法解决不了,用此覆盖即可,因为我用了上面的办法依旧不行,用了下面这种世界顿时安静了


#覆盖原版本,可以先备份一下原版本  , 找到我们原来安装zlib-1.2.8.tar.gz的安装目录,我的安装目录如下 /usr/local/svn/zlib/lib

[root@localhost lib]# pwd
/usr/local/svn/zlib/lib
[root@localhost lib]# ls
libz.a  libz.so  libz.so.1  libz.so.1.2.8  libz.so.1.2.8.bak  pkgconfig
[root@localhost lib]# 


然后在安装目录中执行如下代码:


cp libz.so.1 /lib/ 


其中/lib/ 是因为报错信息中有提示
[root@localhost etc]# svnserve: /lib/libz.so.1
no version information available (required by /usr/local/svn/svnapp/lib/libsvn_delta-1.so.0)
n/svnapp/lib/libsvn_delta-1.so.0)


这时候在执行svnserver --version 再也没有错误了,世界安静了



好了,下面该说说配置了:

配置我参照的是:http://www.iitshare.com/linux-svn-installation-and-configuration.html



1、建立SVN的根目录,这里的路径可以自己设置,不一定是opt/svn,你可以放usr/svn13
mkdir -p /opt/svn/


2、建立一个产品仓库
mkdir -p /opt/svn/tshop/

这句是重点,这句执行完了之后,就会生产配置文件
svnadmin create /opt/svn/tshop/  


如果你们的研发中心有多个产品组,每个产品组可以建立一个SVN仓库
3、修改版本配置库文件


cd  /opt/svn/tshop/conf/

会有三个配置文件需要配置,这里统一截图

linux 安装svn服务端


linux 安装svn服务端


linux 安装svn服务端



8、启动svn:
方式一:svnserve -d -r /opt/svn/ #默认的启动端口号为3690,我用的这种方式
方式二:su – svn -c “svnserve -d –listen-port 9999 -r /opt/svn/”
其中:
su – svn表示以用户svn的身份启动svn;
-d表示以daemon方式(后台运行)运行;
–listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限;
-r /opt/svn 指定根目录是/opt/svn。
9、检查是否启动
netstat -tunlp | grep svn


10、剩下的就是本地用自己的客户端,上传文件下载文件了。不描述了,安


11、第二天过来发现上传的文件在服务器上看不到,


因为导入后,文件在版本库中是以特殊的形式存在db文件夹中的,不能以明文的方式查看。必须使用svn checkout导出工作副本(workcopy)才能以正常方式查看,如果是文件迁移,可以把所有的文件copy出来到另外一个目录,然后全部转移过去即可。

命令如下:

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

这个路径是你自己设定的,最好是放在你svn的配置库路径,在配置库路径下面创建一个文件夹

如我的配置库路径是:

/usr/local/svn/newrepos


我在此路径下面加了一个文件夹some,并且在some下加了一个project文件夹,所以命令如下

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



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