ucloud server의 ubuntu에서 서브버전 설치하기

Posted on Updated on

이 문서는 KT ucloud server에 우분투를 설치한 경우로 한정하고 서브버전(subversion)을 설치하고 설정하는 방법에 대해서 설명합니다. 그리고 이곳에서 설명하는 명령은 일반 사용자로 로그인을 하고 sudo 명령을 이용해서 실행하는 것으로 가정합니다.

소개

서브버전은 오픈소스의 버전 관리 시스템입니다.  서브버전을 사용하면 여러분이 개발자, 혹은 일반인 이라고 할지라도 어떤 것이든 파일이나 문서를 수정하는 경우에 그 변경 내용에 대해서 항상 관리할 수 있습니다.

서브버전은 관리 대상을 서브버전인 설치된 서버의 리포지토리(Repository)란 곳에서 관리하게 됩니다.

설치

서브버전 패키지의 설치는 다음 명령을 실행하면 간단히 설치됩니다.

$ sudo apt-get install subversion

설정

서브버전의 기본이되는 repository가 필요한데 이 위치는 우분투 문서에서는 /srv/svn, /usr/local/svn, /home/svn등의 위치를 권고하는데 이 위치는 사용자가 좋아하는 곳으로 정하면 됩니다.

KT ucloud server에서는 data disk를 마운트 한 곳을 이용합니다.

$ sudo mkdir /mnt/data/svn

기본이 되는 리포지토리를 만들었으면 서브버전을 위한 그룹을 만듦니다.

$ sudo groupadd svn

/mnt/data/svn 디렉토리에 대한 소유권을 설정합니다.

$ sudo chown -R www-data:svn /mnt/data/svn

그리고 접근 권한을 설정합니다.

$ sudo chmod -R g+rws /mnt/data/svn

권한 설정이 완료 되었으면 svn 그룹에 원하는 사용자를 추가합니다.

$ sudo usermod -a -G svn otheruser

이상으로 서브버전에 필요한 설정은 완료되었습니다.

Repository 만들기

이제 사용자가 원하는 프로젝트를 위한 리포지토리를 만들면 됩니다.

$ sudo svnadmin create /mnt/data/svn/sandbox

 

$sudo chown -R www-data:svn /mnt/data/svn/sandbox
$sudo chmod -R g+rws /mnt/data/svn/sandbox

file:// 프로토콜을 이용한 접근

서브버전이 설치된 서버에 사용자로 로그인한 경우에는 직접 해당 프로젝트의 리포지토리에 접근할 수 있습니다.

$ svn co file:///mnt/data/svn/sandbox

또는 다음 명령을 실행해도 됩니다.

$ svn co file://localhost/mnt/data/svn/sandbox

svn:// 프로토콜을 이용한 접근

svn:// 프로토콜을 이용해서 서브버전의 프로젝트 리포지토리에 접근하려고 하면 해당 리포지토리 별로 접근을 제어하는 config 파일을 수정합니다.

$ sudo vi /mnt/data/svn/sandbox/conf/svnserve.conf

anon-access = none
password-db = /mnt/data/svn/passwd-sandbox
realm = Sandbox Team

/mnt/data/svn/passwd-sandbox 파일을 만들고 사용자와 패스워드를 추가합니다.

sudo vi /mnt/data/svn/passwd-sandbox

user = userpassword

다음에는 KT 클라우드 콘솔에서 서브버전이 이용하는 3690 포트 번호를 서비스하는 호스트로 포트 포워딩 합니다.
그리고 나서 svnserve를 실행하여 svn:// 프로토콜을 이용할 수 있도록 합니다.

$ sudo svnserve -d --foreground -r /mnt/data/svn

svnserve 서비스가 실행되면 다음 명령을 이용해서 사용자의 프로젝트를 체크아웃 할 수 있습니다.

$ svn co svn://hostname/sandbox sandbox --username user_name

부팅시에 svnserve 서비스를 실행하도록 초기화 스크립트를 /etc/init.d/svnserve로 만들어 부팅할 때 스크립트가 실행되도록 합니다.

$ cd /etc/init.d
$ sudo wget http://odyniec.net/articles/ubuntu-subversion-server/svnserve
$ sudo chmod +x svnserve
$ sudo vi svnserve
DAEMON_ARGS="-d -r /mnt/data/svn"
$ sudo update-rc.d svnserve defaults
$ sudo /etc/init.d/svnserve start

svn+ssh:// 프로토콜을 이용한 접근

svn+ssh:// 프로토콜을 이용해서 서브버전에 접근하는 경우에는 svnserve 서비스의 실행은 필요가 없습니다.
단지 프로젝트 리포지토리의 전체 패스를 적어주면 됩니다.

$ svn co svn+ssh://username@hostname/mnt/data/svn/sandbox sandbox --username user_name
Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중