linux 环境搭建svn服务
2017-05-02 00:00
190 查看
svn 是小团项目版本管理的最佳工具,下面是本人,在linux环境下面搭建svn服务的过程
由于公司的服务器是不可以上外网,只能内网访问,所以手动下载了
1.独立服务器 (例如:svn://xxx.com/xxx);
2.借助apache。(例如:http://svn.xxx.com/xxx);
为了不依赖apache,选择第一种方式-独立的svn服务器。
svn存储版本数据也有2种方式:
subversion-1.6.6.tar.gz
subversion-deps-1.6.6.tar.gz
下载地址
wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz
我用的是1.6.6版本
1.先检查服务器上是否装过svn
rpm -qa | grep subversion
2.查看svn的依赖包SSL
find / -name opensslv.sh
如果没找到 能上外网,可以直接用yum 命令安装
yum install openssl
yum install openssl-devel
不能连外网就只能手动,上传压缩包,手动安装
5.配置svn
在conf目录3个文件
authz passwd svnserve.conf
下面设置 svnserve.conf ,
之后便可以service svn start(restart/stop)方式启动SVN。
按照上述方法装的svn服务器,前几天宕机了,今天用的非root账号重启过后
执行了
svnserve --listen-port 9999 -d -r /users/ems/svndata 重启了svn
但是在本地提交到,svn服务器的时候报错如下
“/users/ems/svndata/repos/db/txn-current-lock”: 权限不够
因为安装svn的时候是root账号安装的,非root账号重启过后,是没有权限对root账号安装的db/txn-current-lock文件进行修改的
解决办法
su root 切换到root账号下执行下面命令
chmod 777 /users/ems/svndata/repos/db
再重启svn(随便什么账号都可以)
由于公司的服务器是不可以上外网,只能内网访问,所以手动下载了
1.独立服务器 (例如:svn://xxx.com/xxx);
2.借助apache。(例如:http://svn.xxx.com/xxx);
为了不依赖apache,选择第一种方式-独立的svn服务器。
svn存储版本数据也有2种方式:
subversion-1.6.6.tar.gz
subversion-deps-1.6.6.tar.gz
下载地址
wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz
我用的是1.6.6版本
1.先检查服务器上是否装过svn
rpm -qa | grep subversion
2.查看svn的依赖包SSL
find / -name opensslv.sh
如果没找到 能上外网,可以直接用yum 命令安装
yum install openssl
yum install openssl-devel
不能连外网就只能手动,上传压缩包,手动安装
上面的OK了以后,将下载的两个 tar.gz文件上传到linux服务器 tar zxvf subversion-1.6.6.tar.gz tar zxvf subversion-deps-1.6.6.tar.gz 解压后会生成subversion-1.6.6子目录,进入该子目录进行编译 ./configure --prefix=/usr/local/svn --with-openssl=/usr/include/openssl(此处是你服务器上opensslv.sh路径) --without-berkeley-db 后面以svnserve方式运行,所以不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db 如果编译时报如下错误: no acceptable C compiler found in $PATH 说明没有gcc库,使用如下命令安装gcc后再编译: yum -y install gcc 如果最后出现下面WARNING,我们直接忽略即可,因为不使用BDB存储。 configure: WARNING: we have configured without BDB filesystem support You don't seem to have Berkeley DB version 4.0.14 or newer installed and linked to APR-UTIL. We have created Makefiles which will build without the Berkeley DB back-end; your repositories will use FSFS as the default back-end. You can find the latest version of Berkeley DB here: http://www.sleepycat.com/download/index.shtml 3.安装 make 会执行一段时间 make install 如果 make install 出现下面错误: /home/upload/subversion-1.6.6/subversion/svnversion/.libs/lt-svnversion: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory make: *** [revision-install] Error 127 解决办法: 1、编辑/etc/ld.so.conf文件 vi /etc/ld.so.conf 添加下面一行代码 /usr/local/lib 2、保存后运行ldconfig: /sbin/ldconfig 注:ld.so.conf和ldconfig用于维护系统动态链接库。 3、然后再安装 make && make install 4.测试是否成功 /usr/local/svn/bin/svnserve --version 如果显示如下,svn安装成功: svnserve, version 1.6.6 (r40053) compiled Dec 25 2012, 13:14:38 Copyright (C) 2000-2009 CollabNet. Subversion is open source software, see http://subversion.tigris.org/ This product includes software developed by CollabNet (http://www.Collab.Net/). The following repository back-end (FS) modules are available: * fs_fs : Module for working with a plain file (FSFS) repository. Cyrus SASL authentication is available. 为了方便下操作,把svn相关的命令添加到环境变量中: echo export PATH=$PATH:/usr/local/svn/bin/ >> /etc/profile source /etc/profile
5.配置svn
5.1 简历svn根目录 mkdir -p /home/svndata/(路径自己随意定) 5.2 建立一个存放项目的文件夹(可以一个项目一个文件夹,将项目相关的东西全部放到此发文件中) mkdir -p /home/svndata/objectone svnadmin create /home/svndata/objectone 5.3上面命令执行完后,会在objectone 文件下面生成5个子文件夹 README.txt:略 conf:配置文件夹 db:版本数据存储目录 format:存储一个整数的文件,此整数代表库层次结构版本 hooks:存放版本库勾子目录 locks:存储库锁目录,用来跟踪库的访问者
在conf目录3个文件
authz passwd svnserve.conf
下面设置 svnserve.conf ,
anon-access = none auth-access = write password-db = passwd authz-db = authz passwd 设置用户名密码,authz 对用户进行分组,对分组的用户进行权限设置 (详细自己百度) 建立启动svn的用户 useradd svn 根据提示,为用户svn设置密码 允许用户svn访问版本库: chown -R svn:svn /home/svndata/objectone/ 启动svn: 方式一:svnserve -d -r /home/svndata/objectone/ #默认的启动端口号为3690 方式二:su – svn -c “svnserve -d –listen-port 9999 -r /home/svndata/objectone/” 其中: su – svn表示以用户svn的身份启动svn; -d表示以daemon方式(后台运行)运行; –listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限; -r /opt/svn 指定根目录是/opt/svn。 检查是否启动 netstat -tunlp | grep svn 或者 netstat -tunlp | grep 9999 如果显示以下信息说明启动成功 tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 10973/svnserve 6将svn加入到开机启动 编辑rc.local文件:vi /etc/rc.d/rc.local 加入如下启动命令: /usr/local/svn/bin/svnserve -d –listen-port 9999 -r /home/svndata/objectone 如果想停止svn,则使用如下命令: killall svnserve 如果想将svn作为服务: 在/etc/rc.d/init.d/目录下新建名为svn的文件 并设置权限为755:chmod 755 /etc/rc.d/init.d/svn 编辑svn文件:vi /etc/rc.d/init.d/svn, 在里面添加如下代码: #!/bin/bash # build this file in /etc/rc.d/init.d/svn # chmod 755 /etc/rc.d/init.d/svn # centos下可以用如下命令管理svn: service svn start(restart/stop) SVN_HOME=/opt/svn if [ ! -f "/usr/local/svn/bin/svnserve" ] then echo "svnserver startup: cannot start" exit fi case "$1" in start) echo "Starting svnserve..." /usr/local/svn/bin/svnserve -d --listen-port 9999 -r $SVN_HOME echo "Finished!" ;; stop) echo "Stoping svnserve..." killall svnserve echo "Finished!" ;; restart) $0 stop $0 start ;; *) echo "Usage: svn { start | stop | restart } " exit 1 esac
之后便可以service svn start(restart/stop)方式启动SVN。
按照上述方法装的svn服务器,前几天宕机了,今天用的非root账号重启过后
执行了
svnserve --listen-port 9999 -d -r /users/ems/svndata 重启了svn
但是在本地提交到,svn服务器的时候报错如下
“/users/ems/svndata/repos/db/txn-current-lock”: 权限不够
因为安装svn的时候是root账号安装的,非root账号重启过后,是没有权限对root账号安装的db/txn-current-lock文件进行修改的
解决办法
su root 切换到root账号下执行下面命令
chmod 777 /users/ems/svndata/repos/db
再重启svn(随便什么账号都可以)
相关文章推荐
- 初学LINUX搭建PHP服务环境
- Linux环境下搭建Apache+subversion+svnmanager
- linux下svn服务搭建
- Apache服务环境在Linux中搭建详解
- [环境部署] Linux搭建SVN服务器之Centos篇
- linux之编程环境搭建步骤--nfs/tftp/svn/boost/dnw/samba
- linux下SVN服务搭建:apache+svn+usvn+php+mysql
- LINUX下环境SVN服务器搭建
- dhcp服务的讲解和在Linux环境下的搭建
- linux搭建svn服务
- 利用WampServer服务来搭建Linux系统安装环境
- linux svn服务搭建
- 环境安装系列 - Linux上搭建简易Git服务01
- Linux环境下搭建Apache+subversion+svnmanager
- 【转】linux window环境下svn服务器搭建
- linux6.0 SVN 服务搭建
- linux下apache+svn+ssl的环境搭建(申请免费的SSL证书)
- Linux下利用jdk+tomcat+mysql搭建JavaWeb服务的环境
- linux环境搭建svn