SVN服务器yum搭建
- 通过yum命令安装svnserve
yum -y install subversion
此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
若需查看svn安装位置,可以用以下命令:
rpm -ql subversion
- 创建版本库目录
mkdir /usr/svn
mkdir /usr/svn/svnrepos
- 创建svn版本库,在第二步建立的路径基础上,创建版本库,命令如下:
svnadmin create /usr/svn/svnrepos/hand (hand为你预期的版本库名称,可自定义)
创建成功后,进入目录
cd /usr/svn/svnrepos/hand
进入目录,可以看见如下文件信息:
- 配置修改
conf目录下,一共存放三份重要的配置文件,如下:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
细节修改
- 修改authz文件信息
cd /usr/svn/svnrepos/hand/conf
vi authz
在文件内容的末尾,添加如下:
末尾内容如下:可清掉上面不要的配置段
[\]
xies = rw
rw表示赋予此账号可读写的权限,请注意[]中的斜杠,一定是反斜杠,有些教程说,需添加版本库名称在括号内,我直接建议就这写,这样写允许访问的权限更大,避免一些错误
- 修改passwd文件信息
vi passwd
账号密码文件无需做修改,也是直接将账号和密码信息追加到文件中即可,注意格式为:账号 = 密码
xies = 123456
- 修改配置svnserve
vi svnserve.conf
原始文件内容,都被注释掉的,我们只需要添加如下:重点:去掉相关注释即可
anon-access = none `将匿名用户的权限置为空`
password-db = passwd `引用权限用户信息为passwd文件`
到此,配置已经全部完成,账号信息已经添加成功
防火墙开启
多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题,大家按照如下3条命令逐一执行即可
/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/init.d/iptables save
service iptables restart
执行结果如下图:
启动svn服务器
在跟目录下,执行如下命令
svnserve -d -r /usr/svn/svnrepos
启动成功后
查看服务启动是否成功
ps -ef|grep svn
root 12341 1 0 16:16 ? 00:00:00 svnserve -d -r /usr/svn/svnrepos
客户端访问svn服务器
在windows客户端,输入地址:
svn://ip地址:3690/hand
注意:ip地址为你linux的ip,hand为前文创建的版本库名称,3690为svn默认端口
弹出输入用户名和密码,输入即可访问
SVN服务器源码搭建
安装Subversion
下载安装
Subversion源码下载
下载地址:http://subversion.apache.org/download
下载地址2
wget http://subversion.tigris.org/downloads/subversion-1.6.12.tar.bz2
tar jxvf subversion-1.6.12.tar.bz2
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.12.tar.gz
tar -zxvf subversion-deps-1.6.12.tar.gz
cd subversion-1.6.12
rm –rf apr
rm -rf apr-util
./configure --prefix=/usr/local/subversion
- 建议用高版本
wget http://mirror.bit.edu.cn/apache/subversion/subversion-1.9.10.tar.gz
tar jxvf subversion-1.6.12.tar.bz2
wget http://mirror.bit.edu.cn/apache/subversion/subversion-deps-1.9.10.tar.gz
tar -zxvf subversion-deps-1.6.12.tar.gz
cd subversion-1.6.12
rm –rf apr
rm -rf apr-util
./configure --prefix=/usr/local/subversion
configure依赖缺少报错1
./configure --prefix=/usr/local/subversion
configure: error: no suitable apr found
安装apr、apr-util与apache
下载apr与apr-util,下载地址:http://apr.apache.org/
下载版本:apr-1.5.1.tar.gz apr-util-1.5.4.tar.gz
- 安装apr
cd /usr/local/src
wget http://mirror.bit.edu.cn/apache//apr/apr-1.7.0.tar.gz
tar -zxvf apr-1.7.0.tar.gz
cd apr-1.7.0
./configure --prefix=/usr/local/apr
出现这个提示:cannot remove `libtoolT’: No such file or directory
- 解决方案:
vi configure
查找$RM "$cfgfile"
31880行这个地方,用#注释掉,然后重新编译安装就可以了。
make &&make install
- 安装apr-util
cd /usr/local/src
wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
tar -zxvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make &&make install
- 安装pcre
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
tar -zxvf pcre-8.39.tar.gz
cd pcre-8.39
./configure --prefix=/usr/local/pcre
make
make install
- 安装apache
安装目录是/usr/local/apache
wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.37.tar.gz
tar zxvf httpd-2.4.37.tar.gz
cd httpd-2.4.37
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre --enable-module=so --enable-mods-shared=all --enable-module=rewirte --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --disable-cgid --disable-cgi
make&& make install
修改httpd.conf
cd /usr/local/apache/conf/
vi httpd.conf
将ServerName前的“#”去掉,将www.example.com改成
serverName 129.211.24.177:80启动apache
cd /usr/local/apache/bin/
./apachectl start
通过本机浏览器输入地址129.211.24.177:80
关闭 pkill -9 httpd
参考
configure依赖缺少报错2
cd /usr/local/src/subversion-1.6.12
./configure --prefix=/usr/local/subversion --with-apr-util=/usr/local/apr-util --with-apr=/usr/local/apr
configure: error: Subversion requires SQLite
- 安装SQLite 参考
cd /usr/local/src
https://www.sqlite.org/2019/sqlite-amalgamation-3280000.zip
unzip sqlite-amalgamation-3280000.zip
wget http://www.sqlite.org/sqlite-amalgamation-3.5.9.tar.gz
tar -zxvf sqlite-amalgamation-3.5.9.tar.gz
cd sqlite-amalgamation-3.5.9
./configure --prefix=/usr/local/sqlite-amalgamation
make &&make install
复制libsqlite3.so.0共享库
cp /usr/local/sqlite-amalgamation-3.5.9/lib/libsqlite3.so.0 /usr/lib/复制到subversion-1.6.12/sqlite-amalgamation下
重要
find / -name sqlite3.c
cd /usr/local/src/sqlite-amalgamation-3.5.9/
mkdir /usr/local/src/subversion-1.6.12/sqlite-amalgamation
cp sqlite3.c /usr/local/src/subversion-1.6.12/sqlite-amalgamation登录sqlite3 (可跳过)
sqlite3 ex1
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
configure依赖缺少报错3
cd /usr/local/src/subversion-1.6.12
./configure --prefix=/usr/local/subversion --with-apr-util=/usr/local/apr-util --with-apr=/usr/local/apr
configure: error: subversion requires zlib
解决方案:从http://zlib.net/下载zlib-1.2.8.tar.gz,并安装
cd /usr/local/src
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make &&make install
configure依赖缺少报错4
cd /usr/local/src/subversion-1.6.12
./configure --prefix=/usr/local/subversion --with-apr-util=/usr/local/apr-util --with-apr=/usr/local/apr --with-zlib=/opt/zlib=/usr/local/zlib LDFLAGS="-L/usr/lib64 -L/lib64"
configure: error: failed to recognize APR_INT64_T_FMT on this platform
- 修改configure
vi configure
注释所有以下内容
# if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
# as_fn_error $? "failed to recognize APR_INT64_T_FMT on this platform" "$LINENO" 5
# fi
- 编译make && make install
subversion/libsvn_subr/sqlite.c:57:26: fatal error: sqlite3ext.h: No such file or directory
compilation terminated.
Makefile:789: recipe for target 'subversion/libsvn_subr/sqlite.lo' failed
make: *** [subversion/libsvn_subr/sqlite.lo] Error 1
原因:sqlite-amalgamation版本太低
解决办法:去官网https://www.sqlite.org/download.html下载一个最新的
如sqlite-amalgamation-3280000.zip(2.21 MiB)
/usr/local/src/sqlite-amalgamation-3280000
cp * /usr/local/src/subversion-1.9.10/sqlite-amalgamation/
再直接把解压的文件中的全部复制过去了
make && make install
验证
svnserve --version
验证SVN安装报错
svnserve: symbol lookup error: /lib64/libsvn_subr-1.so.0: undefined symbol: sqlite3_initialize
在/usr/local/lib/下建立两个链接文件即可解决问题。
find / -name libapr-1.so.0
find / -name libaprutil-1.so.0
find / -name libsvn_subr-1.so.0
sudo ln -s /usr/lib/libapr-1.so.0 /usr/local/apr/lib/libapr-1.so.0
sudo ln -s /usr/lib/libaprutil-1.so.0 /usr/local/apr-util/lib/libaprutil-1.so.0
sudo ln -s /lib64/libsvn_subr-1.so.0 /usr/local/subversion/lib/libsvn_subr-1.so.0
cp /usr/local/apr/lib/libapr-1.so.0 /usr/lib
cp /usr/local/apr-util/lib/libaprutil-1.so.0 /usr/lib
cp /usr/local/subversion/lib/* /lib64
svnserve --version
显示版本说明安装成功
重新配置subversion
cd /usr/local/src/subversion-1.6.12
./configure --prefix=/usr/local/subversion --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --with-zlib=/usr/local/zlib
make &&make install
建立软链接
ln /usr/local/subversion/bin/svn /sbin/svn
添加环境变量
vi /etc/profile
#svn环境变量
export SVN_HOME=/usr/local/subversion
export PATH=${PATH}:${SVN_HOME}/bin
svnserve --version
显示版本说明安装成功