请仔细阅读安装包自带的readme文件!

=================================================

1. 先去官网,找安装包;

http://subversion.apache.org/

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会自动起来,

进入管理页面,

Subversion 状态运行中, 点击 “停止”,则显示关闭,然后点击“启动”发现无法启动,说18080端口被占用。
为什么呢? 因为点击“关闭”的时候,并没有真正的关闭掉httpd进程。
reboot后使用 ps -ef | grep svn 可以看到httpd进程已经开机启动,并且用的是root账户, 为啥呢?
然后,我进入 文件夹 “/etc/init.d/” 发现里面有 csvn 和 httpd的 link文件,原来是我最早一次安装的时候,用的root文件,同是生成的 开机启动文件的残留。
 
于是,果断rm删除,然后重新执行了一下
$ cd csvn
$ sudo bin/csvn-httpd install

一切就ok了, reboot后, 管理服务开机启动了, 进入页面 点击 “启动” 就把svn服务起来了,一切ok。

Redhat linux 安装SVN服务器 CollabNetSubversionEdge的更多相关文章

  1. Linux 安装SVN服务器 (转)

    一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...

  2. linux 安装svn服务器

    一.下载 http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz http://subversion.tigris.org/dow ...

  3. 160425、linux安装SVN服务器

    1:查看linux是否已经安装svn服务 [root@nb ~]# rpm -qa subversion subversion-1.6.11-15.el6_7.x86_64 2:安装svn #yum ...

  4. linux安装svn服务器(yum方式)

    1.查看yum是否安装         在终端中输入yum即可如果已经安装,会显示yum的参数         如果没有安装,会提示yum未安装或无效命令…… 2.安装svnyum -y instal ...

  5. Linux安装SVN服务器

    “svn都快淘汰了” #安装subversion yum -y install subversion #创建svn仓库基础路径 mkdir /home/svn #创建svn仓库 svnadmin cr ...

  6. Linux(Centos6.5)下安装svn服务器,并通过http访问

    linux安装svn其实很容易,个人觉得难就难在配置上,反复配置,琢磨,查找相关资料,总算是成功了.. 安装: 安装svn,一般情况下,选择yum方式安装还是比较简单的. ? 1 2 [root@mo ...

  7. 原 Linux搭建SVN 服务器2

    原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55)   阅读(12257) | 评论(3) 31人收藏此文章, 我要收藏 赞3 摘要 Linux搭建SVN 服务器 目录 ...

  8. 原 Linux搭建SVN 服务器

    原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55)   阅读(12257) | 评论(3) 31人收藏此文章, 我要收藏 赞3 摘要 Linux搭建SVN 服务器 目录 ...

  9. Linux搭建SVN 服务器

    Linux搭建SVN 服务器 1          安装SVN 2          使用客户端连接 2.1       使用windows的客户端 2.2       使用Linux下的命令行 3  ...

随机推荐

  1. MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

    背景描述 # Time: :: # User@Host: **[**] @ [**] Id: ** # Killed: # Query_time: Rows_examined: Rows_affect ...

  2. ubuntu18.04错误配置变量环境导致无法进入系统

    1.问题描述 错误配置环境变量(直接在/etc/profile文件末尾添加了export xxx),关机后一直在登录界面循环无法进入系统. ###环境变量的添加是在原有变量之后以冒号(:)分隔加入,并 ...

  3. Git 远程推送被拒绝的一种解决方案

    今天在推送的时候发生了如下错误信息: error: 无法推送一些引用到 'https://gitee.com/von_w/demo_app.git'提示:更新被拒绝,因为您当前分支的最新提交落后于其对 ...

  4. Java并发之线程状态及Thread常用方法

    本篇文章主要讲解线程的虚拟机状态和线程基本方法,希望可以加深对线程的使用理解. 一.线程的虚拟机状态 线程对象在不同的运行期间有不同的状态,状态信息定义在Thread公共静态枚举java.lang.T ...

  5. 关于vue中mockjs的使用

    使用vue的时候,后台可能不能及时作出接口,那么就需要我们前端自己模拟数据,使用mockjs可以进行模拟数据. 首先安装mockjs,cnpm install mockjs --save-dev: 其 ...

  6. thinkphp中的大字母的意思

    ThinkPHP 单字母函数 A() 内部实例化控制器 D() 实例化自定义模型类 M() 实例化一个基础模型类 R() 调用某个控制器的操作方法 L() 启用多语言的情况下,设置和获取当前的语言定义 ...

  7. python学习笔记:第11天 闭包及迭代器

    目录 1. 函数名的使用 2. 闭包 3. 迭代器 1. 函数名的使用 其实函数名也是一个变量,但它是一个比较特殊的变量,与小括号配合可以执行函数的变量: 函数名其实和内存一样,也可以使用print查 ...

  8. 863. All Nodes Distance K in Binary Tree

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...

  9. Java基础—IO小结(二)缓冲流与其它流的使用

    一.缓冲流的使用 每个字节流都有对应的缓冲流: BufferedInputStream / BufferedOutputStream 构造器: 方法摘要与对应节点流类似 使用缓冲流实现文件复制:实际中 ...

  10. AS 3.1 项目打包成jar或aar

    1.首先明白一个道理. Android Studio编译的时候会自动将项目生成jar和aar的,我一开始以为jar需要自己单独生成,其实AS已经自动生成了,网上找的很多资料都是一个复制的过程而已. 只 ...