Contents

조회 수 5653 댓글 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
번호 분류 제목 글쓴이 날짜 조회 수
1173 System/OS 해커스랩 깨기.. 후후.. ㅋㅋ file hooni 2013.04.23 18410
1172 Etc 플라스터(Plaster) 수업 내용 secret hooni 2016.05.24 0
1171 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 16384
1170 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21243
1169 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 16484
1168 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 10954
1167 Etc 티스토리 테이블 html,css 구문 hooni 2013.11.03 15943
1166 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 927
1165 System/OS 컴파일러 수업 자료(교재 : 컴파일러 입문) file hooni 2003.04.23 21965
1164 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 724
1163 Etc 캘리포니아 운전면허 문제 file hooni 2017.07.22 966
1162 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98