文章目录
- 前言
- 1 在线安装
- 2 离线安装
- 2.1 下载安装包
- 2.2 软件安装
- 2.3 异常处理
- 异常情况1 :缺少C编译器
- 异常情况2 :缺少apr模块
- 异常情况3 :缺少apr-util模块
- 异常情况4 :缺少SQLite模块
- 异常情况5 :缺少zlib模块
- 异常情况6 :lz4或者utf8proc异常
- 3 仓库创建及权限分配
- 4 启动和关闭
前言
Linux系统下SVN服务器搭建及遇到相关问题和处理方法记录
1 在线安装
a. 在线安装方式相对简单,根据不同系统类型安装指令之下如下
Centos系统:yum -y install subversion
Ubuntu系统:apt-get install subversion
b. 检查版本是否安装成功
指令: svnserve --version
c. 查看安装路径
指令:which svnserve
或 rpm -ql subversion
2 离线安装
2.1 下载安装包
根据实际需要自行下载对应的安装包版本即可。我这边使用的安装包为subversion-1.14.2.tar.gz。
最新版本:https://subversion.apache.org/download历史版本:https://archive.apache.org/dist/subversion/
注:在版本迁移中要避免出现类似“expected fs format between 1 and 4 found format 6”的问题,尽量选择1.7.2以上版本。
2.2 软件安装
a. 将安装包上传到系统某一路径,该路径可根据情况自行设置,这边路径为 /usr/local
b. 解压压缩包
指令:tar -zxf subversion-1.14.2.tar.gz
c 将解压后文件名更名为svn(此步骤可不操作,个人习惯)
指令:mv subversion-1.14.2 svn
e. 进入svn路径
指令:cd svn
f. 执行配置文件,测试编译是否可行。若出现异常,根据 2.3 异常处理 中各异常情况处理后,再次执行本步骤,直至测试可行为止。
正常指令:./configure
或者 ./configure --prefix=/opt/subversion
异常2/3/6处理后指令如下:
异常2:./configure --with-apr=/usr/local/apr
异常3: ./configure --with-apr-util=/usr/local/apr
异常6 lz4: ./configure --with-lz4=internal
异常6 utf8proc: ./configure --with-utf8proc=internal
所有异常均有:./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-lz4=internal --with-utf8proc=internal
注:
a. 第二种指令是主动设置安装路径,第一种为默认设置在/usr/local/bin中。个人使用了默认设置。
b. 出现异常后执行指令,with模块根据实际异常模块添加
c. 若有不在这6个异常外的其他异常,可参考
2.3 异常处理
异常情况1 :缺少C编译器
A. 异常提示
B. 解决方案
a. 在线安装C编译器
指令:yum -y install gcc
b. 离线安装
下载指令: yum install --downloadonly --downloaddir=./gcc gcc
注:可使用其他方式下载,所需文件如下所示
cpp-4.8.5-44.el7.x86_64.rpm
gcc-4.8.5-44.el7.x86_64.rpm
gcc-c+±4.8.5-44.el7.x86_64.rpm
libgcc-4.8.5-44.el7.x86_64.rpm
libgomp-4.8.5-44.el7.x86_64.rpm
libstdc+±4.8.5-44.el7.x86_64.rpm
libstdc+±devel-4.8.5-44.el7.x86_64.rpm
安装指令:rpm -ivh *.rpm --nodeps --force
执行结果:
注:因rpm安装依赖问题,直接所有文件统一安装比较方便。也可单个文件逐个安装,安装顺序如上图所示即可。
异常情况2 :缺少apr模块
A. 异常提示
B. 解决方案
a. 下载安装包
根据需要下载对应版本,个人使用版本为 apr-1.5.1.tar.gz
最新版本:https://apr.apache.org/download.cgi历史版本:https://archive.apache.org/dist/apr/
b. 将安装包上传到服务器指定路径/usr/local
(路径可执行设置),解压并进入解压后文件夹
指令:tar –zxf apr-1.5.1.tar.gz
cd apr-1.5.1/
c. 配置执行,--with-apr
后为安装路径,可自行设置
指令:./configure --with-apr=/usr/local/apr
d. 安装apr模块
指令: make && make install
异常情况3 :缺少apr-util模块
A. 异常提示
B. 解决方案
a. 下载安装包
根据需要下载对应版本,个人使用版本为 apr-util-1.6.1.tar.gz
最新版本:https://apr.apache.org/download.cgi历史版本:https://archive.apache.org/dist/apr/
b. 将安装包上传到服务器指定路径/usr/local(路径可执行设置),解压并进入解压后文件夹
指令:tar -zxf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1/
c. 配置执行,--with-apr
后为安装路径,可自行设置,最好与apr模块为同一个
指令:./configure --with-apr=/usr/local/apr
d. 安装apr-util模块
指令: make && make install
e. 若出现如下异常,表示缺少expat库
f. 在线安装expat库
指令: yum install expat-devel
g. 离线安装expat库,下载安装包expat_2.0.1.orig.tar.gz, 并上传到服务器指定路径
下载网址:https://launchpad.net/ubuntu/+source/expat/2.0.1-7.2ubuntu1.4
h. 解压expat安装包并进入解压后文件夹
指令:tar -zxf expat_2.0.1.orig.tar.gz
cd expat-2.0.1/
i 执行配置文件、编译及安装
指令:./configure
make & make install
j 安装完成后,重复执行步骤 c、d
异常情况4 :缺少SQLite模块
A. 异常提示
B. 解决方案
a. 下载安装包
根据需要下载对应版本,个人使用版本为 sqlite-autoconf-3380200.tar.gz
最新版本:https://www.sqlite.org/download.html
b. 将安装包上传到服务器指定路径/usr/local(路径可执行设置),并解压
指令:tar –zxf sqlite-autoconf-3380200.tar.gz
c. 将解压后文件更名为sqlite-amalgamation,并放置到svn文件夹下
指令: mv sqlite-autoconf-3380200 svn/sqlite-amalgamation
异常情况5 :缺少zlib模块
A. 异常提示
B. 解决方案
a. 下载安装包
根据需要下载对应版本,个人使用版本为 zlib-1.2.12.tar.gz
最新版本:http://zlib.net/
b. 将安装包上传到服务器指定路径/usr/local
(路径可执行设置),并解压并进入解压后文件夹
指令:tar –zxf zlib-1.2.12.tar.gz
cd zlib-1.2.12/
c. 执行配置,并编译安装
指令:./configure
make && make install
异常情况6 :lz4或者utf8proc异常
A. 异常提示
lz4异常:
utf8proc异常:
B. 解决方案
在svn编译指令./configure
最后添加--with-lz4=internal
或者--with-utf8proc=internal
3 仓库创建及权限分配
a. 建立仓库根目录
选择其一路径作为SVN仓库根目录
指令: mkdir /svn/store
b. 创建仓库project
指令: svnadmin create /svn/store/project
c. 进入配置仓库配置路径
指令:cd /svn/store/project/conf/
d. 编辑仓库服务器配置文件svnserve.conf
指令:vi svnserve.conf
编辑内容:
[general]
anon-access = none #无权限的不给操作
auth-access = write #通过用户验证可读可写 read 则可读
password-db = passwd #用户密码配置文件路径
authz-db = authz #路径权限配置文件路径
e. 编辑用户管理配置文件 passwd
指令:vi passwd
编辑内容:
[users]
admin = admin #格式为:用户名 = 密码, 等号前后必须有空格
f. 编辑权限管理配置文件 authz
指令:vi authz
编辑内容:
[/] #仓库路径
admin = rw #格式为: 用户名 = rw, r只读, rw可读可写
4 启动和关闭
a. 启动
指令: svnserve -d -r /svn/store
或svnserve -d -r /svn/store --listen-port=3690
注:第一个指令默认端口,第二个指令指定端口。 /svn/store为仓库根目录
b. 关闭
指令:killall svnserve
c. 卸载
离线:直接删除安装目录及相关路径配置
在线:yum remove subversion
d. 开机自启动
i. 建立自动启动脚本running.sh
指令:vi /svn/running.sh
编辑内容:
#!/bin/bash
#开机启动svn
svnserve -d -r /svn/store --listen-port=3690
ii 给予启动脚本执行权限
指令:chmod 777 running.sh
iii. 编辑启动文件/etc/rc.d/rc.local
指令:vi /etc/rc.d/rc.local
编辑内容:
#svn启动脚本绝对路径
/svn/running.sh
vi. 给予启动文件执行权限
指令:chmod 777 /etc/rc.d/rc.local