본문 바로가기

공부/기타

[Ubuntu] 우분투 SVN Server 설치 ( subversion )

728x90
반응형

 

우분투 환경에서 SVN Server를 설치하겠습니다.

 

OS Version : Ubuntu 20.04 

 


○ Subversion 설치

 

> sudo apt-get install subversion

 

○ 경로 지정 ( Repository )

 

mkdir /data
mkdir /data/svn
mkdir /data/svn/repository

 

○ 저장소 생성하기 

 

> cd /data/svn/repository

> svnadmin create test

 

repository 밑에 test 폴더가 생김니다.

 

 

○ 권한 설정

 

> cd ./test/conf

> vi passwd

[users]
test = 1

 

 

○ Service 파일 생성

 

> cd /etc/init.d

> sudo vi svnserve

 

#! /bin/sh
### BEGIN INIT INFO
# Provides: svnserve
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start svnserve
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="svnserve"
NAME=svnserve
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d -r /data/svn/repository"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

[ -x "$DAEMON" ] || exit 0

[ -r /etc/default/$NAME ] && . /etc/default/$NAME

. /lib/init/vars.sh
. /lib/lsb/init-functions

do_start()
{
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
        || return 1

    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS \
        || return 2
}

do_stop()
{
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
    RETVAL="$?"
    [ "$RETVAL" = 2 ] && return 2
    start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
    [ "$?" = 2 ] && return 2
    rm -f $PIDFILE
    return "$RETVAL"
}


case "$1" in
    start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
            0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
            2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;

    stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
            0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
            2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
            esac
            ;;

    restart|force-reload)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
        0|1)
            do_start
            case "$?" in
                0) log_end_msg 0 ;;
                1) log_end_msg 1 ;; # Old process is still running
                *) log_end_msg 1 ;; # Failed to start
            esac
            ;;
        *)
            # Failed to stop
            log_end_msg 1
            ;;
        esac
        ;;
*)
    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
    exit 3
    ;;
esac

exit 0

 

DAEMON_ARGS 경로를 자신의 repository 경로로 지정해 줍니다.

 

○ Service 등록 / 실행

 

파일 실행 권한 추가 / service 등록 / 실행

> sudo chmod 755 svnserve

> sudo update-rc.d svnserve defaults

> sudo service svnserve start

 

Service 상태 확인

 

> sudo service svnserve status

● svnserve.service - LSB: Start svnserve
     Loaded: loaded (/etc/init.d/svnserve; generated)
     Active: active (running) since Tue 2021-04-13 05:44:44 UTC; 1min 55s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 1955 ExecStart=/etc/init.d/svnserve start (code=exited, status=0/SUCCESS)
      Tasks: 1 (limit: 38421)
     Memory: 1.8M
     CGroup: /system.slice/svnserve.service
             └─1963 /usr/bin/svnserve -d -r /data/svn/repository

Apr 13 05:44:44 nurier systemd[1]: Starting LSB: Start svnserve...
Apr 13 05:44:44 nurier svnserve[1961]: DIGEST-MD5 common mech free
Apr 13 05:44:44 nurier systemd[1]: Started LSB: Start svnserve.

 

Process 확인

 

> ps -ef | grep svnserve

root     1963     1  0 05:44 ?     00:00:00 /usr/bin/svnserve -d -r /data/svn/repositoryr

 

 

○ 접속 시도

이제 svn 접근이 가능합니다.

 

svn://192.168.40.100/test

 

 

 

728x90
반응형