달력

3

« 2024/3 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'Eclipse'에 해당되는 글 1

  1. 2012.01.03 Redmine 설치와 Eclipse 연동 2
2012. 1. 3. 00:08

Redmine 설치와 Eclipse 연동 개발툴2012. 1. 3. 00:08

예전 블로그TOW(Trac On Windows)의 설치 관련 포스팅을 한 적이 있습니다.
Trac은 개발 프로젝트를 관리하는데 상당히 쓸만한 툴이긴 합니다.
그런데 가장 큰 문제점이 설치가 무척 힘들다는 것과.. 그래서 어느 한국분이 위의 TOW를 만드셔서 Windows 환경에서는 그래도 좀 쉽게 설치가 되게 했습니다만.. 그래도 만만찮죠..

그러던 중 알게 된 툴이 Redmine입니다.
개발자가 개발에 필요한 항목 위주로 설정된 Trac에 비해서 Redmine 은 일단 UI도 좀 더 깔끔하고 한글도 원활히 지원될 뿐 아니라 Gantt Chart 등을 통한 일정관리 등 관리자들과 같이 쓰기에도 더 나은 것 같습니다.

한 가지 단점이 Eclipse의 Mylyn에서 바로 지원이 되던 Trac에 비해서 Redmine은 Eclipse와의 연동이 쉽지 않다는 것이었는데 아직은 Trac에 비해 좀 부족하지만 Eclipse 기반 Plugin도 찾게 되어서 내용을 정리해보고자 합니다.

오픈소스의 특성상 이 내용들은 아마도 수시로 바뀔겁니다.
일단 저는 2011년 12월 10일날 공개된 Redmine 1.3.0 Stable  버전을 기반으로 설치하겠습니다.

Python을 기반으로 하여 구성된 Trac과 달리 Redmine은 Ruby(ruby on rails) 기반으로 작성되어 있습니다.
확실히 요즘은 스크립트 기반의 Framework이 대세인거 같군요..
어느쪽이던 쓸 줄을 모르는 스크립트 언어라..  한번 배워놔야 할 듯..

설치는 다음과 같은 순서로 진행됩니다.
(영문 공식 설치가이드 페이지는 여기입니다.)
  1. Ruby(1.8.7) 설치
  2. Rails(2.3.14), Rack(1.1.1), Rake(0.8.7), iI18n(0.4.2) 설치
  3. Redmine(1.3.0) 설치 => 중간확인
  4. Eclipse Plugin 설치



1. Ruby 설치


현 시점(2012년 1월 2일) 기준으로 최신 버전은 1.9.3이지만 Redmine과의 호환성 때문에 1.8.7 버전을 선택하기로 했습니다.
Ruby 다운로드는 RubyForge 사이트에서 받으시면 되는데 저는 취향대로 installer 를 싫어하는 편이라 7z으로 압축된 압축 해제본을 받았습니다.
일단 경로가 너무 길어서 좀 줄이고 저는 E:\Program\Ruby-1.8.7 에 압축을 풀었습니다.

압축푸는 방식으로 설치했으면 환경설정이 일부 필요합니다.
RUBY_HOME을 추가하고 PATH에 추가하죠...

set RUBY_HOME=E:\Program\Ruby-1.8.7
set PATH=%RUBY_HOME%\bin;%PATH%

물론 Windows는 아래와 같이 시스템 속성->고급->환경 변수에서 세팅해야 합니다.




2. Rails(2.3.14), Rack(1.1.1), Rake(0.8.7), i18n(0.4.2) 설치
Rails는 Ruby에서 웹 개발을 위한 Framework이고(Ruby on Rails) 나머지는 제가 Ruby를 잘 몰라 정확히는 모르지만 여튼 Ruby의 관련 라이브러리입니다(i18n은 internationalization일 듯.. 국제화).
이 파일들은 직접 다운로드 받거나 할 필요는 없고 gem 이라는 일종의 패키지 매니저를 사용해서 받습니다.

그런데 예전 버전에서는 없었던 문제인 듯 싶은데 gem이 업데이트 되면서 호환성 문제가 생깁니다.
당장은 괜찮은데 아래 작업을 하지 않으면 나중에 session store secret 생성시 오류가 발생하므로 gem을 아래와 같이 다운그레이드 시켜줍니다.
 E:\Program\Ruby-1.8.7\bin>gem update --system 1.6.2
확인해 보니 공식 페이지에도 이런 글이 있네요..
 RubyGems 1.3.7 or higher is required with following limitations :

    Rails 2.3.5 will fail with RubyGems 1.5.0 or later, stick to previous versions of RubyGems !
    Rails 2.3.11 will fail with RubyGems 1.7.0 or later, stick to previous versions of RubyGems !



그럼 아래 명령을 실행해서 현재 설치된 현황을 알아봅니다.
E:\Program\Ruby-1.8.7\bin>gem list -- local
*** LOCAL GEMS ***

rubygems-update (1.6.2)

E:\Program\Ruby-1.8.7\bin>

만일 7z으로 압축받아서 설치했으면 위에서 설치한 rubygems-update 하나밖에 없을 것이고 인스톨 버전으로 설치했으면 설치된 내역이 나올겁니다.
버전이 안맞거나 설치된 내역이 없으면 제목의 저 프로그램들을 아래와 같이 각각 인스톨 합니다.

>gem install rails -v=2.3.14
>gem install rack -v=1.1.1
>gem install rake -v=0.8.7
>gem install i18n -v=0.4.2

네트웍을 접속해서 설치가 진행되므로 온라인 상태여야 하며 다운로드 시간을 감안해서 좀 기다려야 합니다.

설치 후 다시 설치내역을 확인하면 다음과 같습니다.
 e:\Program\Ruby-1.8.7\bin>gem list --local

*** LOCAL GEMS ***

actionmailer (2.3.14)
actionpack (2.3.14)
activerecord (2.3.14)
activeresource (2.3.14)
activesupport (2.3.14)
i18n (0.4.2)
rack (1.1.3, 1.1.1)
rails (2.3.14)
rake (0.9.2.2, 0.8.7)
rubygems-update (1.6.2)

e:\Program\Ruby-1.8.7\bin>

rack과 rake는 rails 의 depencency 때문에 2개의 버전이 인스톨 된 상황입니다.
필요하시면 다음의 명령을 실행 후 상위버전을 삭제하면 됩니다.
 >gem uninstall rack
 >gem uninstall rake
입력창에서 삭제하시려는 버전을 선택하면 됩니다.
(그런데 그냥 놔둬도 별 상관 없더군요)

3. Redmine(1.3.0) 설치
드디어 오늘의 주인공 Redmine을 설치할 시간입니다.
이부분은 좀 기니.. 세부 목록으로 좀 나누겠습니다.

3-1. Redmine 설치(압축해제)
다운로드 메인 페이지는 여기이며 역시나 이곳도 결국 RubyForge의 다운로드 페이지로 연결됩니다.
zip으로 압축된 파일을 받으시면 되고 적당한 위치에 압축을 풉니다.
저는 E:\Program\Redmine-1.3.0 에다 설치했습니다.

3-2. DB 선정(mysql) 및 계정생성
그리고 자료를 저장할 Database 를 선정&설치합니다.
Redmine 은 MySQL과 PostgreSQL을 지원하는데 mysql로 설치를 진행하겠습니다.

일단 mysql 설치 및 환경설정은 너무 범위를 벗어나는 거 같아서 다른 블로그 등을 참조하시고..
설치가 되면 redmine 유저를 우선 생성합니다.
mysql에 접속하셔서 다음과 같이 실행합니다.

create database redmine character set utf8;
create user 'redmine'@'localhost' identified by 'my_password';
grant all privileges on redmine.* to 'redmine'@'localhost';

물론 my_password에는 저장하고자 하는 암호를 넣어주시구요.
mysql 버전 5.0.2 이전의 경우에는 아래 두 줄을 다음과 같이 한 번에 실행이 가능합니다.

 grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'my_password';

3-3. database.yml 편집
이제 사용자와 DB 구성이 완료되었으니 redmine용 schema를 생성할 차례입니다.
Redmine 설치위치의 config 에 가보면 database.yml.example 이라는 텍스트 파일이 있는데 이 파일을 database.yml로 이름을 변경하고 다음과 같이 편집합니다.
(production 항목 변경)

 production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: my_password
  encoding: utf8

빨간색 암호 부분은 위의 설정한 암호로 변경하시구요.
만일 port 번호를 기본인 3306 이외의 포트로 쓰신다면 port: 해서 추가해 주시면 됩니다.

3-4. redmine용 mysql 라이브러리 설치
그리고 mysql로 실행할 것이므로 mysql용 접속 라이브러리를 다음과 같이 설치합니다.
 >gem install mysql

No definition for ~~~ 라는 메시지가 여럿 뜨는데 이 부분에 대해서는 아직 정확히 모르겠습니다.
그리고 Windows의 경우 관련 dll이 설치되지 않아서 오류가 발생하므로 여기서 dll 파일을 받아서 %RUBY_HOME%\bin 에 넣어줍니다.



3-5. session store secret 생성
다음은 session store secret이라는 것을 만들 차례인데 redmine 설치위치로 이동해서 다음과 같이 수행합니다.
 rake generate_session_store

3-6. Schema 생성
이제 mysql에 schema를 생성합니다.
우리가 production 항목에 변경했으므로 production으로 설정하고 실행합니다.
 >set RAILS_ENV=production
 >rake db:migrate

그러면 뭔가 한참 돈 다음에 종료됩니다.
툴로 들어가보면 redmine에 관련된 테이블이 수십개 생성되어 있습니다.

3-7. 초기 데이터 입력
초기 설정자료를 아래와 같이 입력하여 생성합니다.
 >set RAILS_ENV=production
 >rake redmine:load_default_data

이 작업은 필수는 아니지만 모든 자료를 처음부터 만들기 어렵기 때문에 되도록이면 실행해 주시는 게 좋습니다.
실행 시 선택한 언어에 따라 다음과 같이 입력창이 뜹니다.
 Select language: bg, bs, ca, cs, da, de, el, en, en-GB, es, eu, fa, fi, fr, gl,
he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl,
sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]

엔터를 바로 입력하면 영어(en)이 설정되고 한글을 선택하려면 ko를 입력하면 됩니다.
참고로 이 언어 설정은 redmine의 웹 페이지 언어 설정과는 상관없습니다.
그 부분은 나중에 계정 만들 때 language 설정에서 바꿔주시면 됩니다.

3-8. 실행 및 확인
*nix 계열 OS는 권한 설정 절차가 일부 있지만 Windows는 이제 다 끝났으니 다음과 같이 실행해서 잘 되는지 확인해 보면 됩니다.
 ruby script/server webrick -e production

기본으로 3000번 포트를 사용하므로 처음 실행할 때 ruby 프로그램에 대한 포트 사용 경고가 뜰 수 있으니 허용해 주시고 다음과 같은 메시지가 보이면 완료된 것이므로 웹 브라우저로 확인해 봅니다.
 e:\Program\Redmine-1.3.0>ruby script/server webrick -e production
=> Booting WEBrick
=> Rails 2.3.14 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-01-02 17:18:29] INFO  WEBrick 1.3.1
[2012-01-02 17:18:29] INFO  ruby 1.8.7 (2011-12-28) [i386-mingw32]
[2012-01-02 17:18:29] INFO  WEBrick::HTTPServer#start: pid=1792 port=3000


http://localhost:3000으로 접근하면 위와 같이 좀 썰렁한 화면이 나타납니다.
기본 관리자 계정인 admin/admin으로 들어가서 개인설정 및 프로젝트 설정 등 필요한 내용을 설정합니다.

이 포스팅의 목적은 우선 설치이므로 프로젝트 등록이나 svn 연결등은 다른 사이트를 참고하시거나 어렵지 않으니 직접 이거저거 만져보면 엔간하면 아실겁니다.
프로젝트 등록되었다고 가정하고 Eclipse와의 연동으로 들어갑니다.

4. Eclipse plugin 설치
Eclipse에서는 이러한 툴들과의 연동을 위해 mylyn이라는 plugin이 이미 존재합니다.
그런데 Eclipse에서 공식적으로 배포하는 mylyn에서는 상용인 jira, 오픈소스인 bugilla와 trac 만 지원이 됩니다.
Connector 추가를 눌러봐도 redmine은 나오지 않는데 아직 개발 초기라 개발 사이트에서만 다운로드 가능한 듯 합니다.
초기단계라 아직 좀 불안전한 부분도 있는데 앞으로 더 나아지길 바랍니다.
여기서는 Eclipse/mylyn까지는 설치된 후부터 진행하겠습니다.

여기를 보면 redmine에서 제공하는 기본적인 mylyn과의 연동에 대한 설명입니다.
generic web repository manager는 거의 대부분의 작업을 eclipse내에 웹브라우저를 띄워서 적용하기 때문에 한계가 좀 있으므로 Eclipse-mylyn connector의 설치에 대해 진행하겠습니다.

4-1. git 설치
git은 svn과 같은 또 하나의 버전관리 시스템인데 좀 다른 점은 분산버전관리 툴이라는 점입니다.
즉, 중앙서버에 접속이 불가능하더라도 작업이 가능한 형태인데 Linux를 만든 것으로 유명한 리누스 토발즈가 원래 Linux Kernel을 개발하기 위해 만든 것인데 현재는 오픈소스 프로젝트들을 중심으로 해서 많이 퍼지고 있는 상황입니다.
최근 몇 년 사이에 오픈소스 버전관리 툴이 CVS->SVN->GIT로 옮겨오는 것 같은 분위기네요..
물론 SVN과 GIT는 분산버전관리라는 점에서 좀 다르긴 합니다만..

여튼 자세한 내용은 아직 저도 잘 모르기 때문에 좀 더 공부하고 따로 포스팅하기로 하고..
(참고로 여기에 보시면 Subversion 사용자를 위한 git 가이드가 있습니다.  영어주의..)
일단 이 프로그램을 받아야 합니다.
여기에 가 보시면 다운로드를 받을 수 있는데 역시 제 취향에 따라 비인스톨 버전인 포터블 버전을 다운로드 받았습니다.
적당한 위치에 풀고 bin 폴더를 경로에 추가해 줍니다.

4-2. Redmine 측 설치
이 플러그인은 통신을 위해 redmine 서버에 설치하는 모듈과 eclipse client에 설치하는 모듈이 나뉘어 있습니다.
git은 redmine 서버모듈 설치를 위한 부분이었으므로 서버쪽 설치를 진행합니다.
redmine이 설치된 위치에서 다음과 같이 실행합니다.
 ruby script/plugin install git://redmin-mylyncon.git.sourceforge.net/gitroot/redmin-mylyncon/redmine-mylyn-connector

만일 재설치를 하려면 install 뒤에 --force를 추가하시면 됩니다.

4-3. Eclipse 측 설치
Eclipse에서는 Help->Install New Software 메뉴를 이용해서 설치합니다.
아래 그림과 같이 http://redmin-mylyncon.sourceforge.net/update-site/N/를 추가하여 인스톨을 진행합니다.

중간에 unsigned conent라면서 경고가 뜹니다만 OK 해서 설치하시기 바랍니다.
(나중에 signing을 해줬으면 하는군요..)


다운로드 및 설치가 끝난 뒤 재시작을 한 다음 Mylyn에서 repository 추가(Add Task Repository)를 해 보면 다음과 같이 redmine이 추가되어 있습니다.

다음 페이지에서 필요한 정보를 입력하고 Validate Settings를 클릭하면 정상적으로 입력했을 경우 Finish가 활성화됩니다.

그런데.. 한 가지 문제가 있습니다.
최신버전을 따라갈 때의 문제인데.. SourceForge의 redmine-mylyn connector 프로젝트의 bugs에 올라온 내용입니다.
원래 해당 plugin은 redmine 1.2.0을 지원하는 버전이어서 1.3.0에서는 undefined method visible_by라는 오류가 발생합니다.
여기에 해당 오류에 대한 설명과 패치를 위한 패치파일이 올라와 있습니다.
controller의 세 파일을 약간씩 수정하면 되는데 patch 파일은 diff 형식으로 되어 있어서 이런 작업을 해 보신 적이 없으신 분들은 부담갈 수가 있을 듯 하여 수정된 파일을 여기에 첨부하니 redmine 홈 위치에서 압축을 바로 풀고 엎어치신 뒤 redmine을 재시작하면 해결이 됩니다.


오픈소스의 고질적인 문제점입니다.
그래서 오픈소스가 상당히 많이 쓰이는 java 쪽에서는 maven 이라는 해결책(?)이 나오기도 했습니다만..
현재 connector 2.7.5 버전에서 발생하는 문제이므로 만일 나중 버전을 쓰신다면 아마 적용되어서 나올 겁니다.



직접 테스트 해 보면서 만드느라 하루종일 걸렸군요..
일단 직접 해 보면서 한 거라 잘 될거라 생각됩니다.
Trac 보다는 그래도 좀 쉽긴 하지만 TOW 같이 ROW 같은거라도 하나 만들어아 할 것 같네요..
:
Posted by hanavy