Linux下的SVN服务器搭建

SVN服务器yum搭建

参考1
参考2
系统环境:Centos 6.5

  1. 通过yum命令安装svnserve

yum -y install subversion

此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
若需查看svn安装位置,可以用以下命令:

rpm -ql subversion

  1. 创建版本库目录

mkdir /usr/svn
mkdir /usr/svn/svnrepos

  1. 创建svn版本库,在第二步建立的路径基础上,创建版本库,命令如下:

svnadmin create /usr/svn/svnrepos/hand (hand为你预期的版本库名称,可自定义)

创建成功后,进入目录

cd /usr/svn/svnrepos/hand

进入目录,可以看见如下文件信息:


image
  1. 配置修改
    conf目录下,一共存放三份重要的配置文件,如下:
image

authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件

细节修改

  1. 修改authz文件信息

cd /usr/svn/svnrepos/hand/conf
vi authz

在文件内容的末尾,添加如下:


账号授权

末尾内容如下:可清掉上面不要的配置段

[\]
xies = rw

rw表示赋予此账号可读写的权限,请注意[]中的斜杠,一定是反斜杠,有些教程说,需添加版本库名称在括号内,我直接建议就这写,这样写允许访问的权限更大,避免一些错误

  1. 修改passwd文件信息

vi passwd

账号密码文件无需做修改,也是直接将账号和密码信息追加到文件中即可,注意格式为:账号 = 密码

xies = 123456
账号密码
  1. 修改配置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

执行结果如下图:

image
启动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服务器源码搭建

参考1
参考2

安装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

  1. 安装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
  1. 安装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
  1. 安装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
  1. 安装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
  1. 修改httpd.conf
    cd /usr/local/apache/conf/
    vi httpd.conf
    将ServerName前的“#”去掉,将www.example.com改成
    serverName 129.211.24.177:80

  2. 启动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

  1. 安装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
  1. 复制libsqlite3.so.0共享库
    cp /usr/local/sqlite-amalgamation-3.5.9/lib/libsqlite3.so.0 /usr/lib/

  2. 复制到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

  3. 登录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

参考1
参考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  --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

  1. 修改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
  1. 编译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
显示版本说明安装成功

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342