여러 사람들이 같이 프로그래밍 프로젝트를 진행할 때 어디에 프로그램 소스를 저장해야 할까요? 이것은 오래 전부터 큰 고민이었습니다. 그래서 사람들은 CVS라는 소스 관리 시스템을 개발하게 되었습니다. 하지만 비효율적인 관계로 Subversion(SVN)이 다시 개발되었습니다. 이것은 웹 프로그래밍의 오픈프로젝트에서 아주 많이 사용되는 프로그램입니다. 여기서는 SVN과 Trac을 연동하는 방법을 소개합니다.

TracPython(파이썬)이라는 Perl과 비슷한 CGI 프로그래밍 언어로 작성된 프로젝트 관리 소프트웨어입니다. Trac은 Subversion(SVN)과 연동하여 사용할 수 있도록 설계되었습니다. Subversion(SVN)은 소프트웨어를 개발할 때 소스를 저장할 수 있도록 저장소를 제공하며, revision(리비전)이라는 정책으로 소프트웨어 소스를 버전별로 체계적인 관리가 가능하도록 해줍니다.

TracSVN만이 아닌 Git(소프트웨어), 머큐리얼, 바자 등과 연동될 수도 있습니다.


Trac과 SVN 설치를 위해 필요한 것들은?

현재 Trac0.10.4 버전이 정식 버전으로 배포가 되고 있습니다. 0.11 버전은 현재 베타 서비스 중이며, Python 2.5 버전을 요구합니다. 여기서는 0.10.4 버전을 설치하도록 하겠습니다.

1. Apache HTTP Web Server

Trac은 단독으로 실행되는 것이 아닌 웹 서버에서 연동이 되어 작동을 하게됩니다. 정확하게 말하자면, Python을 웹 서버에서 사용이 가능해야합니다. 여기서는 가장 표준적인 Apache 웹 서버를 사용하게 됩니다. 현재 Apache2.2.8이 가장 최근에 배포되는 정식 버전입니다. 반드시 버전 2.2.8을 설치해주세요.

Apache HTTP Web Server에 대한 자세한 설치 방법은 여기를 참고하세요.

2. Subversion(SVN)

SVN은 소프트웨어 소스의 버전 관리를 위한 소프트웨어입니다. Trac에서 연동할 수 있습니다. 현재 SVN1.4.6이 윈도우즈에서 사용 가능한 가장 최근에 배포된 버전입니다. 또한 이 버전은 Apache 2.2.X 버전에서만 호환이 가능합니다. 그러므로 반드시 Apache 2.2.X를 설치해야 합니다.

Subversion 1.4.6 다운로드 사이트로 이동

3. Python

Python(파이썬)은 Trac을 작성한 웹 프로그래밍 언어입니다. 파이썬을 Apache 웹 서버와 연동을 해야 Trac 사용이 가능해집니다. 파이썬은 현재 2.5 버전까지 배포되었지만, Trac 0.10.4를 사용하기 위해서는 2.4.3 버전이 가장 적당합니다. 그러므로 반드시 2.4.3 버전을 설치해주세요.

Python(파이썬) 2.4.3 바로 다운로드

3-1. Subversion Python 2.4 bindings

Subversion파이썬에서 사용 가능하도록 바인딩 파일을 다운로드해야 합니다. SVN 1.4.6 전용 바인딩을 다운로드해야 합니다.

SVN Python 2.4 바인딩 다운로드 사이트

3-2. Apache Python Module

Apache에서 파이썬을 사용하기 위해 파이썬 모듈을 설치해야합니다. Apache 2.2.X 버전이 맞는 파이썬 모듈을 설치해야합니다. 현재 파이썬 모듈의 버전은 3.3.1이 최신 버전입니다.

Apache Python Module 다운로드 사이트

3-3. Docutils

Trac에서는 wiki 기능을 지원합니다. 때문에 문서 작성을 도와주는 Docutils이 필요합니다. Docutils파이썬에 설치됩니다.

Docutils 다운로드 사이트

3-4. ClearSilver

파이썬에 플러그인 형식으로 설치가 되어 동작됩니다. ClearSilver는 파이썬에서 HTML 템플릿 라이브러리로서 동작합니다. 반드시 파이썬 버전 2.4에 맞는 것으로 다운로드해야 합니다. 파이썬 2.5 전용 버전이 없기때문에 파이썬 2.4를 사용합니다.

ClearSilver 다운로드 사이트


4. MySQL

Trac에서 MySQL를 사용해야하기 때문에 MySQL을 설치합니다.

MySQL에 대한 자세한 설치 방법은 여기를 참고하세요.

5. Trac

가장 중요한 Trac을 다운로드합니다. 현재 가장 최신 버전인 0.10.4를 다운로드합니다.

Trac 다운로드 사이트

6. MySQL

module for Python 파이썬에서 MySQL을 사용하기 위해 모듈을 설치해야합니다.

MySQL module for Python 다운로드 사이트

본격적으로 설치하자!

이제 설치 파일들을 모두 다운로드 했으니 설치를 해보도록 하겠습니다.

아래의 단계를 진행하기 전에 먼저 아래 "해야 할 것"을 확인해 주세요.

설치 전 해야 할 것 (환경 변수 수정)

1. 바탕화면의 [내 컴퓨터]에서 오른쪽 마우스를 클릭한 후, [속성]을 클릭합니다.
사용자 삽입 이미지

2. [고급] 탭에서 [환경 변수]를 클릭합니다.
사용자 삽입 이미지

3. [시스템 변수] 란에서 Path를 선택한 후 아래의 [편집] 버튼을 누릅니다.
사용자 삽입 이미지

4. 변수 값에서 다음의 값을 찾아서 없으면 추가를 한 후 전부 다 추가를 했다면 [확인] - [확인] - [확인]으로 빠져나옵니다.

* Apache가 설치된 디렉토리의 bin 디렉토리 (예; E:\Server\Apache\bin)
* Python이 설치된 디렉토리 (예; E:\Server\Python)
* Python이 설치된 디렉토리의 Scripts 디렉토리 (예; E:\Server\Python\Scripts)
* SVN이 설치된 디렉토리의 bin 디렉토리 (예; E:\Server\SVN\bin)

1. Apache + MySQL

ApacheMySQL에 대한 설치법은 여기를 참고하세요.

2. Python

파이썬은 Windows 용으로 설치를 한다면, Windows Installer와 같은 자동 설치 프로그램으로 설치를 진행하는 것입니다. 이것은 아주 쉬운 일이기 때문에 생략하겠습니다.

3. Subversion

Subversion(SVN)ApacheMySQL과 같이 Windows Installer와 같은 자동 설치 프로그램을 이용하여 설치를 진행합니다. 그러므로 여기서는 이 과정을 생략하도록 하겠습니다. Next 버튼을 몇 번 눌러주면 설치가 완료되기 때문입니다.

SVN을 모두 설치했다면 다음의 과정이 필요합니다.
[시작] - [실행] - cmd - [실행]을 통해 커맨드 창을 띄웁니다. svnadmin create {저장소 위치} 위의 명령으로 SVN에서 사용할 저장소를 새롭게 생성합니다. (예; svnadmin create e:\Server\Trac\SVN\Projects\bbuilder_plus)

그리고 SVN이 설치된 디렉토리의 bin에서 mod_dav_svn.so, mod_authz_svn.so, libdb44.dll, intl3_svn.dll 파일을 Apache가 설치된 디렉토리의 modules 디렉토리에 복사합니다.
그리고 Aapche와 연동하기 위해 다음 내용을 Apachehttpd.conf에 추가합니다.
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule python_module modules/mod_python.so

<Location /svn>
    DAV svn
    SVNParentPath {저장소가 저장되는 디렉토리}
    AuthName "Subversion Projects"
    AuthType Basic
    Require valid-user
    AuthUserFile {.htpasswd 파일의 경로}
</Location>

{저장소가 저장되는 디렉토리}는 SVN의 저장소가 저장되는 디렉토리입니다.
즉, /svn/bbuilder 라는 저장소가 있을 때 /svn 이라고 입력해야합니다.

사용자 인증을 위해 .htpasswd를 생성해야합니다.
.htpasswd 생성은 아파치 웹 서버의 htpasswd 프로그램을 사용하면 됩니다.
커맨드 창에서 다음과 같이 입력해서 만들 수 있습니다.
htpasswd -c {경로} {사용자아이디}
경로는 .htpasswd가 생성될 경로를 입력합니다. .htpasswd를 포함합니다. 예; E:\.htpasswd

4. SVN Python 바인딩 + Apache Python 모듈 + MySQL module for Python + ClearSilver

SVN Python 바인딩Apache Python 모듈, MySQL module for Python, ClearSilver은 자동으로 설치가 되는 Python 프로그램으로 되어있습니다. 그러므로 설치 프로그램을 실행한 후 [다음] 버튼을 2번만 눌러주면 설치가 완료됩니다.

5. Docutils

Docutils순수 Python으로 작성되었습니다. 때문에 Python 명령어로 설치를 해야합니다.

위에서 다운로드한 Docutils 소스 압축 파일을 편리한 아무곳에 풀어줍니다.
(예; E:\Temp\Docutils)

그런 후, Docutils 소스가 풀린 디렉토리로 이동합니다. docutils-0.X.X와 같이 버전이 쓰여 있는 디렉토리로 들어가면 docutils 소스(예; setup.py)가 보일 것입니다. 이 디렉토리에 다음 파일을 다운로드 한 후 넣어주세요.
위 파일을 위 디렉토리에 붙여넣기를 한 후 실행을 합니다. 하나의 커맨드 창이 뜬 후 docutils 설치가 완료 되면 저절로 사라질 것입니다.

6. MySQL 쿼리문

Trac에서 MySQL 테이블을 사용하기 전에 먼저 테이블과 사용자를 생성해야합니다.
다음의 명령을 MySQL 콘솔에서 입력하세요. (MySQL 콘솔은 [시작] - [MySQL Server] - [MySQL Command Line Client]로 실행할 수 있습니다.)
CREATE DATABASE {DB명} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER {사용자명} IDENTIFIED BY '{패스워드}';
GRANT ALL ON {DB명}.* TO {사용자명};

7. Trac

Trac 역시 Windows 바이너리형으로 자동으로 설치를 할 수 있습니다.

위 Trac 다운로드 사이트에서 Windows용 바이너리 설치 파일을 다운로드 한 후 설치를 진행하면 됩니다. 역시 Next를 몇 번 눌러주면 설치가 끝납니다.

이제 파이썬이 설치된 디렉토리의 Scripts로 이동합니다. (내 컴퓨터에서 이동합니다.)
앞으로는 파이썬의 Scripts에 있는 trac-admin 파일로 모든 것이 진행됩니다.

먼저 Trac 프로젝트를 생성해 보도록 하겠습니다.

다음 내용을 메모장으로 입력을 한 후에 위에서 언급한 파이썬 디렉토리의 Scripts 디렉토리trac-admin.bat라는 이름으로 저장합니다.
python trac-admin {프로젝트 경로} initenv

{프로젝트 경로}는 원하는 Trac 프로젝트 파일을 저장할 디렉토리를 지정해 주세요.
예) E:\Trac\Projects\b
그러면 아래와 같은 질문이 나옵니다. 정상적인 Trac 프로젝트 생성을 위해 제대로 입력해 주세요.
- Project Name [My Project] > 프로젝트 이름을 입력합니다. 예) BBuilder Plus

- Database connection string [sqlite:db/trac.db]> 데이터베이스 연결 정보를 입력합니다. 여기서는 MySQL을 사용할 것이므로 mysql://사용자명:패스워드@서버호스트(localhost)/DB명 형식으로 입력합니다. 예) mysql://beneglo:XXXX@localhost/trac
DB명은 위에서 생성한 DB입니다. 명심하세요!
사용자는 위에서 생성한 사용자입니다. 명심하세요!

- Repository type [svn]> Trac에서 연동할 저장소의 타입을 입력합니다. 기본 값이 svn이므로 그냥 엔터를 칩니다.

- Path to repository [/path/to/repos]> SVN 저장소의 디렉토리 위치를 입력합니다. 예) E:\Trac\SVN\Projects\bbuilder_plus

- Templates directory [C:\Python24\share\trac\templates]> Trac 템플릿을 선택해야 하지만 기본 템플릿을 위해 그냥 엔트를 칩니다.
위 과정을 모두 마치면 Trac 프로젝트를 생성합니다. 마지막에 축하한다는 메시지가 뜬다면 성공한 것입니다.

프로젝트가 생성된 디렉토리로 가보면 conf 하위에 trac.ini가 생성되어 있습니다. 이 파일을 메모장으로 실행하세요. 이 파일을 나중에 수정해야 합니다.

Trac은 Apache와 연동하여 사용해야 하기 때문에 Apache의 httpd.conf에 다음 내용을 추가합니다.
<Location /trac>
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir {Trac 프로젝트가 저장되는 디렉토리 경로}
  PythonOption TracUriRoot  /trac
</Location>

{Trac 프로젝트가 저장되는 디렉토리 경로}는 프로젝트가 생성되는 디렉토리를 입력합니다.
예를 들어, /trac/bbuilder_plus 프로젝트 디렉토리가 있다면 /trac을 입력합니다.
Trac도 SVN과 마찬가지로 .htpasswd 파일을 사용합니다. 다음 내용을 Apache의 httpd.conf에 추가해주세요.
<LocationMatch "/trac/[^/]+/login">
  AuthType Basic
  AuthName "Trac Project"
  AuthUserFile {.htaccess 파일 경로}
  Require valid-user
</LocationMatch>

이것으로 Trac의 설치를 마쳤습니다. 다음으로 Trac 사용을 편리하게 할 webadmin을 설치해 보도록 하겠습니다.

Trac Plugin - webadmin 설치

Trac은 원래 콘솔창을 이용해 제어를 해야합니다. 하지만 플러그인 webadmin을 이용하면 인터넷상에서 아주 편하게 Trac을 제어할 수 있습니다.

이 플러그인은 Pythonsetuptool을 이용하여 설치해야합니다. 먼저 다음 파일을 다운로드하여 파이썬 디렉토리의 Scripts 디렉토리에 복사합니다.


그리고 다음 파일을 다운로드해 파이썬 디렉토리의 Scripts 디렉토리에 복사합니다. 그 후 이 파일을 실행합니다.

위에서 실행한 커맨트 창이 닫히면 또 다음 파일을 다운로드 한 후 파이썬 디렉토리의 Scripts 디렉토리에 복사합니다. 그리고 이 파일을 실행합니다.


여기까지 Trac에 webadmin 플러그인 설치를 완료하였습니다.

이제 webadmin을 사용하기 위해 사용자에게 권한을 부여해야합니다.

다음 내용을 메모장에서 입력한 후 파이썬 디렉토리의 Scripts 디렉토리trac-admin.bat라는 이름으로 저장해주세요. 덮어쓰기를 합니다. 그리고 실행합니다.
python trac-admin {Trac 프로젝트 경로} permission add {사용자 이름} TRAC_ADMIN

{사용자 이름}은 반드시 .htaccess 생성시 입력한 아이디를 입력해주세요!

그리고 아까 실행했던 trac.ini에 다음 내용을 추가합니다.
[components]
webadmin.* = enabled

여기까지 SVN과 Trac을 연동한 설치를 마쳤습니다.

여기까지 읽으시고 이해가 되지 않는 부분이나 오류나 에러가 생기는 부분이 있다면 반드시 여기에 댓글을 달아주세요. 그 부분을 수정하여 새롭게 글을 올릴 것입니다.
받은 트랙백이 없고, 댓글 6개가 달렸습니다.
댓글+트랙백 RSS :: http://www.beneglo.com/rss/response/51
댓글+트랙백 ATOM :: http://www.beneglo.com/atom/response/51

트랙백 주소 :: http://www.beneglo.com/trackback/51

트랙백 RSS :: http://www.beneglo.com/rss/trackback/51

트랙백 ATOM :: http://www.beneglo.com/atom/trackback/51

댓글을 달아 주세요

댓글 RSS 주소 : http://www.beneglo.com/rss/comment/51
댓글 ATOM 주소 : http://www.beneglo.com/atom/comment/51
  1. 모노로리 2008/05/27 18:24  address  modify / delete  reply

    이런건 어디서 알아내시는지.. 참 아시는것도 많아 ㅡ0ㅡ

  2. 덕자씨 2008/07/24 14:54  address  modify / delete  reply

    중간 과정에 질문이 있는데요..
    파이선-스크립트에서 trac-admin.bat 생성후 진행사항이 막혀서요.
    파일을 생성까진 했는데 뭘 어떻게 해야 그 아랬부분에 프로젝트 입력하는
    것이 나오는지 궁금합니다.
    cmd창 띄워놓고 따로 해야하는것인지요???
    .bat파일은 실행해 보면 cmd창 빤짝하고 나왔다
    사라집니다~..

    • BENEGLO 2008/07/24 15:53  address  modify / delete

      제가 생각하기에는 커맨드창에서 Python 명령어를 인식하지 못하는 것 같습니다.

      다음의 사항을 확인해 주세요.

      [시스템 속성] - [고급] - [환경 변수] - [시스템 변수]에서 Path 값에 Python이 설치된 디렉토리를 추가해주세요. ;(세미콜론)으로 구분해야합니다. ex) E:\Server\Python

      그래도 안 되시면 댓글을 달아주세요.

  3. 덕자씨 2008/07/24 21:28  address  modify / delete  reply

    요호~~!!!
    되네요~~ ^^+
    저런문제가 있었을 줄이야!!
    감사합니다~!! 이제야 계속진행형~~

    • BENEGLO 2008/08/06 16:23  address  modify / delete

      몰랐는데요.
      스팸 댓글에 걸렸었나 봐요.. ㅈㅅ...
      휴지통에 글이 있더군요.. 그냥 스팸 걸러내는 플러그인을 중지시켜야 겠네요..

[로그인][오픈아이디란?]

독도 광고 모금 캠페인