请仔细阅读安装包自带的readme文件!
=================================================
1. 先去官网,找安装包;
http://www.collab.net/downloads/subversion
我下载的是 CollabNetSubversionEdge-4.0.8_linux-x86.tar.gz
2. 创建svn账户 比如取名 svnuser,后续使用该用户来安装、启动svn服务
useradd svnuser // 加用户
passwd svnuser //设置密码
3. 将svnuser加入sudeor
a. 先执行 chmod u+w /etc/sudoer 打开修改权限
b. 然后用root用户进行修改,修改完成后保存退出
找到root ALL=(ALL) ALL,在下一行加入svnuser ALL=(ALL) ALL,保存退出
c. 再执行 chmod u-w /etc/sudoer 关闭修改权限
4. 安装需要java和python环境
java -version
python -V
判断是否已经有java和python环境 没有的话请自行安装
5. 设置java环境变量
export JAVA_HOME=/usr/java/default
后面这个路径使用whereis java / which java来判断
我的是java执行路径在 /usr/bin/java,因此 export JAVA_HOME=/usr
执行下面命令测试环境变量是否有效:
#$JAVA_HOME/bin/java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
接下来请切换用户到svnuser ,绝对不要使用root账户来做操作,否则会无法启动服务。
6.切换到您要安装CollabNet Subversion的目录,本次安装我将SVN安装到/opt/下。
$ cd /opt
7. 解压缩文件后,会在当前目录下生成名为“csvn”的目录。使用svnuser,不要用root账户,如果你发现svnuser没有opt文件夹的权限,无法解压,
那么你要么换个文件夹,要么给svnuser赋权,让他可以操作opt文件夹。
$ tar zxf CollabNetSubversionEdge-x.y.z_linux-x86.tar.gz
8.为了安装subversion,你需要拥有root权限,或使用sudo 获取root权限(第3步svnuser已经获得权限了)
$ su - svnuser
$ cd csvn
$ sudo -E bin/csvn install
In addition to configuring your system so that the server is started
with the system, it will also write the current JAVA_HOME and the
current username in to the file data/conf/csvn.conf. You can edit this
file if needed as it controls the startup settings for the application.
By setting the JAVA_HOME and RUN_AS_USER variables in this file, it
ensures they are set correctly when the application is run.
9.启动subversion服务,不能用root运行,使用svnuser。
$ bin/csvn start
10. Optional. Configure the Apache Subversion server to start automatically when the system boots. 也使用svnuser
$ cd csvn
$ sudo bin/csvn-httpd install
11. 第九步启动后,
[xxx@localhost csvn]$ bin/csvn start
Starting CSVN Console......
CSVN Console started
Waiting for application to initialize (this may take a minute)...................
CSVN Console is ready at http://localhost:3343/csvn
我在外网访问,使用 http://IP:Port/csvn 发现无法访问,什么原因呢?
于是我去检查防火墙iptable配置,发现端口没有开,当然,我先把防火墙直接关掉,测试了一下外网可以访问,于是修改配置,启动防火墙,一切ok。
防火墙启动关闭命令:
Usage: /etc/init.d/iptables {start|stop|restart|condrestart|status|panic|save}
查看配置:cat /etc/sysconfig/iptables
============================================
参考文档:
http://blog.sina.com.cn/s/blog_6ffa25ae01015vz9.html
http://blog.csdn.net/hazy/article/details/8771806
http://blog.163.com/weibingtie@126/blog/static/17090237920130241326141/
http://hi.baidu.com/ttyard/item/8fe1960ac32e5574bfe97eef
http://bbs.csdn.net/topics/360115598
====================================
后记,一切搞定后,进入管理页面,点击启动svn服务,结果无法启动,从log看报错如下:
2014-07-28 05:12:17,645 [qtp279633047-1399] WARN console.LifecycleService - Server start attempt failed with code=1
2014-07-28 05:12:17,645 [qtp279633047-1399] WARN console.LifecycleService - Output:
2014-07-28 05:25:53,215 [qtp279633047-1493] ERROR console.CommandLineService - Exit status=1 Process err output: AH00543: httpd: bad user name 7039
// 原因是我最初解压压缩包的时候,用的root账户,遇到这个情况,有两个方式解决:
1. 删除目录,重新安装,用正确的用户; 这样太麻烦,于是用第二个方法。
2. 修改csvn目录的 所属用户组 和 所属用户:
chgrp -R svnuser csvn //修改目录所属用户组, svnuser是用户名, csvn是安装目录, -R 代表递归修改子目录
chown -R svnuser csvn //修改目录所属用户, svnuser是用户名, csvn是安装目录, -R 代表递归修改子目录
修改完毕后,使用svnuser 重新启动服务。
$ bin/csvn stop
$ bin/csvn start
=================================
后记2: 发现一个奇怪现象,reboot linux服务器后,svn会自动起来,
进入管理页面,
$ sudo bin/csvn-httpd install
一切就ok了, reboot后, 管理服务开机启动了, 进入页面 点击 “启动” 就把svn服务起来了,一切ok。