Header

  1. View current page

    daybreaker님의 노트

Profile_image?t=1224065988&type=small
6

Trac 세팅하기

 

trac은 많은 오픈소스 프로젝트에서 사용하고 있는 issue tracking system이다.
Python으로 제작되어 있고, 웹 인터페이스 표현을 위해 clearsilver를 사용하고 있다. (차후 버전에서는 자체 개발한 코드로 변경 예정)
Timeline, Changeset 및 source browser를 통한 Subversion과의 연동이 매우 강력하다는 점이 큰 메리트다.

 

설치하기

각 리눅스 배포판에서 제공하는 trac 패키지를 설치해도 되나, 일반적으로 버전이 낮아 실제 사용하기에는 불편한 점들이 좀 있다.

trac 자체가 python 패키지 형태로 제공되므로, trac이 필요로 하는 python-subversion, python-clearsilver, clearsilver 등만 설치해주고 trac 소스를 받아 setup.py를 실행시켜주는 게 낫다. (삭제하려면 python의 site-packages 디렉토리에서 trac 디렉토리만 통째로 날려버리면 된다. 물론 개별 프로젝트 디렉토리는 따로 삭제.)

프로젝트 생성하기

자신이 원하는 아무 디렉토리에 들어가서,

  1. $ trac-admin projectdir initenv
    ...
    Project Name [My Project]> PROJECT_NAME
    Database connection string [sqlite:db/trac.db]> (skip)
    Path to repository [/var/svn/test]> PATH_TO_SUBVERSION_REPOSITORY
    Templates directory [/usr/share/trac/templates]> (skip)
    ...
    Congratulations!

일단 이렇게 하면 프로젝트 디렉토리가 생성된다.

아파치 설정하기

실제로 trac을 사용하려면 웹브라우저로 접근할 수 있게 해줘야 한다. tracd라는 자체 데몬이 있긴 하지만 일반적으로 한 서버에서 trac만 독자적으로 돌리는 경우는 드물기 때문에 아파치의 mod_python을 이용한다.

다음은 MetaBBS 프로젝트에서 사용하고 있는 trac의 설정 내용이다.

  1. <VirtualHost *>
        ServerName dev.metabbs.org
        SetHandler mod_python
        PythonInterpreter "trac"
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv /var/www/trac/metabbs
        PythonOption TracLocale "ko_KR.UTF-8"
        PythonOption TracUriRoot /
        <Location /login>
            AuthType Digest
            AuthName "metabbs"
            AuthDigestFile "/var/www/trac/metabbs/conf/password"
            Require valid-user
        </Location>
    </VirtualHost>

서버에 따라 Location 대신 LocationMatch 등을 써서 좀더 엄격한 설정을 하기도 한다. 로그인해야만 접근할 수 있도록 설정하려면 Location 부분을 바꾸면 되지만, anonymous 사용자 권한 설정을 통해 제어할 수도 있다.

 

저기서 PythonInterpeter라는 옵션은 아파치가 여러 개의 프로세스로 fork된 상태에서 subversion과 python을 연결할 때 사용되는 swig 라이브러리의 concurrency 관련 버그가 있기 때문에 하나의 인터프리터 인스턴스로 통일하고자 하기 위함이다.

 

이제 trac 프로젝트 디렉토리 안의 db 디렉토리 및 그 하위 파일들에 대해 웹서버가 write할 수 있는 권한을 주면 웹에서 trac을 볼 수 있다.

사용자 설정하기

오픈소스 프로젝트의 경우 익명 티켓 생성 등 대부분의 권한을 열어놓기도 하지만(처음 프로젝트 세팅시 기본값), 팀 프로젝트라든가 과목 프로젝트로 trac을 쓰는 경우에는 권한 설정이 필요하다.

trac-admin projectdir을 실행하면 작은 대화형 쉘이 뜨는데, 여기서 permission, milestone, component, priority, severity 등을 추가/변경/삭제할 수 있다. (trac 시스템에 대한 이해만 하고 있다면 사용법은 그리 어렵지 않으니 help를 쳐보기 바란다)

여기서 사용되는 사용자 ID들은 trac이 관리하지 않고, 보통 위의 아피치 설정에서 지정한 htpasswd나 htdigest 등의 로그인 ID를 따르며, anonymous는 로그인하지 않은 상태를 나타낸다.

Tags

History

Last edited on 07/03/2007 02:49 by daybreaker

Comments (0)

You must log in to leave a comment. Please sign in.