본문 바로가기

Linux

[CentOS] SVN 설치 및 부팅시 SVN 데몬 자동실행

반응형

내가 일하는 곳에서는 SVN을 통한 소스 이력관리를 하고 있다.
소스 이력관리를 하게 될때 좋은점은 이전 파일을 롤백한다던지, 문제가 발생했을때 history를 추적하기 용이하기 때문이다.

오늘은 CentOS에서 Subversion(svn)을 설치하는 방법에 대해 알아보자.

svn 패키지는 yum에서 이미 제공하고 있다. 특별한 이유로 소스를 컴파일하여 설치할게 아니라면 yum을 이용하여 설치하는것을 추천한다.


1. SVN 패키지 설치

// yum을 통한 svn 설치
 # yum install subversion

 // svn base 디렉토리 생성
 # mkdir /home/svn

 // svn 데몬 실행
 # svnserve -d -r /home/svn





2. SVN 방화벽 설정
svn을 apache 등과 같은 httpd 데몬에 연동하지 않고 단독으로 사용할경우 svn 서비스 포트인 tcp 3690을 iptables에서 허용해 주어야 한다.

// iptables 설정파일 열기
 # vi /etc/sysconfig/iptables

 // 아래 구문 추가후 파일 저장
 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

 // iptables 재시작
 # service iptables restart
 또는
 # /etc/init.d/iptables restart




3. 부팅시 svn 자동실행
  yum을 통한 svn 설치시 서버가 재기동(부팅)할때 svn 데몬이 실행되지 않는 문제가 있다.
  이럴때는 다음과 같이 실행파일을 생성하여 설정이 가능하다


 # vi /etc/rc.d/init.d/subversion


 아래내용 추가 - svn 저장소 디렉토리 경로 유의

 #!/bin/bash
 #
 #   /etc/rc.d/init.d/subversion
 #
 # Starts the Subversion Daemon
 #
 # chkconfig: 2345 90 10
 # description: Subversion Daemon

 # processname: svnserve


 . /etc/rc.d/init.d/functions

 [ -x /usr/bin/svnserve ] || exit 1

 RETVAL=0

 prog="svnserve"

 desc="Subversion server"

 OPTIONS="--threads --root /home/svn"

 start() {

         echo -n $"Starting $desc ($prog): "
 
         daemon $prog -d $OPTIONS
 
         RETVAL=$?

    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
 
    echo

 }

 

 stop() {

          echo -n $"Shutting down $desc ($prog): "

   killproc $prog

   RETVAL=$?

   [ $RETVAL -eq 0 ] && success || failure

   echo

   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog

   return $RETVAL

 }

 

 case "$1" in

   start)

    start

    ;;

   stop)

    stop

    ;;

   restart)

    stop

    start

    RETVAL=$?

    ;;

   condrestart)

         [ -e /var/lock/subsys/$prog ] && restart

    RETVAL=$?

    ;;

   *)

    echo $"Usage: $0 {start|stop|restart|condrestart}"

    RETVAL=1

 esac

 

 exit $RETVAL

 EOF



# cd /etc/rc.d/init.d/


 // 파일 권한 설정
 # chmod 755 subversion


 // 실행레벨 설정
 # chkconfig --level 3 subversion on
 # chkconfig --level 5 subversion on