'서브버전'에 해당되는 글 2건

  1. 2007/04/30 서브버전 및 TRAC 설치 가이드 4
  2. 2006/08/25 서브버전에서 Branch를 할때 4

서브버전 및 TRAC 설치 가이드
2007/04/30 10:08

회사에서 형상관리 일환으로 운영할 버전관리와 버그관리를 위한 서브버전 및 TRAC의 설치가이드로 작성되었지만 기존 웹상에 좋은 많은 메뉴얼이 있지만 회사 내부에 맞도록 다시 작성한 문서.
2007.4.30일 현재 TRAC은 0.10.4가 최신버전



1. Apache 2.0.xx 버전 설치 (2.0.59 버전 설치 했음)
아래 링크에서 아파치를 다운받아 설치 한다. httpd/binaries/win32/ 에서 받으면 된다. (apache_2.0.59-win32-x86-openssl-0.9.7j.msi)
http://www.apache.org/dyn/closer.cgi
2.0.xx 이상 버전(2.2.x)은 Window Subversion이 지원하지 못한다. 꼭 2.0.xx 버전대를 설치하도록 한다.
(자세한 사항은 링크를 참조한다. http://subversion.tigris.org/project_packages.html)
2007년 1월 25일 Apache 2.2.x 버전을 위한 Subversion 이 build됨. - 아직 테스트 해보지 못함.
버전 또는 다른 사유로 Apache를 재설치 시 3-2. mod_python과 2. Subversion을 재설치하여야 한다.

2. Subversion 최신버전 설치 (1.4.3 설치)
아래의 링크에서 Window용 Subversion을 다운받아 설치한다. (svn-1.4.3-setup)
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=8100
Apache가 설치된후에 설치를 해야 httpd.conf 에 Subversion의 올바른 경로가 설정된다.

3. Python 2.4 설치
아래 링크에서 Python을 다운받아 설치한다.(Python 2.4.4)
http://www.python.org/download/
Python 2.5 버전은 지원하지 모듈이 있으므로 가급적 2.4 버전을 설치한다.(6)
그래도 2.5 버전을 설치하고 싶다면  http://trac.edgewall.org/wiki/TracInstall 페이지를 참조한다.

3-1. svn-win32-1.4.3_py2.4.exe 을 다운받아 설치
아래의 링크에서 Subversion 1.4.3 Win32 Installer for the Python 2.4 bindings 을 다운받아 설치한다.
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=8100 

3-2. mod-python-3.3.1-py2.4 다운받아 설치
Apache의 속도를 빠르게 하기 위해서 아래의 링크에서 mod_python을 다운받아 설치한다. (mod_python-3.3.1.win32-py2.4-Apache2.0.exe)
http://httpd.apache.org/modules/python-download.cgi
* Win32Binaries 라고 중간에 링크가 걸려있다.
* Apache를 재설치할경우 mod_python은 다시 설치해 주어야 한다.

3-3. Docutils 설치
아래의 링크에서 docutils-0.4.tgz 를 다운받아 압축을 푼다음 $ python ./setup.py install 와 같이 실행하여 설치한다.
http://docutils.sourceforge.net/

3-4. PySQLite 설치
아래의 링크에서 Python 버전(2.4)에 맞는 PySQLite를 다운받아 설치
http://initd.org/tracker/pysqlite/wiki/pysqlite
TRAC에서 MySQL을 지원하나 아직 테스트 단계이므로 PySQLite를 설치하도록 하자.

3-5. ClearSilver 설치
아래의 링크에서 Python 버전(2.4)에 맞는 ClearSilver를 다운받아 설치(clearsilver-0.9.14.win32-py2.4.exe) - Python2.5용 버전이 없다.
http://www.clearsilver.net/downloads/

4. TRAC 0.10.3.1 설치
아래의 링크에서 윈도우용 인스톨러 TRAC을 다운받아 설치
http://trac.edgewall.org/wiki/TracDownload

이곳까지 설치를 완료했다면 Apache와 TRAC 그리고 Subversion 이 연동되도록 최소한 설치작업을 모든 마쳤다.
테스트를 해보지는 않았지만 이 모두를 한꺼번에 설치하기위한 웹페이지가 있다.
각 설치파일들의 버전도 가장 최신버전으로 설정되어 있다.
아래의 링크를 참조한다.
http://yeoupooh.us.to:8080/wiki/display/pu/TracOnWindows
 
5. Subversion Repository 생성 및 TRAC의 DB생성
Subversion의 Repository를 생성하는 방법으로 2가지가 있다.
첫번째는 console을 사용하여 text로 생성하는 방법과 TortoiseSVN을 사용하여 생성하는 방법이 있다.
생성하는 방법은 아래의 참고자료의 링크들을 참고하여 생성하도록 한다.
TRAC의 DB는 Python환경에서 console에서 작성하여야 한다.
자세한 방법은 아래의 링크를 참조한다.
http://jongyeob.com/moniwiki/wiki.php/TracInstall

TRAC의 DB와 Subversion의 Repository를 구성한 예시)

d:\SVN  --+- TEST
                +- PROJECTA
               +- PROJECTB
d:\TRAC --+- TEST
              +- PROJECTA
              +- PROJECTB
* 디랙토리 구조는 어디까지 예시이다. 그러나 어떻게 구성할것인가 미리 검토하고 작성하는것이 두번일 안하는 비결이다.
TRAC을 위해서는 Apache config 파일(httpd.conf)에 아래 내용들을 추가한다.

LoadModule python_module modules/mod_python.so
<Location /test>
   SetHandler mod_python
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnv d:\trac\test
</Location>


http://localhost/test 로 접근해서 TRAC의 첫페이지가 나오면 성공이다.
Subversion의 Repository를 위해서는 아래의 내용을 추가한다.
<Location /svn/test>
   DAV svn
   SVNPath d:\svn\test
</Location>
http://localhost/svn/test 로 접근해서 Repository revision 화면이 나오면 성공이다.

6. login 설치 - 인증
* .htaccess 파일을 생성해서 특정한 폴더에 두고 TRAC의 login시와 Subversion의 login시 같이 사용하도록 하면 계정관리하기도 수월하다.

TRAC의 login을 위해서는 아래와 같은 내용을 httpd.conf에 추가한다.

<Location /test/login>
  Authtype Basic
  AuthName "TEST"
  AuthUserFile d:\.htaccess
  Require valid-user
</Location>

.htaccess 는 Apache의 htpasswd.exe를 실행하여 생성한다.
Subversion에 anonymous가 아닌 인증된 사람만 접근을 허용하려면 아래와 같은 내용을 추가한다.

<Location /svn/test>
  DAV svn
  SVNPath d:\svn\test
 Authtype Basic
 AuthName "TEST"
 AuthUserFile d:\.htaccess
 Require valid-user

</Location>
7. Plugin 설치
TRAC의 admin을 사용하여 관리하기 불편하다면 plugin을 설치하자.
http://trac-hacks.org/wiki
ez_setup.py 를 실행 설치후 python24/scripts/easy_install.exe 생성
easy_install.exe ~.egg 로 설치
trac.db/conf/trac.ini 파일에 [components] 에 webadmin.* = enabled 와 같이 추가하여 사용한다.
trac-hacks 에 있는 Plugin등을 다운받지 않고 svn 경로명(http://test.co.kr/test/trunk/0.10)을 easy_install.exe 경로명 으로도 설치 가능하다.

8. http이외의 보안을 위한 접속프로토콜

https로 접속을 위한 SSL 설치

8-1. ssl 설치
LoadModule ssl_module modules/mod_ssl.so 주석(#)을 해제한다.
Apache Service Monitor 를 열어서 아래에 보면 어떤 모듈이 지금 현재 동작중인지 나온다. 참고하자.
Apache/2.0.59(win32) mod_ssl/2.0.59 OpenSSL/0.9.7.j SVN/1.4.3. DAV/2

8-2 인증키 만들기
OpenSSL.exe 를 사용하여 인증서를 만든다.
openssl req -new -out filename.csr
openssl rsa -in privkey.pem -out filename.key
openssl req -new -x509 -days 365 -key filename.key -out filename.crt
생성된 filename.key와 crt 파일을 Apache의 conf 디렉토리에 복사해 넣는다.

8-3 httpd.conf 설정하기
아래의 내용을 추가한다.

Listen 443
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile "C:\Program Files\Apache Group\Apache2\conf\filename.crt"
SSLCertificateKeyFile "C:\Program Files\Apache Group\Apache2\conf\filename.key"
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
<Location /svn>
DAV svn
SVNPath d:\svn\test
Authtype Basic
AuthName "TEST"
AuthUserFile d:\trac\.htaccess
Require valid-user
</Location>
</VirtualHost>

Svnserver로 접속을 위한 방법
설치는 아래의 링크를 참조한다.
http://serious-code.net/moin.cgi/SubversionSetup
이재홍님의 SVNmanager를 실행하여 운영한다.
주의할점은 Subversion 디렉토리와 Trac 디렉토리를 구분한다.
TortoiseSVN으로 접속시 Multi Project로 작업이 가능하다.
svn://test.co.kr/test
svn://test.co.kr/projecta

SVN+SSH
Cygwin을 설치
http://ist.uwaterloo.ca/~kscully/CygwinSSHD_W2K3.html
환경변수에 Path=c:\cygwin 와 cygwin=ntsec tty 를 추가

9. 한글화
KLDP의 트랙 한글화 웹페이지를 참조
http://kldp.net/projects/trac-ko/
아래의 링크에서 최신트랙을 다운받아 설치한다.
http://kldp.net/frs/?group_id=724

tarball (tar.gz등 압축된 파일)을 다운받아서 압축을 푼다음 $ python ./setup.py install 와 같이 설치한다.
윈도우용 TRAC이 설치되어 있는 경우 제대로 설치가 되지 않을수 있다. 프로그램 추가삭제에서 TRAC을 삭제후 재설치 해본다.


참고사이트


Subversion
윈도우에 Subversion 설치 - 이재홍님
http://www.pyrasis.com/main/SubversionServerForWindows

SVN manger Utility - 이재홍님
http://www.pyrasis.com/main/SVNSERVEManager

TRAC
Trac 설치 - 종엽님위키
http://jongyeob.com/moniwiki/wiki.php/TracInstall

윈도우XP에 TRAC, Subversion 및 Moniwiki 설치
http://aslongas.pe.kr/tt/index.php?pl=11
http://gaedol.org/resources/wiki/TracGuide

TRAC의 도움말 부분 번역 페이지
http://ai.uos.ac.kr/trac/ailab/wiki/TracInstall

윈도우에 TRAC 설치하기 - TRAC 영문
http://trac.edgewall.org/wiki/TracOnWindows

TRAC에서 Plugin 설치하기 - TRAC 영문
http://trac.edgewall.org/wiki/TracPlugins

WebAdmin Pluging
http://trac.edgewall.org/wiki/WebAdmin

TRAC의 Plugin 이 있는곳 - TRAC Hack 영문
http://trac-hacks.org/wiki

Windows에서 TRAC(StandAlone)과 서브버전 설치 - 영문
http://lazutkin.com/blog/2006/feb/18/setting-tools-windows/

Trac Apache Subversion AllinOne - 모두를 한꺼번에 설치하기
http://yeoupooh.us.to:8080/wiki/display/pu/TracOnWindows

TRAC에서 문서작성을 편하게 하기위한 WikiExporter - CRIZIN님
http://crizin.net/entry/TinyMCE-플러그인-WikiExporter

Subversion과 TRAC연동
Cygwin을 사용한 SVN+SSH 연동
http://hankiya.com/tt/jhk8211/330

Window 2003 server에서 Cygwin SSH daemon 설치 - 영문
http://ist.uwaterloo.ca/~kscully/CygwinSSHD_W2K3.html

SVN+SSH 연동
http://wiki.kldp.org/wiki.php/SubversionTips
http://kwon37xi.egloos.com/2521260

SSH Howto(영문)
http://www.logemann.org/day/archives/000099.html 

서적

서브버전을 이용한 실용적인 버전관리
http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200603080013

보안을 위한 효율적인 방법 PKI
http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200309040006

기타
SSL이란?
http://www.junjaewoo.com/kldp/SSL-Certificates-HOWTO/x70.html

OpenSSL HOWTO 문서  - kldp
http://wiki.kldp.org/wiki.php/DocbookSgml/SSL-Certificates-HOWTO
http://wiki.kldp.org/wiki.php/LinuxdocSgml/ApacheSSL-KLDP
http://wiki.kldp.org/wiki.php/DocbookSgml/SSL-RedHat-HOWTO

tortoiseSVN 다운받기
http://tortoisesvn.net/downloads
tortoiseSVN Howto
http://wiki.kldp.org/wiki.php/TortoiseSVN-USE

2007/04/30 10:08 2007/04/30 10:08
Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다

  • Woof 2007/04/30 11:07  댓글주소  수정/삭제  댓글쓰기
    후, 저는 회사에서는 안쓰고 그냥 개인적으로 거북이로 관리하는데. 서버 하나 두고 하고 싶은데. 정리 잘 하신 것 같아요.
    • hongyver 2007/04/30 11:53  댓글주소  수정/삭제
      이제 시작입니다.
      팀원에 적극적인 의지가 필요하더군요...아직까지는 많이 부정적이라...힘들어요...ㅜㅜ
  • maru.arisu.gen 2007/05/31 14:41  댓글주소  수정/삭제  댓글쓰기
    글 잘 보았습니다.
    근데 sqlite3은 설치하지 않은 건가요? 전 이거 달랑 .exe 파일만 있어서 어떻게 해야될지를 모르겠더군요...설명좀 해 주실 수 있나요?...
    저도 일단 좀 알고 나면 회사에서 사용을 해 볼까 하는데...회사 사람들이 영 관심이 없네요..
    • hongyver 2007/05/31 15:57  댓글주소  수정/삭제
      SQLite3.exe는 0.9 버전대에서 programfiles/SQLite 에 그냥 복사하는것으로 사용이 가능했는데...
      .10 버전대에 올라오면서 PySql로 대체한듯 합니다.
      고로 0.10버전대를 사용하시면 설치하지 않으셔도 됩니다.

  • 서브버전에서 Branch를 할때
    2006/08/25 09:57

    서브버전의 디렉토리 구조는

    ─┬──  trunk
       ├──  tags
       ├──  branches

    위와 같은 구조로 나뉜다.

    Tags는 릴리즈된 코드(적어도 외부에 한번이라도 공개된 코드)를 보관하면 된다.
    (소스코드 전체가 보관되는게 아니니 용량 걱정 할 필요도 없고 버전만 확인하여 배포된 소스코드를 그대로 얻을수 있으니 편리하다)

    문제는 Branches 의 용도인데...
    "서브버전을 이용한 실용적인 버전관리" 에서는 릴리즈시(릴리즈 몇일전부터) trunk에서 분리해서 간단한 버그만 수정하여 trunk에서 작업은 그대로 계속진행하고 릴리즈 작업을 branches에서 진행하도록 한다 라고 조언한다.

    그러면 테스트 삼아 작성되는 새로운 기능추가나 별도의 작업으로 진행되다 나중에 추가되는것들은 어떻게 진행되어야 할까?
    2006/08/25 09:57 2006/08/25 09:57
    Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다

  • TWEETY 2006/08/25 12:50  댓글주소  수정/삭제  댓글쓰기
    trunk... 아녜요? ㅡ,.ㅡ
    • hongyver 2006/08/25 13:19  댓글주소  수정/삭제
      메인줄기는 trunk에서 관리하고...
      릴리즈시만 잠시...릴리즈후 태그에 복사해 놓구...
      다시 trunk에 merge

      좀더 읽어봐야겠어 ㅡㅡ?
  • daewonyoon 2006/09/12 20:49  댓글주소  수정/삭제  댓글쓰기
    저희 개발팀에선 브랜치로 잠시 작업하다가, 메인트렁크가 완전히 브랜치로 옮겨버렸답니다. 멍청한 짓인 것 같은데, 뭐 별 상관이 없어서 그냥 거기 브랜치에서 받아라 그랬죠. 좀 더 현명하게 머징도 해 주고 그러는 기능이 있는 것도 같은데, 어차피 다시 한번 훑어 봐야 하는 것 같아요.
    • hongyver 2006/09/12 23:24  댓글주소  수정/삭제
      그러게 쓰다보면...무언가 답이 보일듯...
      꼭 틀에 얽매혀 쓰여 효율을 지나친다면 그것도 역행하는거겠죠?