Contents

조회 수 5652 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

#SVN 구조

svn.gif




#SVN 설치


- svn(subversion) 설치 명령

[root@localhost ~]# yum install subversion


- 설치 확인 명령

[root@localhost ~]# yum list subversion


svn01.jpg




#SVN 설정

저장소와 프로젝트 디렉토리를 생성한다.


1. svn 저장소 생성 (예 /home/svn 경로의 저장소)

[root@localhost ~]# mkdir /home/svn

[root@localhost ~]# chown -R root:root /home/svn




2. 프로젝트 디렉토리 생성

[root@localhost ~]# svnadmin create --fs-type fsfs /home/svn/cocoball




3. 기본 권한 설정과 계정 추가

설정 파일(/home/svn/cocoball/conf/svnserve.conf)을 아래 내용처럼 수정한다.

[general]
anon-access = none
auth-access = write
password-db = passwd
# authz-db = authz
realm = cocoball

[sasl]
# use-sasl = true
#min-encryption = 0
#max-encryption = 256


계정 관리 파일(/home/svn/cocoball/conf/passwd)의 내용을 아래 내용처럼 수정한다.

[users]
picomax=haha123

개인용 서버일 경우 위의 예제처럼 passwd 파일에서 계정=암호 를 추가해서 사용해도 되지만,

그렇지 않은 경우 sasl을 이용하여 암호를 DB에서 관리하는 것이 좋다.

passwd 파일에 접근하여 계정 정보를 악용할 수 있기 때문이다.




4. SASL 인증을 이용한 계정 관리

계정 정보(암호)를 passwd 파일에 저장하는 것은 매우 위험하다.

설정 파일(/home/svn/cocoball/svnserve.conf)에서,

아래와 같이 passwd 부분은 주석(또는 삭제) 처리 하고 sasl 부분을 true 로 변경한다.

[general]
anon-access = none
auth-access = write
# password-db = passwd
# authz-db = authz
realm = cocoball

[sasl]
use-sasl = true
#min-encryption = 0
#max-encryption = 256

이제 sasldb에 계정을 추가해야 한다.

saslpasswd2 명령어로 계정을 추가/수정/삭제 하고, sasldblistuser2 명령어로 계정 정보를 확인 한다.

[root@localhost ~]# saslpasswd2 -c -u cocoball picomax

... (패스워드 설정 화면 생략) ...


[root@localhost ~]# sasldblistuser2

picomax@cocoball : userPasswd




5. 서비스(데몬) 실행 파일


1) 옵션 파일

서비스가 실행될 때 변수를 읽어오는 파일로 /etc/sysconfig 디렉토리에 명령파일과 같은 이름으로..

/etc/sysconfig/subversion 파일을 생성

# Configuration file for the Subversion service 
# 
# To pass additional options (for instace, -r root of directory to # server)
# to the svnserve binary at startup, set OPTIONS here. 
# 
#OPTIONS= 
OPTIONS="--threads --root /home/svn"


2) 서비스 실행 파일

#!/bin/bash 
# 
#   /etc/rc.d/init.d/subversion 
# 
# Starts the Subversion Daemon 
# 
# chkconfig: 2345 90 10 
# description: Subversion Daemon
# processname: svnserve
source /etc/rc.d/init.d/functions
[ -x /usr/bin/svnserve ] || exit 1
### Default variables 
SYSCONFIG="/etc/sysconfig/subversion"
### Read configuration 
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
RETVAL=0 
prog="svnserve" 
desc="Subversion Daemon"
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


3) 서비스 등록

서비스로 등록하기 위해 아래와 같이 실행 권한을 적용한다.

[root@localhost ~]# chmod +x /etc/init.d/subversion

[root@localhost ~]# cd /etc/init.d/

[root@localhost ~]# chkconfig --add subversion && chkconfig subversion on


4) 서비스 시작

- 서비스 모드

[root@localhost ~]# service subversion start


- 데몬 모드

[root@localhost ~]# svnserve -d -r /home/svn


- 동작 확인

svn02.jpg




6. 접속 확인

# list 명령어로 확인

svn list svn://(IP or Domain)/cocoball/


[참고] 이클립스용 SVN 플러그인 

subversive -> 추천(다음 이클립스에 포함될 예정)

subclipse -> 비추천(버그 많음)


[참고] 윈도우용 SVN 클라이언트

tortoiseSVN -> 추천(svn 폴더관리 및 cleanup에 유용함)




7. 완료

완료 후 콘솔에서 trunk, tags, branches 디렉토리를 생성하고 체크아웃 하여 동작을 확인 한다.


# create trunk

svn mkdir svn://(IP or Domain)/cocoball/trunk


# create tags

svn mkdir svn://(IP or Domain)/cocoball/tags


# create branches

svn mkdir svn://(IP or Domain)/cocoball/branches


# checkout

svn checkout svn://(IP or Domain)/cocoball




8. 기타

콘솔에서 svn 명령을 사용하는 경우 에디터에 대한 환경변수를 지정해야 한다.

계정의 .bash_profile 파일에 아래 내용을 추가하면 VIM 을 사용하여 로그를 작성할 수 있다.

SVN_EDITOR=/usr/bin/vim
export SVN_EDITOR

바로 적용하기 위해 아래 명령을 실행하거나 로그아웃 후 다시 로그인 하면 된다.

[picomax@localhost ~]$ source .bash_profile



외부에서 SVN에 접근이 되지 않을 경우 3690 포트가 열려 있는지 확인해야 한다.

[root@localhost ~]# nmap localhost -p1-9999

....(생략)

3690/tcp open  unknown

....(생략)

Nmap run completed -- 1 IP address (1 host up) scanned in 1.165 seconds


3690 포트가 열려 있지 않다면 방화벽을 확인한다.

/etc/oops-firewall/filter.conf 파일에서

TCP_ALLOWPORT에 3690을 추가하고

firewall 을 다시 실행한다.


[root@localhost ~]# service oops-firewall restart


참고로 Fedora 에서는

방화벽설정 -> 그 외의 포트에서 3690 포트 tcp 프로토콜 svn 서비스 추가하면 된다.


[출처] http://projectresearch.co.kr/2007/06/04/centos-50%EC%97%90-subversionsvn-%EC%84%A4%EC%B9%98/


?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
57 Develop [ajax] 샘플 코드와 한글처리에 대한 간단한 설명 hooni 2013.04.23 6840
56 Develop ZBar 라이브러리를 이용한 바코드 스캔 앱 개발하기 file hooni 2015.01.01 1625
55 Develop XML, JSON, BSON, MSGPACK 장,단점 비교 file hooni 2017.01.11 2228
54 Develop XE Core 1.8.18 본문 작성시 태그(html) 사라지는 버그 file hooni 2016.04.21 853
53 Etc WM미통기 - 10. 조건부확률 hooni 2015.04.20 704
52 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 1388
51 Develop URI 인코딩, URL 인코딩 file hooni 2013.04.23 18841
» System/OS SVN(Subversion) 설치와 설정 (sasl 인증 적용 포함) file hooni 2014.09.11 5652
49 Develop SVN 초간단 사용하기 hooni 2014.02.28 7614
48 Develop SVN 명령어 (SVN command) hooni 2014.02.28 12127
47 System/OS SSH Passwordless Login Using SSH Keygen in 5 Easy Steps file hooni 2019.11.22 1376
46 Database SQL JOIN 정리 (Inner Join & Outer Join) file hooni 2019.11.22 1814
Board Pagination Prev 1 ... 89 90 91 92 93 94 95 96 97 98 Next
/ 98