Rev. 2.73

이야~ 리눅스 서버가지고 삽질하는 재미가 쏠쏠합디다. 개발상 요긴하게 사용할 수 있는것들이 무궁무진하군요. 진작에 임대할걸 그랬어요. 이번에는 CentOS에 Subversion을 설치하는 것에 도전했습니다. 다행히도 한글로 작성된 관련문서들이 많아 아주 쉽게 진행할 수 있었습니다. 이제야 개인 소스 리파지토리를 가지게 되었네요. 아래에 SVN을 설치하고 설정하는 과정을 기록했습니다.

Subversion 설치하기 - {reponame}은 리파지토리 이름입니다.

# yum install subversion

Repository 생성하기 - svn 루트 폴더를 생성하고 폴더권한을 부여합니다.

# mkdir /home/svn
# cd /home/svn
# svnadmin create --fs-type fsfs {reponame}
# chmod –R g+w {reponame}

SVN 서버 설정하기 - vi를 이용하여 환경설정 및 사용자를 추가한 후 수정하고 저장(:wq)합니다.

# cd /home/svn/{reponame}/conf
# vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
realm = {Firejune Repository}

# vi passwd
[users]
firejune = {password}

# vi authz
[{reponame}:/]
firejune = rw

SVN 서버 시작하기 - SVN서버의 기본 포트는 3690입니다. –listen-port {port_num} 옵션으로 변경할 수 있습니다.

# svnserve -d -r /home/svn

SVN 체크아웃하기 - 지금까지 설정한대로 작동하는지 확인합니다. {firejune.io}에는 서버의 도메인 또는 아이피를 입력합니다.

# svn co svn://{firejune.io}/{reponame}

이때 아래와 같은 현상 발생할 수 있습니다.

인증 영역(realm): <svn://firejune.io:3690> Firejune Repository
'root'의 암호:
인증 영역(realm): <svn://firejune.io:3690> Firejune Repository
사용자명:firejune
'firejune'의 암호:

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <svn://firejune.io:3690> Firejune Repository

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/var/www/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
Please type 'yes' or 'no': yes
Please type 'yes' or 'no': yes
Please type 'yes' or 'no': y
Please type 'yes' or 'no': yeah
Please type 'yes' or 'no': no
Please type 'yes' or 'no': 'yes'
Please type 'yes' or 'no': YES
Please type 'yes' or 'no':
Please type 'yes' or 'no': wtf
Please type 'yes' or 'no': shit
Please type 'yes' or 'no': 
Please type 'yes' or 'no': 18

여기서 한참 삽질하다가 포기할 뻔 했습니다. locale이 한글로 되어있던게 원인이더군요. "예" 또는 "아니오"로 입력해야 됩니다.

기본 폴더 생성하기 - 기본으로 사용될 폴더를 생성합니다. 코멘트가 있으면 작성하고 저장후 닫습니다. 없으면 ":q!" 눌러서 종료하고 계속(C) 눌러줍니다.

# export SVN_EDITOR=/usr/bin/vim
# svn mkdir svn://firejune.io/{reponame}/trunk
# svn mkdir svn://firejune.io/{reponame}/branches
# svn mkdir svn://firejune.io/{reponame}/tags

기본 폴더 생성확인 - 폴더가 생성되었는지 확인합니다.

# svn list svn://firejune.io/{reponame}
branches/
tags/
trunk/

SVN 서버 살아있는지 확인 - SVN 서버가 사용중인 포트가 살아있는지 봅니다.

# netstat -ant | grep 3690

SVN 서버 죽이기 - ps 명령으로 svnserve의 프로세서 ID를 알아낸 후 kill 명령으로 죽여버립니다.

# ps -ef | grep svnserve
# kill -9 {PID}

Comments

Got something to add? You can just leave a comment.

Your Reaction Time!

captcha

avatar