사용자 도구

사이트 도구


linux:svn

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
linux:svn [2024/12/02 13:51] – [서비스] taekgulinux:svn [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +===== SVN =====
 +  * [[utils:svn|SVN Windows]]
 +==== SVN설치 ====
 +<code bash>
 +sudo apt-get install subversion
 +</code>
 +==== 저장소 설정 ====
 +<code bash>
 +sudo mkdir /home/svn
 +sudo svnadmin create /home/svn/REPO
 +</code>
  
 +=== repository 권한 설정 ===
 +
 +<code bash>
 +# svn 그룹을 만들고 권한 설정을 한다.
 +sudo groupadd svn
 +sudo chgrp svn /home/svn/
 +sudo chmod g+w /home/svn/
 +sudo usermod -a -G svn 계정명
 +</code>
 +==== 계정 설정 ====
 +<code bash>/conf# vi svnserve.conf</code>
 +<code>
 +[general]
 +anon-access = none
 +auth-access = write
 +password-db = passwd
 +authz-db = authz
 +</code>
 +  * 패스워드설정
 +<code bash>
 +/conf# vi passwd
 +</code>
 +<code>
 +[users]
 +svnuser1 = P@ssw0rd
 +</code>
 +  * 사용자의 폴더 권한 설정
 +<code bash>
 +conf# vi authz
 +</code>
 +<code>
 +svnuser1 = rw
 +</code>
 +===== 서비스 =====
 +==== 서비스등록 ====
 +<code bash>
 +# cd /etc/init.d
 +# vi svnserve
 +</code>
 +svnserve 파일을 생성해서 아래 내용을 입력합니다. DAEMON_ARGS="-d -r /home/svn/repos" 이 부분을 세팅하는 환경에 맞도록 수정하면 됩니다.
 +<code bash 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
 +
 +# Author: Michal Wojciechowski <odyniec@odyniec.net>
 +
 +PATH=/sbin:/usr/sbin:/bin:/usr/bin
 +DESC="svnserve"
 +NAME=svnserve
 +DAEMON=/usr/bin/$NAME
 +DAEMON_ARGS="-d -r /home/svn/repos"
 +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
 +</code>
 +
 +위의 파일을 서비스에 등록합니다.
 +<code bash>
 +# update-rc.d svnserve defaults
 +</code>
 +서비스 시작/종료/재시작
 +<code bash>
 +# service svnserve start
 +# service svnserve stop
 +# service svnserve restart
 +</code>