Notice
Recent Posts
Recent Comments
Dharma
Subversion Server Configuration in Ubuntu - 우분투에 Subversion 서버 세팅하기 본문
Ubuntu version - 10.04 LTS 루시드 링스(Lucid Lynx)
svn (뿐만 아니라 다른 소스 관리 툴)은 개발자 끼리 협업을 하기 위해서 뿐만 아니라 혼자서 연습 삼아서 개발한다고 해도 꼭 익혀야만 하는 개발자들만의 프로토콜 이라고 볼 수 있습니다.
이글은 우분투에 svn 서버 버젼을 세팅하는 데 관련된 팁입니다. 집에서 혼자 연습하는 경우라 하더라도 소스 레파지토리(Source Repository)를 쓰는 버릇을 들이는 것이 여러모로 좋습니다. 어쩌다가 외부에 나가서 협력하게 되는 경우가 생길 때 태연하게 '그냥 혼자 개발해서 합칠때 zip 으로 압축해서 한명이 합치면 되는 거지 뭘 귀찮게 그런걸 쓰나요? ' 라는 충격적인 질문을 받을 때가 많습니다. 중소기업 대기업을 가리지 않고 말이죠.
1. 아파치, 서브버젼, 아파치에 연동되는 svn 모듈 설치
sudo apt-get install apache2 libapache2-svn subversion
2. 저장소 생성
sudo mkdir /svn
3. 아파치 관련 설정 파일 번경
sudo emacs /etc/apache2/mods-available/dav_svn.conf
개개인의 취향에 따라서 에디터 는 바뀔 수 있습니다. (emacs -> vim 이나 gedit)
다음에 나오는 것처럼 코멘트 기호를 삭제합니다.
#<Location /svn>
..
#</Location>
를
<Location /svn>
..
</Location>
로
# DAV svn
를
DAV svn
로
# SVNPath /var/lib/svn
를
SVNPath /svn
로
#AuthType Basic
#AuthName "Subversion Repository"
#AuthUserFile /etc/apache2/dav_svn.passwd
를
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
로
#<LimitExcept GET PROPFIND OPTIONS REPORT>
#Require valid-user
#</LimitExcept>
를
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
로
4. 아파치 재시작 (restart)
sudo /etc/init.d/apache2 restart
만약 문제가 생긴다면 3번을 자세히 살펴봐서 틀린 것이 있나 확인합니다.
5. 프로젝트에 접속할 계정 생성
3번에서 AuthUserFile 로 지정된 파일에 생성해 줘야 하겠지요?
sudo htpasswd -c /etc/apache2/dav_svn.passwd crazia
- 비밀번호 입력 처리
crazia 는 제 아이디 입니다. 본인의 아이디로 바꾸서 만들면 됩니다. 입력을 하면 비밀번호 세팅하는 과정이 나옵니다. 만약 처음으로 저 파일에 계정을 추가하는 것이라면 '-c' 옵션을 쓰는 것이고 다음부터 사람을 추가하는 것이라면 '-m' 으로 옵션을 바꿔서 입력하시면 됩니다. 계정 생성 잘못 했는데 수정하고 싶으면 간단하게 dav_svn.passwd 파일을 삭제하는 것을 추천합니다.
6. 프로젝트 디렉토리 와 소유권 변경
sudo svnadmin create /svn
sudo chown -R www-data:www-data /svn
svn 은 아파치를 거쳐서 작업하기 때문에 svn 프로젝트가 저장되는 공간을 www-data 계정의 소유로 바꾸는 작업입니다.
7. 테스트
예전에 포스트에서 만들었던 echo-server (클릭) 을 올려보기로 하지요. echo-server 가 저장된 곳이 '~/work/echo-server' 라고 가정하면
cd ~/work
svn import ./echo-server http://localhost/svn/echo-server -m "create echo-server repository"
그리고 브라우져에서
http://localhost/svn/echo-server
로 가서 제대로 올라갔는지 확인하세요.