반응형

Windows 에 Subversion Server 설치하기

이 글은 Repository 라던지, Checkout/Commit 등과 같은 기본적인 소스 코드 관리 개념과 Subversion 이 소스 코드를 관리를 위한 툴이라는 기본적인 개념에 대해서는 이미 익숙해져 있다고 가정하고 Windows 에서 Subversion Server 를 설치하는 방법에 대해서만 다루도록 하겠습니다.

다운로드할 프로그램

우선 다음 위치에서 Subversion Windows 버전을 다운로드 받으십시오.

http://www.collab.net/downloads/subversion/

세 가지 종류의 다운로드가 있는데, 그 중에 저희는 Subversion Server 를 설치할 예정이므로 제일 위에 있는 CollabNet Subversion Server and Client v1.5.0 를 다운받으세요. 다운받으시려면 회원 가입을 하셔야 합니다.

그리고, ViewVC 를 사용하실 생각이시라면 다음 위치에서 ActivePython 도 다운로드 받으시기 바랍니다.

http://www.activestate.com/store/download.aspx?prdGUID=b08b04e0-6872-4d9d-a722-7a0c2dea2758

참고로 ViewVC는 웹블라우저로 다음 그림처럼 소스 코드 Repository 를 볼 수 있도록 해주는 프로그램입니다. Python 으로 구현되어 있기 때문에 Python 을 설치하셔야 합니다.

Subversion 소스 코드를 ViewVC로 본 화면

Subversion 소스 코드를 ViewVC로 본 화면

Subversion Server 를 설치하시기 전에 먼저 ActivePython 을 설치하시고, 어느 디렉토리에 설치해 놓았는지는 메모해 두시기 바랍니다.

프로그램 설치

그리고 설치하는 중에는 다음 링크에 있는 문서를 열어 놓거나, 인쇄해 놓고 단계를 밟아가면서 설치하시면 됩니다.

CollabNet Subversion Server and Client Installer for Windows

Choose Component -> svnserve Configuration -> Apache Configuration -> ViewVC Configuration -> Choose Install Location

순으로 설치 옵션을 조정한 후에 설치할 수 있습니다.

저는 다른 옵션은 조정하지 않고, Apache Configuration 에서 Enable ViewVC flag 만 켜주었습니다.

subversion apache configuration

subversion apache configuration

그리고, Repository Location Prefix 는 나중에 SVN URL에 포함되는 정보이므로 꼭 기억해 두시기 바랍니다. 만약 /svn 이라고 하셨다면, SVN URL 은 다음과 같은 형태가 될 것입니다.

http://localhost/svn/your_repo_name

설치 옵션에서 보셨듯이 CollabNet 의 Subversion Server Package 에는 Apache 도 이미 포함되어 있고, SSL도 이미 포함되어 있습니다. 그러니 따로 다운로드 받아서 설치하실 필요가 없습니다. 대신 이미 Apache 나 OpenSSL을 따로 설치해서 쓰고 계셨던 분들은 CollabNet Subversion Server Installer 가 자동으로 Apache Configuration 파일을 생성해 준 걸 나중에 따로 자신의 Apache Configuration 에 복사해 주어야겠지요. 따로 따로 설치하실 생각이시라면 다음 문서를 참고하시는 게 좋을 것 같습니다.

윈도우에서 Subversion 서버 운영하기

어쨌든 저는 Apache, OpenSSL 등을 모두 설치해 놓고 있지 않았기 때문에 편하게 Installer 에게 맡겨 놓았지요. 아! 그리고 CollabNet Subversion Server Package에 포함된 Subversion 1.5.0 은 Apache 2.2.8 에 맞춰서 Packaging 된 것 같더군요. Apache 2.0.X 대 버전을 사용하시던 분은 이전 버전의 패키지를 다운받아서 설치하셔야할 것 같습니다. 다음 링크에서 Apache 2.0.X 용 subversion 을 구하실 수 있습니다(이 패키지에는 apache 2.0.X 는 포함되어 있지 않습니다)

http://subversion.tigris.org/files/documents/15/43067/svn-win32-1.5.0.zip

설치하신 다음에는 바로 한 번 리부팅해주시는 게 좋을 것 같습니다. 저는 리부팅하지 않았더니 자꾸 Apache 가 실행될 때 에러가 발생하면서 뜨질 않더군요.

Apache Configuration

그럼 일단 재부팅하셨다고 생각하고 설치후 과정에 대해 간략히 설명드립니다.

우선, Apache Configuration 을 약간 조정해야 합니다. 아마 설치 직후에는 다음과 같이 설정되어 있을 것입니다(Apache Configuration 파일은 D:\Program Files\CollabNet Subversion Server\httpd\conf\httpd.conf 입니다).

<Location /svn>
   DAV svn
   SVNParentPath C:\svn_repository
   SVNListParentPath On
</Location>

이 상태로는 사용자 인증없이 누구라도 repository 에서 checkout/commit 을 할 수 있습니다. 혼자 쓰실 생각이시라면 문제 없지만 팀내에서 공동으로 사용할 subversion server 라면 인증을 거치도록 해야겠지요. 인증 방법은 여러 가지가 있겠지만 여기서는 Apache의 Basic authentication 을 사용해서 인증을 하도록 하겠습니다. 이 정도면 회사내의 소규모 팀이 사용하기에는 충분하니까요. 먼저 Apache 에 포함되어 있는 htpasswd 프로그램을 이용해서 password 파일을 생성합니다. 다음 명령을 실행하세요. (htpasswd 프로그램이 있는 디렉토리로 가서 실행하시던지 아니면 htpasswd 프로그램 위치를 정확히 지정해 주셔야겠지요)

htpasswd -cm c:\svn_repository\passwd username

쉽게 예상하실 수 있는대로 위 명령을 실행하면 암호를 두 번 묻습니다. 적당한 암호를 입력하시고, 메모해 두시기 바랍니다. 그리고 나서 Apache Configuration 을 다음과 같이 조정합니다.

<Location /svn>
   DAV svn
   SVNParentPath C:\svn_repository
   SVNListParentPath On
   Require valid-user
   AuthType Basic
   AuthName "Subversion repository"
   AuthUserFile C:\svn_repository\passwd
</Location>

다음 단계로는 apache 를 멈췄다가 다시 시작해야 합니다. 다음 명령을 순서대로 실행하세요.

> net stop apache2.2
> net start apache2.2

CollabNet Subversion Server and Client Installer for Windows 문서에서는 Apache 를 멈췄더가 실행할 때 apache2.2 가 아니라 apache 로 되어 있는데, Apache 2.2.X 버전이 되면서 서비스 이름이 apache 2.2로 바뀐 것 같더군요. 주의하시기 바랍니다.

위와 같이 하면 authentication 을 거치게 됩니다. authentication 은 이 방법 말고도 https 를 이용하는 방법도 있지만, 상당히 복잡한 과정을 거치므로 여기에서는 소개하지 않겠습니다.

윈도우 방화벽 해제

가장 마지막 단계로는 윈도우 방화벽 설정에서 apache 를 예외로 지정해 주셔야 외부에서 subversion 서버로 접속할 수 있습니다.

시작 -> 제어판 -> 보안센터 -> Windows 방화벽 -> 예외탭 선택

까지 가면 다음과 같은 화면이 보입니다.

윈도우 방화벽 해제

윈도우 방화벽 해제

프로그램 추가를 누르신 후 httpd.exe 를 찾아서 등록해 주시면 됩니다. httpd.exe \Program Files\CollabNet Subversion Server\httpd\bin 에 있습니다.

잘 작동하는지 확인

Subversion 서버가 잘 설치됐는지 확인하려면 web browser 에서 다음 URL을 입력해보시기 바랍니다.

http://localhost/svn

이렇게 입력하면 사용자ID, 암호를 묻고 맞는 ID/암호를 입력하면 Repository 목록을 보여줍니다. 만약 ViewVC도 설치를 하셨다면 다음 URL을 입력해 보시기 바랍니다.

http://localhost/viewvc

이렇게 입력하면 사용자ID, 암호를 묻지 않고 바로 Repository 목록을 보여줍니다. ViewVC는 Browsing 을 위한 패키지라서 기본 Subversion web browser 보다는 훨씬 편한 UI를 통해 Repository를 browsing 할 수 있도록 해줍니다.

Repository 생성하기

Repository 를 생성하시려면 다음 명령을 사용하세요.

svnadmin create c:\svn_repository\your_test_repo

your_test_repo는 여러분이 원하시는 이름대로 지으시면 됩니다. Repository 생성은 Server 가 실행되는 곳에서 꼭 실행해야 한다는 건 당연히 이해하실 수 있겠죠 ? svnadmin 은 이미 CollabNet Subversion Installer 가 환경 변수에 등록해주므로 위치를 찾으려고 헤메실 필요는 없습니다. ^^

checkout 하기

다음 명령을 이용해서 checkout 하실 수 있습니다(svn 도 svnadmin 과 마찬가지로 환경 변수에 이미 Path 가 잡히게 됩니다). checkout 은 보통 개발자들이 자신의 개발 PC에서 수행하는 작업입니다.

svn checkout http://localhost/svn/your_test_repo

각 개발자들은 다음 링크에서 구할 수 있는 client 전용 command line 패키지를 설치해서 subversion 을 사용할 수 있습니다. 다운받으시려면 회원 가입을 하셔야 합니다.

http://www.collab.net/downloads/subversion/

command line 패키지 외에도 TortoiseSVN, RapidSVN 등의 GUI Client 와 Eclipse Plugin 으로 작동하는 Subclipse, Subversive 등도 있고, Visual Studio Plugin 으로 작동하는 AnkhSVN(Visual Studio 2005 까지 지원), VisualSVN(상용) 등이 있으니 필요에 따라 사용하시기 바랍니다.

기존 소스 import 하기

일단 기존 소스가 path/to/the/source 에 있다고 가정하면, 다음 명령을 이용해서 import 하실 수 있습니다.

svn import path/to/the/source http://localhost/svn/your_test_repo -m "initial import"

마지막 -m 옵션은 로그 메시지를 기록하기 위한 것입니다. -m 옵션으로 로그 메시지를 주지 않으면 다음과 같은 에러 메시지를 출력하면서 import 가 되지 않습니다.

svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and
 no 'editor-cmd' run-time configuration option was found

물론, 위에서 말하는 환경 변수를 설정해 주셔도 됩니다.

이 정도가 되면 subversion 을 쓰기 위한 준비가 다 됐다고 할 수 있습니다. subversion 을 이용해서 성공적인 프로젝트 수행하시기 바랍니다.

마지막으로 제가 설치를 위해 다운 받았던 파일들을 첨부합니다. 필요하신 분은 여기서 다운 받아서 설치하시기 바랍니다.

ActivePython 2.5.2.2



CollabNet Subversion Server(Apache, OpenSSL, Subversion Client 포함)



VisualSVN Server(Visual SVN에서 제공하는 Server 패키지, Windows 와 좀 더 잘 통합됨)


CollabNet Subversion Client


TortoiseSVN Client(Explorer 와 잘 통합된 SVN GUI Client)




RapidSVN(Cross Platform SVN GUI Client)

반응형
LIST
반응형

버전관리: Subversion의 설치

버전관리 프로그램은 익히 설명할 필요도 없이 공동 작업, 아니면 개인적인 작업이라도 소스코드 변경, 백업 등을 도와주는 도구입니다. 버전 관리 프로그램은 여러 가지가 있지만 Subversion이 아마 가장 일반적으로 많이 쓰이는 프로그램일 것입니다. 여기서는 간단히 그림과 더불어 서브버전과 서브버전의 클라이언트로 유명한 Tortoise SVN 설치에 관해 알아보도록 하겠습니다.

 

서브버전의 설치

2010년 2월부터 서브 버전이 공식적인 아파치 프로젝트의 일원으로 되었습니다. 다운로드 및 설치 방법은 다음과 같습니다.

 

Apache Subversion

아파치 서브버전 사이트로 이동을 합니다 (http://subversion.apache.org)

 

Apache Subversion Binary Package

왼쪽 메뉴에 보이는 Binary Package를 선택합니다.

 

Apache Subversion Windows Binary

가장 하단의 윈도우용 바이너리 중 CollabNet를 선택합니다.

 

CollabNet Subversion Server and Client

여러 바이너리 중 CollabNet Subversion Server and Client를 선택합니다.

 

Collabnet Registration

다운로드 하기 위해서 사용자 등록이 필요합니다. 번거롭긴 하지만 무료라는데 감수해야겠네요.

 

CollabNet Subversion Server and Client Download

 

CollabNet Subversion Server and Client

파일을 저장하고 실행을 합니다. 그러면 다음과 같은 설치 화면이 나옵니다. 설치는 별다른 고민 없이 Next만 누르면 됩니다.

 

CollabNet Subversion Install CollabNet Subversion Install

CollabNet Subversion Install CollabNet Subversion Install

CollabNet Subversion Install CollabNet Subversion Install

CollabNet Subversion Install

image

 

TortoiseSVN의 설치

이제 Subversion의 설치는 끝났습니다. 서브버전은 말 그대로 "서버"에 불과하고 이를 위한 클라이언트 프로그램이 필요합니다 (메일서버와 메일클라이언트의 관계와 같습니다). 서브버전 클라이언트로 가장 유명한 TortoiseSVN을 설치하기로 합니다.

Tortoise SVN

Tortoise SVN 다운로드 사이트에 접속해 적합한 버전을 다운로드 하고 설치합니다. 설치에는 별다른 설명이 필요없습니다.

 

Tortoise SVN 설치

image image

imageimage

imageimage

 

설치 확인

Subversion과 TortoiseSVN의 설치가 끝나면 이제 정상 동작을 확인해보아야 합니다.

 

IPConfig

명령행에서 ipconfig 명령으로 Subversion이 설치된 PC의 IP를 확인합니다. 여기서는 192.168.0.100으로 보입니다.

 

TortoiseSVN 호출

탐색기를 실행하고 빈 공간에 오른쪽 버튼을 눌러봅니다. 메뉴에 TortoiseSVN에 관련된 메뉴가 두 개 보입니다. TortoiseSVN은 별도 프로그램 형태로 존재하지 않고 탐색기에 통합되어 설치됩니다.

 

TortoiseSVN client 호출

메뉴에서 TortoiseSVN – Repo-browser를 선택합니다.

 

TortoiseSVN

URL부분에 아까 확인한 PC의 IP를 SVN Repository라는 것을 알리는 svn://과 함께 집어 넣습니다. 즉, svn://192.168.0.100의 형태로 창에 입력을 합니다. 현재는 저장소 (Repository)에 아무 내용도 없으므로 "No repository found in…”이라는 메시지가 창에 나옵니다. 여기까지 하면 이제 SVN과 TortoiseSVN이 설치 및 정상 동작 확인이 된 것입니다.

 

마치기 전 하나 더: Local PC에 있는 SVN DB의 이전

 

다른 사람과 공동 작업을 하는 것이 목적이 아니라 단순히 개인적으로 소스코드 이력만을 관리하고 싶을 때는 굳이 SVN을 설치하지 않고 TortoiseSVN만 로컬 PC에 설치해서 사용해도 됩니다. TortoiseSVN만 설치해서 단독으로 사용하다 필요 시에 SVN을 소스코드 관리용 서버에 설치하면 됩니다. 이 때 기존 로컬 PC에 있는 저장소 DB를 서버 쪽으로 옮길 필요가 있습니다. svnadmin같은 SVN 관리 명령어를 쓰는 것이 정석이긴 한데 일반 파일 복사로도 이러한 마이그레이션이 가능하긴 합니다 (권장하지는 않습니다만, 별 문제는 없는 것 같습니다).

 

SVN DB migration

로컬 PC의 저장소 폴더로 이동해 파일을 선택합니다.

 

SVN DB migration

SVN이 설치된 PC의 저장소에 기존 로컬 PC 저장소에 있는 파일들을 복사합니다. SVN 설치할 때 설정을 바꾸지 않았다면 저장소 폴더는 c:\svn_repository에 있을 것입니다.

 

SVN DB migration

다시 TortoiseSVN을 통해 확인을 해봅니다. 로컬 PC 있던 SVN DB가 별 문제 없이 서버 쪽으로 옮겨진 것을 확인할 수 있습니다.

 

추가 사항 (2010.5.24)

SVN 명령어가 아니라 TortoiseSVN으로 만들어진 저장소를 위에서 설명한 바와 같이 단순 복사로 옮기는 경우에는 인증 문제가 발생을 하게 됩니다. SVN 저장소에서 읽기는 가능하지만 Commit할 때 인증 오류가 나는 경우가 생깁니다. AnkhSVN 같은 경우에는 “You failed to authorize against the remote repository”라는 메시지가 나오게 됩니다. 이 경우에는 저장소 디렉토리 "c:\svn_repository\conf\" 아래에 있는 svnserve.conf 파일에서 인증 부분을 다음과 같이 “anon-access = write”, “auth-access = write”로 변경을 해 줍니다. 이 방법은 사실 문제를 잠시 면피하는 방법이고 보안 상 문제가 있는 방법으로 권할 만한 방법은 아니긴 합니다. 인증에 관해 좀 더 자세한 내용은 여기를 클릭해서 3. SVN 사용자 추가하기 (인증 부분)을 참조하시면 됩니다 (원 출처는 네이버의 오토셋 사용자 커뮤니티라고 합니다).

image

You might also like:
반응형
LIST

+ Recent posts