Centos6.5 上 Subversion 1.10.0的 编译安装以及自启动配置

1.下载subversion、apr、apr-util、sqlite-amalgamation:

wget https://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.10.0.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.3.tar.gz
wget https://www.sqlite.org/2018/sqlite-amalgamation-3240000.zip

yum直接安装svn,安装版本是1.6.x,这里下载的是1.10.0的源码,需要编译安装
apr、apr-util是编译svn需要的工具,至于sqlite-amalgamation,我也不知道干嘛的

2.安装编译环境

yum install unzip openssh-clients zlib zlib-devel gcc-c++ -y

3.编译安装apr、apr-util

tar -zxf apr-1.6.3.tar.gz 
cd ./apr-1.6.3
./configure --prefix=/usr/local/apr && make && make install
tar -zxf 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

其中prefix指定安装apr、apr-util的目录
编译apr遇到一个错误:xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
需要安装

yum install expat-devel

4.编译安装subversion

tar -zxf subversion-1.10.0.tar.gz
unzip sqlite-amalgamation-3240000.zip
mv sqlite-amalgamation-3240000 subversion-1.10.0/sqlite-amalgamation
cd  subversion-1.10.0
./configure --prefix=/usr/local/subversion --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-zlib --enable-maintainer-mode
make
make install

这里需要注意./configure命令,这个命令作为编译配置有很多选项,如果失败,需要添加合适的选项,错误如下:

错误1:configure: error: Subversion requires LZ4 >= r129, or use --with-lz4=internal
解决:./configure命令添加 --with-lz4=internal选项

错误2:configure: error: Subversion requires UTF8PROC
解决:./configure命令添加  --with-utf8proc=internal

5.subversion添加到path

vim ~/.bash_profile

export SVN_HOME=/usr/local/subversion
export PATH=$PATH:$SVN_HOME/bin
source ~/.bash_profile

6.创建subversion库首先需要创建一个文件夹,subversion所有的库都应该放在这个文件夹下

mkdir /home/{user}/subversion

cd /home/{user}/subversion
svnadmin create test

这时创建代码库成功

7.启动svn服务

svnserve -d -r /home/{user}/subversion --listen-port=3690

注意这里,需要将所有代码库的父文件夹作为参数,这样服务才能查找到代码库
此时即可以 svn://xxx.xxx.1.xxx:3690:/test来访问创建的代码库了

8.svn开机自启
su进入root用户

vim /etc/rc.d/rc.local
/usr/local/subversion/bin/svnserve -d -r /home/{user}/subversion --listen-port=3690

这里/etc/rc.d/rc.local是系统的开机自启动脚本
注意:这里需要使用svnserve的完整路径,因为运行此脚本时不识别PATH

9.修改防火墙

vim /etc/sysconfig/iptables
*filter
#代表输入、转发、输出网络请求,只接受0:0端口,即不接受
:INPUT ACCEPT [0:0]   
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
#tcp协议的输入网络请求,接收以下端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

重启防火墙

/etc/init.d/iptables restart

查看当前状态

iptables -L -n

10.svn权限配置

修改库文件夹conf/svnserve.conf
设置
#匿名用户访问权限
anon-access = write
#授权用户访问权限
auth-access = write

注意:配置选项之前不能有空格


 

你可能感兴趣的:(subversion)