Contents

조회 수 5656 댓글 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
번호 분류 제목 글쓴이 날짜 조회 수
1125 Develop SVN 초간단 사용하기 hooni 2014.02.28 7614
» System/OS SVN(Subversion) 설치와 설정 (sasl 인증 적용 포함) file hooni 2014.09.11 5656
1123 Develop URI 인코딩, URL 인코딩 file hooni 2013.04.23 18841
1122 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 1394
1121 Etc WM미통기 - 10. 조건부확률 hooni 2015.04.20 705
1120 Develop XE Core 1.8.18 본문 작성시 태그(html) 사라지는 버그 file hooni 2016.04.21 858
1119 Develop XML, JSON, BSON, MSGPACK 장,단점 비교 file hooni 2017.01.11 2233
1118 Develop ZBar 라이브러리를 이용한 바코드 스캔 앱 개발하기 file hooni 2015.01.01 1625
1117 Develop [ajax] 샘플 코드와 한글처리에 대한 간단한 설명 hooni 2013.04.23 6840
1116 Develop [ajax] 이벤트 코드 생성기 작업중.. ㅋㅋ file hooni 2013.04.23 7114
1115 PPT [ajax] 크로스 도메인(Cross Domain) 이슈 해결 방안 file hooni 2013.04.23 21935
1114 Algorithm [algorithm] Greedy (탐욕 기법) hooni 2003.04.23 15108
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98