S/W 개발 기반 시스템 구성 – 3. Mercurial 설치

이 글은 S/W 개발에 가장 기본이 되는 이슈 추적(Issue Tracker), 버전 관리(Version Control), 빌드(Build), 지속적인 통합(CI) 시스템을 구성하는 방법에 대한 일련의 글 중 세 번째이다. 이번에는 버전 관리 시스템으로 사용할 Mercurial을 설치하고 웹 환경에서 사용할 수 있도록 구성한다.

1. 미리 준비해야 하는 것들

  • 인증은 OpenLDAP을 사용하며 설치 과정은 첫 번째 글을 참조한다.
  • Apache 웹  서버를 통해 웹 기반으로 사용한다. 설치 과정은 두 번째 글을 참조한다.
  • Mercurial을 웹 서버에서 구동하기 위해 파이썬(Python) 2.6.6 윈도용 패키지를 여기에서 받는다. 현재 Mercurial 파이썬 패키지가 2.6용만 있으므로 2.7.1은 받지 않는다.
  • Mercurial을 여기에서 파이썬(Python) x86 패키지로 받는다.
  • 파이썬 프로그램을 Apache 웹 서버에서 구동할 때 성능을 높이기 위한 모듈인 mod_wsgi를 여기에서 파이썬 2.6용으로 받는다.
  • Mercurial 저장소를 웹으로 공유할 때 필요한 설정 정보인 hgweb.cgi를 여기에서 받는다.

2. 설치

먼저 파이썬 2.6.6을 설치한다. 설치 과정은 특별한 게 없으므로 기본 설정으로 설치하면 된다. 환경 변수 Path에 경로 정보가 자동으로 설정되지 않으면  다음 경로를 시스템 환경 변수에 추가한다.

파이썬 다음으로 Mercurial 파이썬 패키지를 설치한다. 이 역시 기본 설정으로 설치하면 된다. 파이썬 경로 정보를 설정해 뒀으면 명령 행에서 hg로 실행되는 것을 확인할 수 있다.

이제 웹 서버에서 mod_wsgi를 사용하도록 설정한다. 받아 둔 mod_wsgi-win32-ap22py26-3.3.so 파일을 Apache 설치 디렉터리 아래 modules에 복사하고 다음 내용을 confhttpd.conf 파일 모듈 설정 부분에 추가한다.

3. Mercurial 설정

Mercurial 기본 정보를 설정하도록 명령 행에서 다음 내용을 입력해 .hgrc 파일을 만든다.

방금 만든 .hgrc 파일에 username 정보를 다음 형식으로 적는다.

명령 행에서 다음처럼 입력하고 결과가 No problems detected라고 나오면 정상이다.

Hg Debuginstall

저장소를 웹으로 접근하는데 필요한 cgi 스크립트와 설정 정보를 저장할 디렉터리를 만든다. 여기서는  D:\hgweb이라고 만들었다. 이 디렉터리에 hgweb.cgi 파일을 두고 다음처럼 바꾼다.

위 내용 중 config에 지정한 것처럼 D:\hgwebhgweb.config 파일을 만들고 다음처럼 설정한다. 각 항목에 대한 자세한 내용은 여기를 참조한다. 참고로 encoding은 웹브라우저에서 사용할 인코딩이다. UTF-8로 사용하면 좋겠지만 diff에서 보여주는 소스 코드 내용에 한글이 포함되어 있으면 깨지는 단점이 있다. 소스 코드 파일 인코딩이 UTF-8이면 이 설정 역시 UTF-8로 하면 된다.

위 내용에 따라 저장소는 D:\Repos\hg에 두고 웹으로 접근할 때는 주소에 /hg를 붙이면 된다.

이제 시험용으로 D:\Repos\hg\sandbox 저장소를 만든다. 이 저장소에만 적용할 설정은 D:\Repos\hg\sandbox\.hg\hgrc 파일에 하면 된다.

4. Apache 웹 서버 설정

다음 내용을 httpd-vhosts.conf 파일에 추가한다.

Apache 웹 서버를 중지했다 다시 실행한 후 http://plab.net/hg로 접속한다. 아래처럼 저장소 화면이 나오면 정상이다.

Mercurial Repositories on Web

현재는 아무런 인증을 하지 않으므로 누구나 접속해 내용을 볼 수 있고 커밋할 수도 있다. 이제 OpenLDAP을 사용해 인증하도록 바꿀 차례다.

httpd.conf에서 다음 내용에 대한 주석을 해제한다. 만약 없으면 추가한다.

그리고 httpd-vhosts.conf 파일에 인증 설정을 추가한다. 위에서 추가한 내용을 포함해 전체 내용은 다음과 같다.

이제 http://plab.net/hg에 접속하면 계정과 암호를 요청하는 창이 뜨는데 여기에는 OpenLDAP 계정(UserName)과 암호를 사용하면 된다.

Mercurial OpenLDAP Authentication

로그인 했을 때 위처럼 저장소 화면이 나오면 된다.

You may also like...