文章目录

  • 前言
  • 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 svnserverpm -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. 异常提示

linux 离线安装Sybase Linux 离线安装svn_svn


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 执行结果:

linux 离线安装Sybase Linux 离线安装svn_svn_02

注:因rpm安装依赖问题,直接所有文件统一安装比较方便。也可单个文件逐个安装,安装顺序如上图所示即可。

异常情况2 :缺少apr模块

A. 异常提示

linux 离线安装Sybase Linux 离线安装svn_svn_03


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.gzcd apr-1.5.1/

c. 配置执行,--with-apr 后为安装路径,可自行设置
指令:./configure --with-apr=/usr/local/apr

d. 安装apr模块
指令: make && make install

异常情况3 :缺少apr-util模块

A. 异常提示

linux 离线安装Sybase Linux 离线安装svn_下载安装_04


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.gzcd apr-util-1.6.1/

c. 配置执行,--with-apr后为安装路径,可自行设置,最好与apr模块为同一个
指令:./configure --with-apr=/usr/local/apr

d. 安装apr-util模块
指令: make && make install

e. 若出现如下异常,表示缺少expat库

linux 离线安装Sybase Linux 离线安装svn_下载安装_05


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.gzcd expat-2.0.1/

i 执行配置文件、编译及安装
指令:
./configuremake & make install

j 安装完成后,重复执行步骤 c、d

异常情况4 :缺少SQLite模块

A. 异常提示

linux 离线安装Sybase Linux 离线安装svn_下载安装_06


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. 异常提示

linux 离线安装Sybase Linux 离线安装svn_下载安装_07


B. 解决方案

a. 下载安装包
根据需要下载对应版本,个人使用版本为 zlib-1.2.12.tar.gz

最新版本:http://zlib.net/

b. 将安装包上传到服务器指定路径/usr/local(路径可执行设置),并解压并进入解压后文件夹
指令:
tar –zxf zlib-1.2.12.tar.gzcd zlib-1.2.12/

c. 执行配置,并编译安装
指令:
./configure make && make install

异常情况6 :lz4或者utf8proc异常

A. 异常提示

lz4异常:

linux 离线安装Sybase Linux 离线安装svn_linux 离线安装Sybase_08


utf8proc异常:

linux 离线安装Sybase Linux 离线安装svn_linux 离线安装Sybase_09


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/storesvnserve -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