hexdump -s 167927609 -n 8 -Cv M01127OB04PPV00M3208.mpg

1. MinGW 설치

 

   Download -- http://www.mingw.org/

   (Downloads 섹션내의  downloads 부분을 보면 "sourceforge file Release" 부분을 클릭하면 됩니다)

 

  다운로드가 완료되면 136KB 정도의 작은 실행화일이 있습니다.(인스톨러 화일로 설치시 다운로드되면서 설치됩니다.)

  더블클릭하면 설치가 진행됩니다.

 

  MinGW 설치과정

1.NEXT 를 눌러 진행합니다.

 

2.다운로드와 설치를 같이 진행함으로 표시합니다. NEXT

 

3.MinGW 버전을 고르는 곳입니다 Current 를 선택하고 NEXT

 

4. 설치할 컴파일러를 설정하는 곳입니다.

  - 기본적으로 위의 체크를 하시면 됩니다. 그리고 화면에는 잘려있지만,

     (중요!!) MinGW Make는 설치 하지 않습니다.(JAVA 는 필요하시면 설치를..)

 

 

5. MinGW 설치할 폴더를 선택 해주면 됩니다.

   그리고 이 폴더를 잘 기억해 두세요.^^

 

이제 다운로드를 받으면서 설치를 합니다.

 

2. MinGW Debugger 설치

 - 1번 설치 과정에서는 디버거 설치가 되어 있지 않습니다.

    다운로드 url -- http://sourceforge.net/project/showfiles.php?group_id=2435

    위 홈페이지에 접속하면 MingGW 관련 화일들을 다운로드 할 수 있습니다.

    위 홈페이지에서 아래 두가지 화일을 다운 받아야 합니다.

   

    1. 홈페이지의 File Release 부분에서 GNU Source-Level Debugger 탭에

       Latest Release Candidate:GDB 6.8-3 부분의 "gdb-6.8-mingw-3.tar.bz2" 파일을 다운로드 합니다.

 

    2. 좀더 아래쪽에 보면 MSYS 관련 부분이 있습니다. MSYS Base System 부분 아래쪽에

       Current Release:msys-1.0.10 탭이 있습니다. (이 부분이 "+"로 접혀 있으면 "+" 를 클릭하세요)

       MSYS-1.0.10.exe 를 다운 받으세요

    3. 기본적인 MinGW 환경을 위한 설치 화일은 모두 받은것입니다...

 

 위에서 받은 gdb-6.8-mingw-3.tar.bz2 파일을 (알집으로 풀면됩니다) 압축 해제 합니다.

 그럼 또하나의 압축 화일이 나오는데 다시 압축해제 하세요..

 보시면 몇가지 폴더가 나오는데 MinGW 설치 된 폴더 와 비슷한 구조입니다. 

 압축해제된 파일을 MingGW 가 설치된 해당 폴더에 복사해 넣어 주세요(덮어 쓰기 하세요 ^^)

 이제 디버거 까지 모양새를 갖췄습니다.

 

 

3. MSYS 설치 (Minimal System)

 - 디버거 설치시 받았던 MSYS-1.0.10.exe 화일을 더블 클릭합니다.

1.설치할 폴더를 정해줍니다.

 

2. 이 화면은 Windows 시작 버튼 의 응용프로그램 폴더에 저장 하려고 하는겁니다.

 MinGW 와 같이 두는게 좋겠죠?

 

3. 설치끝부분에 CMD 창이 실행 되면서 위와 같은 그림이 나옵니다.

질문을 하는데 첫번째 질문이 post install 을 하겠느냐는 것이죠? 당연히 y 를 눌러 줍니다.

두번째 질문은 MinGW 가 설치 되었느냐는 것인데 이것도 y 를 눌러 줍니다.

마지막 질문은 MinGW가 설치된 폴더를 물어 봅니다. 화면에 보는데로 MingGW 가 설치된 폴더를 직접 작성해줍니다.

전 c:/MinGW 이므로 화면 처럼 입력 했습니다(주의!!) 폴더 구분 표시자가 "\" 가 아닌 "/" 입니다.

 

이것으로 MSYS까지 설정을 마쳤습니다.

 

4. MinGW 와 MSYS 를  환경변수 PATH 에 경로 저장하기

- 이 과정은 MinGW 와 MSYS 각각의 실행화일 들이 저장 되어 있는 각각의 bin 폴더를 억세스 할 수 있도록

  윈도우즈 PATH 환경변수에 경로를 기억 시키는 작업입니다.

 

 1. 바탕화면의 내 컴퓨터를 마우스 우측 버튼을 클릭해서 속성을 선택합니다.

 2. 속성창이 나오면 고급 탭을 누릅니다.

3.환경변수를 클릭해서 들어갑니다.

 

 

4. 환경변수 창입니다 . 시스템변수를 잘 보면 변수 부분에 PATH 를 찾아서 선택한다음 편집을 누릅니다.

 

 

값 부분에 위 그림과 같이 MinGW\bin 폴더와 msys\bin 폴더를 추가로 입력해 주었습니다.

패스 입력시 각각의 폴더 는 ";"로 구분합니다.

즉 저같은 경우는 "C:\MinGW\bin;C:\msys\1.0\bin;" 이렇게 입력했습니다.

아 만약 패스 입력하기전 PATH 의 값부분의 끝값에 ";" 이 없을수도 있습니다. 만약 없다면  

";C:\MinGW\bin;C:\msys\1.0\bin;" 이렇게 입력해 주셔야 합니다.  

입력이 끝났으면 확인을 세번 눌러서 창을 닫아 주세요 ^^ 여기까지 MinGW 설치가 완전히 끝났습니다.

공짜라 시키는 일도 많군요 ^^ 이제 설치가 제대로 되었는지 확인해 보죠 ^^

 

5. MinGW 테스트

   

 - 윈도우즈 시작 -> 실행을 선택해서 다이얼로그가 나오면 cmd 라고 입력하고 엔터를 누르면

위와 같은 도스창이 나옵니다. 

여기서 

>make 입력후 엔터

>gcc --version 입력후 엔터

결과가 위 화면과 같다면 설치가 완료 된것입니다.

혹 내부 명령어가 아닙니다와 같은 메세지가 나온다면, 패스 지정이 잘못 된것이니 4번 과정을 차근히 보시면서

다시 설정해 주세요 ^^

이제 구슬이 서말이라도 꿰어야 보배 라고 이렇듯 준비된 베이스를 멋지게 이용할수 있는 무료 IDE 프로그램인

Eclipse c/C++ 버전을 설치 하도록 하겠습니다.

  

6. Eclipse 설치

 

  <중요!!> - Eclipse 는 java 기반 어플리케이션으로 jre, jdk 등을 필요로 합니다

   java 로 개발 하지 않으신다면, jre(java runtime) 만 설치 하시면 됩니다.

   jre 설치 주소 -- http://www.java.com/en/download/windows_automatic.jsp

   이동한 다음 파란 단추 누르면 설치 화면 나옵니다.

 

  jre 또는 jdk 가 이미 설치 되어 있거나 설치 완료 했다면, eclipse 를 다운로드 받으로 갑니다.

 

 eclipse 다운로드 링크 -- http://www.eclipse.org/downloads/

 사이트 이동하면 아래의 그림과 같을것입니다.

 

약간 색깔이 틀린부분 Eclipse IDE for C/C++ Developers -Windows 버전 우측의 Windows 를 클릭해서 다운로드 하세요.

원래 eclipse 에 CDT 를 따로이 설치 되야 하는걸 성격 좋으신분들이 다 마무리 해놓은 버전입니다.

따로 설치 화일이 아닌 압축화일이므로 압축화일을 적당한곳에 풀어서 바로 사용하면 됩니다.

 

C/C++ 에 최적화 되어 있습니다.

따로 수정 해야 될건 없습니다.

단지 Windows 관련 프로그래밍을 할때는 아래의 사항을 준수해야 합니다.

프로젝트를 생성하고 난후 (ex)First_prj 란 프로젝트를 만들었을때

project 메뉴의  Properties 를 클릭해서 아래의 사항을 추가해 주어야 합니다.

 

 

1. Win32 어플리케이션 프로젝트를 하려고자 할때.

 

Properties 의 트리메뉴에 C/C++Build 에 settings 를 선택하면 우측에 아래의 그림이 나옵니다.

 

 

여기서 MinGW C++ Linker 를 선택해서 아래 그림과 같이 Miscellaneous 를 선택해서 우측 Linker flags 란에

-mwindows 를 추가해줍니다.

추가된 사진

완료 했다면 Apply 후 OK 를 눌러 주세요 ..

이상과 같이 설치 완료 했다면 윈도우즈 기반 프로그램 실행을 위한 개발툴 설정 까지 마쳤습니다.

다른 분들의 글들에는 Mingw32-make.exe 화일을 make.exe 로 복사해서 사용하라고 해 놓았습니다.

저도 그래서 처음 이 글에 그렇게 했었는데. MSYS 를 따로 설정 했기 때문에 , 그 부분은 필요가 없어졌습니다.

 

 

3. TEST

이제 정상적으로 작동하는지 테스트를 해봐야 겠군요.

위에 링크 되어  있는 화일 test.cpp 화일을 적당한 곳에 카피해 둡니다.

 

eclipse 를 실행시켜

File -> New -> C++project 를 선택해서 프로젝트를 하나 만듭니다. (폴더는 알아서 ..)

테스트 하려고 하는 test.cpp 화일의 코드는 그냥 윈도우 하나만 만들어 내는 프로그램입니다.

그러니 win32 환경으로 컴파일이 되야 하므로 위 설정중 6-1 과정을 선택해줍니다.

준비가 되었으면 cpp 화일을 하나 만들어야 겠습니다.

Project Explorer 에서 방금 만들어진 프로젝트에 우클릭해서 New->Csource file 을 만듭니다.

이때 확장자 .cpp 까지 넣어주세요 ex)main.cpp

test.cpp 화일을 열어 내용을 복사후 위에서 방금 생성한 cpp 화일에 붙어 넣기 합니다.

File->Save all 을 선택합니다.

 

 

이제 컴파일만 남았군요.

project 메뉴의 Build all 을 클릭해서 컴파일을 합니다. 에러가 없으면 통과

그리고 Run 메뉴의 run 을 선택해서 프로그램을 실행합니다.

 

아무내용도 없는 창이 하나 만들어 졌나요?

축하합니다. 설치가 완료 되었습니다.

 

ps: win32 어플리케이션을 만들려면 위 6-1 과정을 꼭 해줘야 합니다. 아니면 군데 군데

"undefined refrence" 와 같은 에러를 토해냅니다 .. 저도 이과정에서 삽질을 좀 했었습니다 ^^.

또 수정 했는데도 위와 같은 에러가 계속되면 File-> save all 또는 이클립스를 종료후 다시 시작하면 됩니다.

제일 좋은 방법은 프로젝트 생성시 프로젝트 명을 눌러 next 를 클릭하면

"select configuration" 창이 나오는데 여기서 "Advanced settings.." 를 클릭해서

6-1과정으로 바꿔 주시면 됩니다. 아울러 Save all 도 해주셔야 합니다.


나만의 환경 설정을 하도록 하자. [ 이클립스 창 -> 환경설정 ]

1. 글꼴 및 색상

  - 글꼴은 은바탕+진함으로 설정하고, 색상은 이클립스에서 제공하는 기본 색상을 사용한다.

사용자 삽입 이미지
사용자 삽입 이미지


2. Code Style

  - Code Style은 BSD/Allman [built-in]으로 설정한다.

사용자 삽입 이미지

  - 주석에 대한 매크로 비슷한걸 설정할 수도 있다. 문서화를 위해서 doxygen 방식의 주석을 적용해보자

사용자 삽입 이미지


3. Editor

  - 이클립스가 자바 기반이다 보니 기본 Code Style이 자바 형식에 비슷하다.

    아무래도 나는 함수의 body({})가 다음 Line에 존재하는게 익숙하기 때문에 모든 기본 함수들의

    body를 수정했다.

사용자 삽입 이미지


4. 줄번호 삽입

  - 코딩라인을 표시하기 위한 줄번호 옵션을 체크한다.

사용자 삽입 이미지


5. 접기

   - 긴 함수 등의 구문을 접을 수 있다.

사용자 삽입 이미지
사용자 삽입 이미지
  - 위 그림과 같이 함수의 머리를 클릭하면 해당 함수 블럭의 색이 변한다(줄번호 부분).

    이때, 줄 번호 부분의 색이 변한 곳에서 마우스 오른쪽 버튼을 클릭하면, Folding이라는 메뉴가 뜬다.

    여기서, Folding을 사용하면 된다. 밑에 그림 처럼....

사용자 삽입 이미지


6. 단축키

  - 모두 빌드 : ctrl + b

  - 줄 정렬 : ctrl + shift + f

  - 해당 블럭 주석 : ctrl + /

  - 디버그 관련

      - break point : ctrl + shift + b

      - 디버깅 시작 : F11

      - 다음 코드로 넘어가기 : F5

      - 함수 블럭 내로 들어가기 : F6

      - 함수 블럭 내에서 빠져나오기 : F7

      - break point가 존재하는 곳으로 들어가기 : F8

      - 현재 라인까지 실행 : ctrl + r

  - 열려진창 모두 저장 : ctrl + shift + s 

  - 찾기 : ctrl + f

  - Editor로 이동하기(포커스가 다른 곳으로 이동했을때) : F12

  - 한줄 삭제 : ctrl + d

  - 줄 번호 찾기 : ctrl + l

  - 편집창 이동(탭 이동) : ctrl + (shift) + F6

  - 마지막 위치로 커서 이동하기 : ctrl + q

  - 컴파일 오류 발생시 다음 오류 지점으로 바로 가기 : ctrl + .

  - 컴파이 오류 발생시 이전 오류 지점으로 바로 가기 : ctrl + ,

  - 해당 함수나 변수의 정의 선언으로 가기 : F3

  - 해당 함수나 변수를 참조하거나 사용하는 부분을 검색 : ctrl + shift + g

    


이클립스를 사용한지 얼마 안되어서 아직 모든 환경을 다 알지는 못한다.

사용하면서 필요한 것들을 하나씩 더 추가하도록 하자.





사용자 삽입 이미지

시작하기 전에...

Windows 환경에서 Visual C++에 익숙해져 있던 나에게 새로운 도전이 시작되었다.
다름아닌 Linux 환경에서의 Programing이다.
상당히 힘든 도전으로 여겨졌지만, Eclipse CDT라는 IDE를 발견하고서 자신감이 생긴다.
Eclipse CDT! 아무래도 이녀석과 친해질듯 싶다.

Eclipse CDT에서 간편하게 static library를 만들수가 있다.
또한 만들어진 library를 가지고, 링크하여 사용하기도 굉장히 수월하다.


1. static library 만들기

less..

사용자 삽입 이미지
 - 새로운 프로젝트를 생성한다.
   우리는 static library를 만들 것이기 때문에 static library를 선택하고 라이브러리의 이름을 써준다.


사용자 삽입 이미지
- 라이브러리에 사용할 클래스를 생성하도록 하자.


사용자 삽입 이미지
- 클래스 이름을 적어주고 완료 버튼을 눌러서 생성한다.


사용자 삽입 이미지
- 클래스가 완성되었으므로, 이제 코딩을 해야겠지?
 

사용자 삽입 이미지
- 당연히 CPP 해당 함수를 정의해야겠지?
  Hello World!!라는 글자가 찍히는 함수를 하나 만들었다.


사용자 삽입 이미지
- 저장후 빌드하고 컴파일 한다.


사용자 삽입 이미지
- 소스코드가 컴파일 되고, 오브젝트 파일과 라이브러리 파일이 만들어졌다.
   Unix계열에서는 라이브러리의 이름은 lib로 시작하고 확장자는 .a임을 잊지 말자!

less..



2. static library 사용하기

less..

사용자 삽입 이미지
 - 이제 방금 만든 static library를 테스트 하기 위해서 C++ 프로젝트를 만든다.


사용자 삽입 이미지
- 빈 프로젝트로 만들었으니 실행할 소스 파일을 만들어야겠지?


사용자 삽입 이미지
- main.cpp를 만들고 완료를 누른다.


사용자 삽입 이미지
- 이제 틀은 다 갖춰진것 같군.


사용자 삽입 이미지
- 아까전에 만들었던 static library를 사용하기 쉽도록 지금 만든 빈 프로젝트에 복사한다.
  좀 더 사용하기 쉽게 하려고 'inc'폴더와 'lib'폴더를 만들었다.


사용자 삽입 이미지
- 라이브러리 헤더 파일을 복사한다.


사용자 삽입 이미지
- 라이브러리 파일을 복사한다.


사용자 삽입 이미지
- 이제 프로젝트 -> 속성 -> C/C++ General -> Paths and Symbols에서 include 탭에 복사해 두었던 헤더파일을 포함하도록 한다. Add 버튼을 클릭한다.


사용자 삽입 이미지
- File system 버튼을 눌러서 해동 폴더를 찾는다.


사용자 삽입 이미지
- 포함할 폴더를 선택하고 확인을 누른다.


사용자 삽입 이미지
- 원하는 폴더를 포함하였다.


사용자 삽입 이미지
- 포함 파일의 폴더가 정확히 등록되었는지 확인하시고~


사용자 삽입 이미지
- 다음은 라이브러리 파일이 존재하는 폴더의 경로를 등록해보자.


사용자 삽입 이미지
- 아까처럼 File system을 누르고 폴더를 찾는다.


사용자 삽입 이미지
- 확인을 클릭~


사용자 삽입 이미지
- 등록한 라이브러리 경로가 맞는지 확인하시고~


사용자 삽입 이미지
- 자! 다음은 C/C++ Build -> Settings -> Tool Settings에서 Linker에 라이브러리를 등록하자.
  Linker 탭에 Libraries를 선택하면 그림과 같은 화면이 출력된다.
  여기서 오른쪽 중단에 Libraries (-l) 항목에 녹색의 추가 아이콘을 클릭한다.
  라이브러리를 링크하는 방법이 두가지가 있다.
  첫째, 옵션 -l의 사용이다. 이는 해당 라이브러리가 표준 장소(/usr/lib)에 존재할 때 해당
  라이브러리 이름을 등록하면 된다.
  둘째, 옵션 -L의 사용이다. 이는 해당 라이브러리가 표준 장소(/usr/lib)에 존재하지 않을 때
  사용하며 사용하고자 하는 라이브러리의 전체 경로를 넣어주어야 한다.


사용자 삽입 이미지
- 이제 라이브러리의 이름을 등록할 차례이다.
  아까도 언급했다시피 Unix 계열에서는 라이브러리의 이름은 lib로 시작하고 확장자는 .a다.
  여기서 lib와 .a를 뺀 나머지가 바로 라이브러리의 이름이다.


사용자 삽입 이미지
- 최종적으로 라이브러리까지 등록했다면 적용을 누르고 확인을 누르자!


사용자 삽입 이미지
- 이제 아까 만들어 두었던 main.cpp에다가 실제 main함수를 만들고, 우리가 만들었던 my 라이브러리를 테스트 해볼 시간이다.
헤더 파일을 인클루드하고 클래스 객체를 선언한 후 Hello World 함수를 호출하고 컴파일 해보자.
그림처럼 무난히 컴파일이 될 것이다.


사용자 삽입 이미지
- 최정적으로 실행하면... 콘솔창에 Hello World!!!가 출력되었다.
  여기까지가 static library를 사용하는 방법이었다.

less..



마치며...
 리눅스 프로그래밍을 시작하는 사람이라면 Eclipse CDT를 적극 추천해주고 싶다.
 원래는 자바용 IDE로 출발하였지만, c++도 문제 없다.

 좀 더 분발해서 적극 활용할 수 있도록 하자!


tasksel


dselect


aptitude


apt-get

1) 기존 설치된 Plug-In을 모두 삭제한다. (help -> about eclipse platform -> install details)

2) su로 admin 계정 으로 변환한다.

3) /usr/bin/./eclipse로 실행한다

4) 재 설치 후 확인한다.

  • Ubuntu Precise Pangolin 12.04에서 Test 완료. (2012-05-21)
    (Redmine 1.3.3, Redmine Mylyn Connector Plugin 2.7.6, Eclipse 3.7.2(Indigo), Mylyn 3.6.5, Mylyn Connector-Redmine 0.3.7)
  • Ubuntu Oneiric Ocelot 11.10에서 Test 완료. (2012-03-21)
    (Redmine 1.3.0 & 1.3.2 & 1.3.3, Redmine Mylyn Connector Plugin 2.7.6, Eclipse 3.7.2(Indigo), Mylyn 3.6.5, Mylyn Connector-Redmine 0.3.7)

이번 Post에서는 Ubuntu에서 Redmine Server 구성하기에 이어서 Redmine과 Eclipse의 Mylyn을 연동하여 Task를 관리하는 방법을 알아보도록 하겠습니다.

1. Mylyn?

Mylyn은 Eclipse에서 Task를 관리하기 위한 Plugin입니다. 여기서 말하는 Task(또는 Issue)는 Bug나 New Feature에 대한 요청과 같은 Project 작업의 단위를 말합니다.

Mylyn을 사용하면 개발자가 원하는 Task만을 검색하여 확인하거나 상태를 변경할 수 있으며, 새로운 Task를 작성하거나 삭제하는 등의 Task 관리가 Eclipse 상에서 가능하게 됩니다.

Mylyn를 이용한 Task 관리는 Task(또는 Issue) 관리 System과의 연동을 통해 이루어집니다. Task 관리 System과 연동을 위해서 Connector를 설치해야 하는데, 기본적으로 Mylyn은 Bugzilla, Trac과 같은 잘 알려진 Task 관리 System을 지원합니다.

Mylyn의 더 자세한 내용을 알기 원한다면 devloperWorks의 다음 글들을 참고하기 바랍니다.

2. 설치

Redmine과 Mylyn을 연동하여 사용하기 위해서는 Redmine이 설치된 Server와 Mylyn을 사용하는 Eclipse에 각각 필요한 Plugin을 설치해야 합니다.

이번 항목에서는 설치방법을 설명합니다.

2.1. Redmine Plugin 설치

Redmine Server에서는 먼저 Mylyn과 연동을 위한 Plugin을 설치해야 합니다. Terminal에서 다음과 같이 입력합니다.

1
2
3
4
$ sudo apt-get install git ruby-git
$ cd /usr/share/redmine
$ sudo ruby script/plugin install --force git://redmin-mylyncon.git.sourceforge.net/gitroot/redmin-mylyncon/redmine-mylyn-connector
$ sudo service apache2 restart
Redmine - Plugins

Redmine - Plugins

Redmine에 admin 계정으로 접속한 다음, 관리 -> 플러그인을 Click하면 위와 같이 Mylyn Connector plugin이 설치된 것을 확인할 수 있습니다.

Redmine - Settings

Redmine - Settings

Mylyn과 연동을 위해 REST Interface를 사용하기 때문에 관리 -> 설정 -> 인증에서 REST 웹서비스 활성화에 Check하고 저장을 누르면 Server 설정이 끝나게 됩니다.

2.2. Eclipse Plugin 설치

Eclipse에서는 당연히 Mylyn Plugin이 설치되어 있어야 합니다. Eclipse의 All-in-one Pack(C/C++ Developers, Java Developers etc.)을 사용한다면 Mylyn이 Default로 포함되어 있습니다.

만약 Mylyn이 설치되어 있지 않다면 다음과 같은 방법으로 설치할 수 있습니다.

2.2.1. Mylyn 설치
Eclipse - Install New Software

Eclipse - Install New Software

Eclipse에서 Help -> Install New Software를 Click합니다.

Eclipse - Available Software (Mylyn)

Eclipse - Available Software (Mylyn)

Work With에 Indigo(Eclipse의 Version에 따라 다를 수 있음)를 선택한 다음, 검색창에 mylyn을 입력하면 Mylyn과 연관된 Plugin들이 표시될 것입니다. (List를 가져오는데 시간이 좀 걸릴 수 있습니다.) 이중에서 다음과 같은 Plugin을 Check한 다음, Next를 눌러 설치하면 됩니다.

  • Mylyn Context Connector: Eclipse IDE
  • Mylyn Context Connector: Java Development, C/C++ Development (Optional)
  • Mylyn Context Connector: Team Support
  • Mylyn Task List
  • Mylyn Task-Forced Interface
2.2.2. Redmine-Mylyn Connector 설치

Mylyn Plugin을 설치했다면 이제 Redmine과 Mylyn을 연동하기 위한 Connector를 설치해야 합니다. 설치하는 방법은 다음과 같습니다.

Eclipse - Preferences

Eclipse - Preferences

먼저 Software Site를 추가하기 위해서 Window -> Preferences를 Click합니다.

Eclipse - Available Software Sites

Eclipse - Available Software Sites

Install/Update -> Available Software Sites에서 Add Button을 누릅니다.

Eclipse - Add Site

Eclipse - Add Site

Add Dialog에서 다음과 같이 입력하고 OK를 누릅니다.

  • Name: Redmine-Mylyn Connector
  • Location: http://redmin-mylyncon.sourceforge.net/update-site/N/
Eclipse - Available Software (Mylyn Redmine Connector)

Eclipse - Available Software (Mylyn Redmine Connector)

그 다음 Help -> Install New Software를 Click한 후, Work with에 Redmine-Mylyn Connector를 선택합니다. 그리고 List에 표시되는 Mylyn Integration을 Check하고 Next를 눌러 설치하면 Eclipse 설정이 완료됩니다.

Eclipse - Security Warning

Eclipse - Security Warning

만약 설치 도중에 위와 같은 Security Warning이 표시된다면, OK를 눌러 계속 진행하면 됩니다.

3. Redmine과 Mylyn 연동

이제 Server와 Eclipse 모두 준비가 되었으니 연동을 해 봅시다. 아래의 항목들을 순서대로 진행하면 됩니다.

3.1. Task Repository 추가하기

Redmine과 Mylyn을 연동하기 위해서는 먼저 Task Repositories View에 Redmine Server를 추가해야 합니다.

Eclipse - Show View

Eclipse - Show View

Eclipse에서 Window -> Show View -> Other를 Click합니다.

Eclipse - Show View (Other)

Eclipse - Show View (Other)

Mylyn의 Task Repositories를 Click하고 OK를 누릅니다.

Eclipse - Task Repositories

Eclipse - Task Repositories

Task Repositories View가 표시되면 오른쪽의 Add Task Repository Button을 Click합니다.

Eclipse - Add Task Repository

Eclipse - Add Task Repository

Dialog에서 Redmine을 선택한 다음 Next를 누릅니다.

Eclipse - Redmine Repository Settings

Eclipse - Redmine Repository Settings

Redmine Repository Settings Dialog가 표시되면 다음과 같은 항목을 입력합니다.

  • Server: Redmine Server에 접근하기 위한 URL을 입력합니다. URL 앞에 Protocol(http)까지 제대로 입력해야 합니다.
  • Label: Task Repositories View에 표시될 이름을 입력합니다.
  • API-Key: Redmine ID와 Password입력을 사용하여 인증하는 것 대신 API Key를 통해서 인증하는 것이 더 안전합니다. 오른쪽의 Enable을 Check한 다음, API Key를 입력합니다. API-Key를 얻는 방법은 바로 다음에 설명합니다.
  • Task Editor Settings: Textile을 Check하면 Redmine의 Wiki 문법을 Comment나 Description에 사용할 수 있습니다.

입력 후에는 아래의 Vailidate Settings를 Click하여 설정을 Check합니다. 제대로 인증되었다면 Finish를 누르면 됩니다.

Redmine

Redmine

인증을 위한 API-Key를 얻으려면 먼저 Mylyn으로 접근하기 위한 계정으로 Redmine에 Login한 다음, 오른쪽 위의 내 계정을 Click합니다.

Redmine - My Account

Redmine - My Account

오른쪽의 API 접근키의 보기를 누른다음, 표시된 Key를 복사하여 Redmine Repository Settings Dialog의 API-Key에 입력하면 됩니다.

Eclipse - Add New Query

Eclipse - Add New Query

Redmine Repository가 추가되면 위와 같이 Query를 추가할 지 물어보는데, 다음 항목에서 설명할 것이므로 여기서는 No를 누릅니다.

Eclipse - Update Repository Configuration

Eclipse - Update Repository Configuration

추가가 완료되면 Redmine의 정보를 Load하기 위해서 Redmine Repository에서 Mouse 오른쪽 Popup을 띄운 후, Update Repository Configuration을 Click합니다.

만약 Redmine의 설정이 변경되었거나 Redmine-Mylyn Connector가 Update되었다면, Update Repository Configuration과 Synchronize All Tasks를 Click하여 설정이 변경된 내용을 적용하고 동기화 시켜야 합니다.

3.2. Query 추가하기

Task Repository가 추가되면 이제 Eclipse에서 Redmine의 Task를 관리할 준비가 된 것입니다. 이제 Query를 추가하여 개발자가 원하는 Task만을 검색하여 관리해 봅시다.

Redmine - Issues

Redmine - Issues

Redmine의 Hello Project에 위와 같은 Task가 있는 경우를 예로 들어 보겠습니다.

Eclipse - Show View

Eclipse - Show View

Task를 확인하기 위한 Task List View를 표시하기 위해서, 먼저 Eclipse에서 Window -> Show View -> Other를 Click합니다.

Eclipse - Show View (Other)

Eclipse - Show View (Other)

Mylyn -> Task List를 Click하고 OK를 누릅니다.

Eclipse - Task List

Eclipse - Task List

Task List View가 표시되면 Query를 추가하기 위해서 Task List View의 New Task Button 옆 역삼각형을 Click한 다음, New Query를 Click합니다.

Eclipse - New Query

Eclipse - New Query

Select a repository에서 Redmine을 선택한 다음 Next를 누릅니다.

Eclipse - Select a predefined query

Eclipse - Select a predefined query

Combobox에서 Create a new query를 선택한 다음 Next를 누릅니다.

Eclipse - Create a new query

Eclipse - Create a new query

새로 생성할 Query를 설정하는 화면에서 원하는 Task를 검색하기 위한 Query를 만들 수 있습니다.

Query Title에는 Task List View에 표시될 Query의 이름을 입력하면 됩니다. 그 외에 나머지는 Redmine의 Task를 생성할 때 입력하는 항목과 동일하니 따로 설명하지는 않겠습니다. 위의 그림은 Hello Project의 신규로 설정된, 그리고 자신에게 배속된 Task를 검색하는 Query를 설정한 것입니다.

만약 Redmine의 내용이 Query 설정에 제대로 표시되지 않는다면 아래의 Update Attributes from Repository를 눌러 Redmine의 설정을 가져오면 됩니다.

Eclipse - Created Query

Eclipse - Created Query

Query 생성 Dialog에서 Finish를 눌러 생성이 완료되었다면 위의 그림과 같이 Query로 검색된 Task의 List가 Task List View에 표시됩니다. 그리고 Task를 Double-Click하면 Task의 내용을 확인하거나 변경할 수 있습니다.

3.3. Task 추가하기

Eclipse - New Task

Eclipse - New Task

Eclipse에서 Task를 Redmine에 새로 추가하기 위해서는 Task List View의 Add Task를 Click합니다.

Eclipse - Select a repository

Eclipse - Select a repository

Task Repository 중 Redmine을 선택한 다음 Finish를 누릅니다.

Eclipse - Task

Eclipse - Task

새로운 Task 편집 Tab에서 Task의 각 항목을 입력하고 Submit Button을 누르면 Redmine에 Task가 추가됩니다.

3.3.1. Task 추가시 Error가 발생할 경우
Eclipse - Problem Occurred

Eclipse - Problem Occurred

Task를 작성한 다음 Submit을 눌렀을 때, 위와 같이 자세한 내용이 없는 Server Error가 발생할 수 있습니다.

Redmine Server에서 Redmine의 Log File인 /var/log/redmine/defaults/production.log를 확인하면 다음과 같은 Error가 발생한 것을 확인할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
 NoMethodError (private method `gsub' called for :autologin:Symbol):
   /usr/lib/ruby/vendor_ruby/rack/backports/uri/common.rb:24:in `encode_www_form_component'
   /usr/lib/ruby/vendor_ruby/rack/utils.rb:23:in `escape'
   /usr/lib/ruby/vendor_ruby/rack/utils.rb:201:in `set_cookie_header!'
   /usr/lib/ruby/vendor_ruby/rack/utils.rb:238:in `delete_cookie_header!'
   /usr/lib/ruby/vendor_ruby/rack/response.rb:63:in `delete_cookie'
   /usr/lib/ruby/vendor_ruby/action_controller/cookies.rb:94:in `delete'
   app/controllers/application_controller.rb:32:in `handle_unverified_request'
   /usr/lib/ruby/vendor_ruby/action_controller/request_forgery_protection.rb:79:in `verify_authenticity_token'
   /usr/lib/ruby/vendor_ruby/active_support/callbacks.rb:178:in `send'
   /usr/lib/ruby/vendor_ruby/active_support/callbacks.rb:178:in `evaluate_method'
   /usr/lib/ruby/vendor_ruby/active_support/callbacks.rb:166:in `call'
   /usr/lib/ruby/vendor_ruby/action_controller/filters.rb:225:in `call'

이에 대한 해결책이 Redmine의 Issue에 서 논의되었는데 이것은 Rack 1.3.1에서 발생하는 문제로 보입니다. Redmine 1.3.0의 Code를 확인해 보니 Issue에서 언급된 내용은 Fix되어 있지만, 다른 Code에서 동일한 문제를 발생시키는 것을 확인할 수 있었습니다.

이 문제를 해결하려면 Rack 1.4.0을 설치해야 합니다. 하지만 PPA로 Redmine을 설치한 경우에는 Rack 1.3.1이 System에 Package로 설치되기 때문에, Issue를 참고하여 문제를 해결하기 위한 Patch를 만들어 봤습니다.

Redmine Server에서 아래의 Patch를 Download한 후, 다음과 같이 입력하여 Patch를 적용합니다.

이 Patch는 Redmine 1.3.0에서 Test되었습니다. 이 외의 Version에 적용할 경우 문제가 발생할 수 있습니다.

최근 PPA를 통해서 배포된 Redmine 1.3.2를 설치하면 Rack 1.4.1이 같이 설치됩니다. 때문에 위와 같은 문제가 발생하지 않습니다. (2012-04-04)

1
2
3
4
$ sudo mv cookie_symbol_to_s-1.3.0.txt /usr/share/redmine/cookie_symbol_to_s.patch
$ cd /usr/share/redmine
$ sudo patch -p0 < cookie_symbol_to_s.patch
$ sudo service apache2 restart

Patch를 적용한 다음, 다시 Eclipse에서 Task를 Submit하면 Task가 제대로 Redmine에 적용된 것을 확인할 수 있습니다.

  • Ubuntu 12.04 Precise Pangolin에서 Test 완료 (2012-05-21)
  • Ubuntu 11.10 Oneiric Ocelot에서 Test 완료 (2011-12-05)

Subversion은 CVS를 대체하기 위해 만들어진 형상관리 Tool(Version Control System)로 지금은 Apache Foundation에서 Project를 관리하고 있습니다.

간단하게 말하면, Subversion은 다수의 Programmer가 하나의 Project를 개발할 때 서로가 개발하는 부분에 대한 충돌이 없도록 Source를 관리하고 공유할 수 있게 도와주는 Software입니다.

물론 개인이 혼자 개발한다 하더라도, 현재 Source를 이전 Version으로 변경하고 싶을 때나 Backup을 위해서도 유용하게 사용됩니다.

이번 Post에서는 Ubuntu Natty Narwhal 11.04에서 Subversion Server를 구성하는 방법과 간단한 사용방법을 알아보도록 하겠습니다.

1. Subversion 설치

Ubuntu에서 Subversion을 설치하는 방법은 간단합니다. 아래와 같이 Terminal에서 입력합니다.

1
$ sudo apt-get install subversion

Subversion Server를 구성하기 위해서는 Subversion을 사용할 계정을 위한 Group을 생성하고, Group의 Default 계정을 설정해야 합니다. 다음과 같이 Terminal에서 입력합니다.

1
2
$ sudo groupadd subversion
$ sudo usermod -a -G subversion www-data

www-data는 기본적으로 System에 생성되어 있는 Login을 할 수 없는 User로 원래 Apache HTTP Server와 같은 Web Service를 위해 사용되는 계정입니다. 이 계정을 Default로 사용해서 Subversion 저장소를 생성하게 됩니다.

이제 Subversion 저장소(각 Project의 저장소가 저장될 최상위 Directory)를 아래와 같이 입력하여 생성합니다.

1
2
3
$ sudo mkdir /home/svn
$ sudo chown www-data:subversion /home/svn
$ sudo chmod g+rws /home/svn

Subversion 저장소의 위치는 취향에 따라 다른 곳에 설정해도 됩니다. 보통 /srv/svn, /usr/local/svn 등을 사용하는데 /home/svn을 대부분 많이 사용하는 것 같습니다.

이제 저장소의 위치도 지정했다면 Subversion을 사용해 봅시다. Subversion 저장소에 접근하는 Protocol에 따라 설정방법이 조금씩 차이가 있는데, 여기에서는 여러 Protocol 중 Subversion 고유 Protocol인 svn://와 SSH Tunneling을 이용하는 svn+ssh://일 경우에 대해서 알아보겠습니다.

2. svn:// Protocol을 사용할 경우

svn:// Protocol은 Subversion의 고유 Protocol로 이것을 사용하면 각 Project의 저장소에 Login하기 위해서 System의 계정이 아닌 따로 설정한 ID와 Password를 사용할 수 있습니다. 저장소에 접근하기 위해서 System 계정을 만들어 주지 않아도 되기 때문에 보안상 유리할 수 있습니다.

그리고 각 Project 저장소마다 따로 ID와 Password를 설정할 수 있기 때문에 각기 다른 사용자가 Subversion Server에 접근한다면 해당 사용자에게 원하는 Project 저장소에만 접근하도록 설정할 수 있습니다.

다만 svn:// Protocol을 사용하기 위해서는 Subversion의 Service Daemon인 svnserve가 항상 실행되어 있어야만 합니다.

2.1 Init Script 생성

앞서 언급한 대로 Subversion의 Service Daemon을 실행하기 위해서 Init Script를 만들어야 합니다. Init Script를 만들게 되면 나중에 Service를 실행하기 편리하며 System 시작 시에 자동으로 실행되도록 만들 수 있습니다.

Init Script를 따로 제공하지는 않으나 다른 Ubuntu User가 만들어 놓은 Script를 활용해서 설정해 봅시다. 아래와 같이 Terminal에서 입력합니다.

1
2
3
$ sudo wget http://odyniec.net/articles/ubuntu-subversion-server/svnserve -O /etc/init.d/svnserve
$ sudo chmod 755 /etc/init.d/svnserve
$ sudo vi /etc/init.d/svnserve

Download한 Script는 Subversion 저장소가 다르게 되어 있으니 현재 설정에 맞춰 봅시다. 아래와 같이 되어 있는 것을,

1
DAEMON_ARGS="-d -r /usr/local/svn/repos"

다음과 같이 바꾼 후 저장하면 됩니다.

1
DAEMON_ARGS="-d -r /home/svn"

이제 Subversion Server를 실행해 봅시다. 아래와 같이 입력합니다.

1
$ sudo service svnserve start

작성한 Subversion Init Script를 시작 시에 자동으로 실행하려면 다음과 같이 입력합니다.

1
$ sudo update-rc.d svnserve defaults

2.2 방화벽 설정

System에 UFW 방화벽이 동작하고 있다면 방화벽 설정을 해 주어야 외부에서 Server로 접속할 수가 있습니다. 방화벽을 사용하지 않는다면 이 부분은 넘겨도 됩니다.

Gufw를 사용하여 UFW 방화벽을 설정해 봅시다. 설치되어 있지 않다면 다음과 같이 입력합니다.

1
$ sudo apt-get install gufw
Gufw in Dash

Gufw in Dash

Dash에서 시스템을 선택하고 방화벽 설정을 Click합니다.

Gufw

Gufw

Gufw가 실행되면 새로운 Rule을 추가하기 위해서 추가 Button을 누릅니다.

Gufw - Add Rule (Subversion)

Gufw - Add Rule (Subversion)

간단하게 Tab에서 Allow, In, Both를 선택하고 Subversion의 Service Port인 3690을 입력한 후, 추가를 누르면 외부에서 Server로 svn://을 사용해서 접근할 수 있게 됩니다.

2.3 Project 저장소 생성

이제 Project Source를 Import (저장소에 Source Code를 등록)하기 위해서 Project 저장소를 생성해 봅시다.

예를 들어, hello라는 Project에 대한 저장소를 만들기 원한다면 아래와 같이 Terminal에서 입력합니다.

1
2
3
$ sudo svnadmin create /home/svn/hello
$ sudo chown www-data:subversion /home/svn/hello -R
$ sudo chmod g+rws /home/svn/hello -R

위의 명령을 통해서 hello Project에 대한 저장소를 생성하고 적당한 권한을 부여했습니다. 그 다음, 저장소에 접근할 수 있는 ID와 Password를 설정하기 위해서 저장소의 설정을 변경해야 합니다. 아래와 같이 입력하여 수정합시다.

1
$ sudo vi /home/svn/hello/conf/svnserve.conf

svnserve.conf의 중간쯤에 아래와 같이 되어 있는 부분을,

1
# password-db = passwd

#을 제거하여 다음과 같이 변경하고 저장합니다.

1
password-db = passwd

마지막으로 ID와 Password를 설정할 차례입니다. 아래와 같이 입력하여 설정합시다. (ID가 foo이고 Password가 bar인 경우의 예)

1
2
3
4
$ sudo vi /home/svn/hello/conf/passwd

[users]
foo = bar

2.4 Import

Project 저장소를 생성했으니 Source Code를 Import해 봅시다.

예를 들기 위해서 hello라는 Project를 만들어 봅시다. Subversion Project 저장소에 Import하기 위한 Directory 구조인 branches, tags, trunk를 생성하고 trunk에 hello.c를 간단하게 작성합시다. 아래와 같이 입력합니다.

1
2
3
4
5
$ mkdir hello
$ cd hello
hello$ mkdir branches tags trunk
hello$ cd trunk
trunk$ vi hello.c
1
2
3
4
5
6
7
#include <stdio.h>

int main(void)
{
    printf("Hello, World!\n");
    return 0;
}

Source가 완성되었으니 Import를 해봅시다. import를 하기 위해서는 다음과 같이 입력해야 합니다.

1
$ svn import <Import할 Directory> svn://<passwd에 설정한 ID>@<Server Name 또는 Address>/<생성한 Project 저장소 이름>

hello Project를 이전에 생성한 hello Project 저장소로 Import하는 경우를 예로 들면 다음과 같습니다.

1
2
trunk$ cd ../..
$ svn import hello svn://foo@localhost/hello

위와 같이 입력하면 vi가 표시되면서 Import에 대한 Log Message를 입력할 수 있습니다. Log Message를 적고 저장한 후 vi를 종료하면 ID에 대한 암호를 묻고, 제대로 입력했다면 저장소에 Source Code가 Import 됩니다.

2.5 Checkout

제대로 Project 저장소에 Import가 되었는지 확인하기 위해서 Checkout(저장소에 존재하는 최신의 Source를 Download)을 받아봅시다.

Checkout을 위한 명령어 구문은 다음과 같습니다.

1
$ svn co svn://<passwd에 설정한 ID>@<Server Name 또는 Address>/<생성한 Project 저장소 이름>

위에서 예를 든 hello Project를 Checkout 받는 경우라면 다음과 같이 입력해야 합니다.

1
$ svn co svn://foo@localhost/hello

제대로 Checkout 받았다면 hello Directory가 생기면서 그 안에 branches, tags, trunk Directory와 trunk/hello.c가 존재할 것입니다.

3. svn+ssh:// Protocol을 사용할 경우

svn+ssh:// Protocol은 Subversion Service Daemon을 실행하지 않고도 SSH protocol을 사용하여 Tunneling을 통해 Subversion Project 저장소에 접근할 수 있습니다.

보통의 경우 SSH Server를 구성하여 System을 관리하는 경우가 많기 때문에 특별한 설정없이 간단하게 Subversion Server를 구성할 수 있습니다. 또한 SSH의 Tunneling을 사용하기 때문에 암호화되어 Data가 전송되므로 안전합니다.

다만 각 Project 저장소마다 ID와 Password를 따로 만들어 줄 수 있는 svn:// Protocol과는 달리 System에 생성된 계정으로 접근하기 때문에 계정만 있다면 모든 Project 저장소에 접근할 수 있는 단점이 존재합니다. (굳이 구분하려 한다면 Project 저장소 Directory에 권한 설정으로 가능할 것 같네요.)

3.1 OpenSSH Server 설치

svn+ssh:// Protocol을 사용하기 위해서 OpenSSH Server를 설치합시다. 설치방법은 간단합니다. 다음과 같이 Terminal에서 입력합니다.

1
$ sudo apt-get install openssh-server

설치된 SSH Server가 System 시작 시에 자동으로 실행되게 하려면 다음과 같이 입력합니다.

1
$ sudo update-rc.d ssh defaults

3.2 방화벽 설정

UFW 방화벽이 활성화 되어 있다면 SSH Server를 위해서 방화벽 설정을 해 주어야 합니다. 방화벽을 사용하지 않을 경우에는 이 부분을 건너뛰어도 좋습니다.

Gufw를 사용하여 UFW 방화벽을 설정해 봅시다. 설치되어 있지 않다면 다음과 같이 입력합니다.

1
$ sudo apt-get install gufw
Gufw in Dash

Gufw in Dash

Dash에서 시스템을 선택하고 방화벽 설정을 누릅니다.

Gufw

Gufw

Gufw를 실행되면, Unlock을 눌러 Superuser 권한을 얻은 후, 추가 Button을 누릅니다.

Gufw - Add Rule (SSH)

Gufw - Add Rule (SSH)

편리하게 Tab에서 Allow, In, Service, SSH를 선택하고 추가 Button을 누르면 외부에서도 Server의 SSH Service에 접근할 수 있게 됩니다.

3.3 Project 저장소 생성

이제 Project 저장소를 생성해 봅시다. 위에서 만든 hello Project를 위한 저장소를 만들기 위해서는 다음과 같이 입력하면 됩니다.

1
2
3
$ sudo svnadmin create /home/svn/hello
$ sudo chown www-data:subversion /home/svn/hello -R
$ sudo chmod g+rws /home/svn/hello -R

Project 저장소를 만든 다음에 접근할 수 있는 계정을 생성해야 합니다. 예를 들어 foo라는 계정을 Subversion Project 저장소에 접근할 수 있도록 하려면 다음과 같이 입력합니다.

1
2
$ sudo useradd -g subversion foo
$ sudo passwd foo

또는 기존에 System에 존재하는 계정을 Subversion Project 저장소에 접근하게 하려면 아래와 같이 입력하면 됩니다.

1
$ sudo usermod -a -G subversion <subversion을 사용할 계정>

3.4 Import

svn+ssh:// Protocol을 사용하기 위한 준비가 끝났습니다. 이제 Project Source를 Import해 봅시다. import 시에 명령 구문은 아래와 같습니다.

1
$ svn import <Import할 Directory> svn+ssh://<Server에 Login 가능한 ID>@<Server Name 또는 Address>/<Subversion 저장소 Directory>/<생성한 Project 저장소 이름>

svn:// Protocol을 사용할 때와 다른 점은 Server Name과 Project 저장소 이름 사이에 Subversion 저장소의 System 경로를 적어야 한다는 것입니다.

예를 들어 위에 설정한 것 처럼 Subversion 저장소가 /home/svn이고, 생성한 Project 저장소 이름이 hello인 경우 다음과 같이 Terminal에서 입력해야 합니다.

1
$ svn import hello svn+ssh://foo@localhost/home/svn/hello

위의 명령을 입력하면 처음으로 SSH Server에 접속할 경우 계속 접속할 것인지 여부를 묻는데 yes라고 입력한 후 접속할 계정의 비밀번호를 입력합니다. 이후 나머지 과정은 svn:// Protocol을 사용하여 Import할 때와 동일합니다.

3.5 Checkout

이번에는 Import한 Project Source를 Checkout 해 봅시다. 명령구문은 다음과 같습니다.

1
$ svn co svn+ssh://<Server에 Login 가능한 ID>@<Server Name 또는 Address>/<Subversion 저장소 Directory>/<생성한 Project 저장소 이름>

Import의 경우와 마찬가지로 여기서도 Server Name과 Project 저장소 이름 사이에 Subversion 저장소 Directory 경로가 포함되어야 합니다. 위에서 예로 Import한 hello Project를 Checkout하려면 아래와 같이 입력합니다.

1
$ svn co svn+ssh://foo@localhost/home/svn/hello

4. 마치면서…

이상으로 Ubuntu Natty Narwhal 11.04에서 Subversion Server를 구성하는 방법을 알아봤습니다. 마지막으로 Subversion에 대한 자세한 정보를 얻기 원한다면 다음 Link를 방문해 보기 바랍니다.


  • Ubuntu Precise Pangolin 12.04 Test 완료. (2012-05-22)
    (apache2-mpm-prefork 2.2.22, OpenJDK 6 1.6.0_24, OpenKM 5.1.9)
  • Ubuntu Oneiric Ocelot 11.10 Test 완료. (2012-04-24)
    (apache2-mpm-prefork 2.2.20, Oracle Java 1.6.0_26, OpenKM 5.1.9)

1. OpenKM?

OpenKM은 Electronic Document Management System(EDMS)를 구축하기 위한 Solution으로 Community Version은 Open-source License(GPLv2)로 배포되며, 그 외에 Cloud Service나 Professional Support는 유료로 이용할 수 있습니다.

여기서 말하는 EDMS는 회사나 업무에서 사용하는 종이문서 대신 전자문서(Office files, images, etc.)를 사용하도록 함으로서 비용을 절감하고, 쉽게 문서를 관리할 수 있도록 돕는 System을 의미합니다.

OpenKM은 Java로 개발되어 있으며, JBoss, Lucene, jBPM등의 Open-source Package와 이 외의 Third-party Tool을 통하여 기능이 확장됩니다.

OpenKM이 지원하는 기능은 다음과 같습니다.

  • 문서 관리
  • 문서 Version 관리 (SCM과 유사한 저장소와 Revision 개념)
  • Image 관리
  • WebDAV로 문서 저장소에 접근 가능
  • Workflow 지원 (jBPM)
  • Lucene 검색 (문서 내부 검색 지원)
  • Multi-platform, Multi-database 지원
  • Web 2.0 UI, Mobile Web UI
  • 다국어 지원
  • 유의어 사전(Thesaurus) 지원

OpenKM에 대해서 더 자세히 알기 원한다면, OpenKM의 Demo Site에 접속해서 직접 사용해 보기 바랍니다.

2. 설치

OpenKM은 WAS인 JBoss를 사용하며 그 외에 여러 Library를 포함하고 있기 때문에 WAS와 Library를 포함한 통합 Package 형태로 Source를 배포합니다.

이번 항목에서는 OpenKM을 설치하는 방법과 Apache와 연동하여 사용하는 방법을 알아봅니다.

2.1. JDK 설치

OpenKM은 Java로 구현되어 있기 때문에 JDK가 필요합니다. JDK가 System에 설치되어 있지 않다면, 이전 Post의 5.3. Oracle Java 6 설치를 참고하기 바랍니다.

2.2. OpenKM 설치

이미 언급했지만 JBoss와 여러 Library가 포함된 형태로 배포되기 때문에 OpenKM을 설치할 Server에 Tomcat과 같은 다른 WAS가 설치되어 있다면 설치에 유의해야 합니다.

가급적이면 WAS가 설치된 Server에서는 설치하지 않는 것이 좋습니다. (그래도 설치해야 할 경우 OpenKM의 Wiki Page를 참고하기 바랍니다.)

OpenKM을 Download하기 위해서 아래의 Link에 접속합니다. OpenKM-5.1.x_JBoss-4.2.3.GA.zip 중에서 최신 Version을 Download하면 됩니다.

File을 Download한 다음, 다음과 같이 Terminal에서 입력하여 설치합니다.

1
$ sudo unzip OpenKM*.zip -d /opt

설치된 OpenKM을 위한 Start-up Script를 만들기 위해서 Terminal에서 다음과 같이 입력합니다.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
$ sudo vi /etc/init.d/jbossokm

#! /bin/sh
# /etc/init.d/jbossokm: Start and stop JBoss Application Service

ECHO=/bin/echo
TEST=/usr/bin/test
JBOSS_START_SCRIPT=/opt/jboss-4.2.3.GA/bin/run.sh
JBOSS_STOP_SCRIPT=/opt/jboss-4.2.3.GA/bin/shutdown.sh

$TEST -x $JBOSS_START_SCRIPT || exit 0
$TEST -x $JBOSS_STOP_SCRIPT || exit 0

start() (
   $ECHO -n "Starting JBoss"
   su -c "$JBOSS_START_SCRIPT -b 0.0.0.0 > /dev/null 2> /dev/null &"
   $ECHO "."
   )

stop () (
   $ECHO -n "Stopping JBoss"
   su -c "$JBOSS_STOP_SCRIPT -S > /dev/null &"
   $ECHO "."
   )

case "$1" in
      start )
            start
            ;;
      stop )
            stop
            ;;
      restart )
            stop
            sleep 30
            start
            ;;
      * )
            $ECHO "Usage: jbossokm {start|stop|restart}"
            exit 1
esac

exit 0

$ sudo chmod 755 /etc/init.d/jbossokm

이제 OpenKM을 실행해 봅시다. 다음과 같이 입력합니다.

1
$ sudo service jbossokm start

System Booting 시에 자동으로 실행하도록 설정하려면 다음과 같이 입력합니다.

1
$ sudo update-rc.d jbossokm defaults
OpenKM - First Run

OpenKM - First Run

이제 OpenKM이 제대로 실행되었는지 확인해 봅시다. http://localhost:8080/OpenKM/에 Browser로 접속하여 위와 같은 화면이 나온다면 정상적으로 실행된 것입니다.

위의 그림에 아래쪽을 보면 Warning이 표시되어 있습니다. 설치한 후 처음 실행했기 때문에 발생하는 Message로 이 문제를 해결하기 위해 Terminal에서 다음과 같이 입력합니다.

1
2
3
4
5
6
7
$ sudo service jbossokm stop
$ sudo vi /opt/jboss*/OpenKM.cfg

# hibernate.hbm2ddl의 값을 create에서 none으로 변경
hibernate.hbm2ddl=none

$ sudo service jbossokm start
OpenKM - Login

OpenKM - Login

변경 후, OpenKM에 다시 접속하면 위와 같이 Warning Message가 사라지는 것을 확인할 수 있습니다.

2.3. Apache와 연결

외부에서 Internet을 통해 OpenKM이 설치된 Server에 접근을 허용할 경우, OpenKM의 JBoss에 직접 접근하게 된다면 보안상 위험할 수 있습니다. JBoss의 보안 Issue 때문에 http port를 통해서 OpenKM에 접근하는 것이 조금 더 안전합니다.

다음은 Apache의 AJP13 Protocol을 이용하여 Apache와 OpenKM의 JBoss가 통신하도록 설정하는 방법을 설명합니다.

먼저 Apache가 설치되어 있지 않다면 설치해야 합니다. 다음과 같이 Terminal에서 입력합니다.

1
$ sudo apt-get install apache2

그 다음, 필요한 Apache Module을 활성화합니다.

1
2
3
$ sudo a2enmod proxy_ajp
$ sudo a2enmod proxy_http
$ sudo a2enmod headers

Apache의 mod_proxy 설정을 위해서 다음과 같이 입력합니다.

1
$ sudo vi /etc/apache2/mods-available/proxy.conf

<IfModule>과 </IfModule> 사이에 아래와 같은 내용을 입력하고 저장합니다.

1
2
3
4
5
6
7
8
9
  ProxyRequests Off
 
  <Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Allow from all
  </Proxy>
 
  ProxyVia On

그리고 Apache의 Virtual Host 설정을 변경하기 위해서 다음과 같이 입력합니다.

1
$ sudo vi /etc/apache2/sites-enabled/000-default

<VirtualHost>와 </VirtualHost> 사이에 다음과 같이 입력하고 저장합니다.

1
2
3
4
<Location /OpenKM>
         ProxyPass ajp://127.0.0.1:8009/OpenKM
         ProxyPassReverse http://localhost/OpenKM
</Location>

설정을 적용하기 위해 Apache를 다시 시작합니다.

1
$ sudo service apache2 restart

만약 UFW 방화벽이 System에 활성화 되어 있다면 외부에서 접속이 가능하도록 다음과 같이 입력하여 설정합니다.

1
$ sudo ufw allow http
OpenKM - via Apache

OpenKM - via Apache

마지막으로 Test를 위해 Browser에서 http://localhost/OpenKM으로 접속합니다. 제대로 설정이 되었다면 위와 같이 정상적으로 Login Page가 표시될 것입니다.

3. 설정

이번 항목에서는 OpenKM을 설치한 후 기본적으로 설정해야 할 것들을 설명합니다.

3.1. OpenKM 설정

OpenKM - Login (Admin)

OpenKM - Login (Admin)

OpenKM을 설정하기 위해서는 OpenKM에 접속하여 Administrator 권한으로 Login해야 합니다. 설치 후, 기본적으로 제공되는 Admin ID는 okmAdmin, Password는 admin입니다.

OpenKM - Main (Admin)

OpenKM - Main (Admin)

Login하면 위와 같은 Main 화면이 표시될 것입니다. okmAdmin 계정으로 Login하면 왼쪽 아래의 빨간색 사각형 안에 okmAdmin 계정으로 접속했다는 Message가 표시됩니다.

OpenKM의 설정을 변경하기 위해서 오른쪽 위의 Administration Tab을 Click합니다.

OpenKM - Administration

OpenKM - Administration

Administration Tab은 okmAdmin 계정이나 관리자 권한을 가진 계정으로 Login했을 때만 표시가 됩니다.

먼저, 기본적으로 설정된 okmAdmin 계정의 비밀번호를 변경하기 위해서 상단 가운데의 User List Icon을 Click합니다.

OpenKM - User List

OpenKM - User List

User List에서 okmAdmin의 정보를 변경하기 위해 위의 그림에 표시한 것과 같이 연필 모양의 Icon을 Click합니다.

OpenKM - Edit User

OpenKM - Edit User

Edit User에서 Password에 새로 변경할 비밀번호를 입력하고 Confirm password에 한번 더 입력한 다음, Send를 눌러 저장합니다.

OpenKM - Configuration

OpenKM - Configuration

이번에는 Upload할 File의 크기를 변경해 봅시다. 상단 왼쪽의 Configuration Icon을 클릭한 다음, File 크기에 대한 Option인 max.file.size를 변경하기 위해 연필 Icon을 Click합니다.

OpenKM - Edit Configuration

OpenKM - Edit Configuration

Edit Configuration에서 Value에 원하는 값(MB 단위)를 넣고 Send를 누르면 Upload할 File의 크기가 변경됩니다.

이 밖에도 대부분의 OpenKM과 관련된 설정은 Administration의 Configuration에서 변경하면 됩니다. 하지만 Performance나 Unicode와 관련된 설정들이 이미 기본적으로 되어 있기 때문에 위에 언급한 정도만 수정하면 될 것 같습니다.

또한, OpenKM을 더 유용하게 만들어 주는 Third-party Tool에 대한 설정도 Configuration에서 설정합니다. 하지만 내용이 많은 관계로 다음 Post에서 좀 더 자세하게 설명하도록 하겠습니다.

3.2. 새 User 추가

okmAdmin 계정으로 사용하는 것 보다는 일반 User로 사용하는 것이 더 안전할 것입니다. 새로운 계정은 okmAdmin 계정과 같은 관리자 권한을 가진 계정에서만 만들 수 있습니다.

계정을 만드는 방법은 다음과 같습니다.

OpenKM - User List

OpenKM - User List

Administration Tab의 User List에서 위의 그림과 같이 + Button을 Click합니다.

OpenKM - Create User

OpenKM - Create User

Create User에서 ID, Password, Name, Mail을 입력하고, Active를 Check합니다. 그리고 Roles에서 UserRole을 선택하면 일반 계정이, AdminRole을 선택하면 관리자 계정이 됩니다.

모두 입력한 다음 Send를 눌러 저장합니다.

OpenKM - User List (Added)

OpenKM - User List (Added)

추가 되면 위와 같이 새로운 계정이 List에 등록된 것을 확인할 수 있습니다.

OpenKM - Main (User)

OpenKM - Main (User)

File -> Exit를 Click하여 Log out한 다음, 새로 생성한 일반 계정으로 Login하면 위와 같은 Main화면이 표시됩니다. 관리자 계정이 아니기 때문에 Administration Tab이 표시되지 않는 것을 확인할 수 있습니다.

4. 사용법

이번 항목에서는 OpenKM을 사용하여 문서를 관리하는 기본적인 방법에 대해서 간단하게 설명합니다.

4.1. 문서 추가

OpenKM에서 말하는 문서는 사실 모든 File을 의미합니다. 다만 지원하는 Office Format(doc, xls, ppt, odt, etc.)이나 PDF, Image(png, gif, jpg, etc.)에 대해서는 Preview와 같은 기능들을 지원하여 사용자가 Web Browser에서 해당 문서를 열람하거나 문서의 내용을 검색할 수 있기 때문에 좀 더 장점을 가지고 있습니다.

OpenKM - Add Document

OpenKM - Add Document

OpenKM에 Login하면 위와 같은 Main 화면이 표시될 것입니다. 먼저 문서를 Taxonomy에 올려봅시다.

Taxonomy는 우리가 흔히 사용하는 Folder Tree 구조를 의미합니다. 때문에 여기에 문서를 올리면 Folder 별로 문서를 나누어 관리할 수 있습니다.

문서를 추가하기 위해서 File -> Add document를 Click합니다.

OpenKM - Add New Documents

OpenKM - Add New Documents

Add new documents에서 파일 선택 Button을 눌러 Upload할 문서를 선택합니다. 그리고 Upload Button을 눌러서 문서를 Upload합니다.

OpenKM - Add New Documents (Uploaded)

OpenKM - Add New Documents (Uploaded)

Upload가 성공하면 위와 같은 화면이 표시됩니다. Add another file을 눌러서 문서를 더 추가하거나 Close를 눌러 문서 추가를 종료할 수 있습니다.

OpenKM - Main (Uploaded)

OpenKM - Main (Uploaded)

추가된 문서는 Taxonomy의 Folder 안에 추가됩니다. 왼쪽의 okm:root는 Root Directory를 의미합니다. File -> Create Folder를 눌러 새로운 Folder를 추가한 다음, Folder를 선택한 상태에서 문서를 추가할 경우에는 문서가 해당 Folder안에 존재하게 됩니다.

추가된 문서를 선택하면, 아래에 정보들이 표시됩니다. Properties Tab에서는 Keyword, Category를 설정할 수 있고, Notes Tab에서는 문서에 대한 설명이나 Memo를 적을 수 있습니다.

그리고 Security Tab에서는 문서의 권한을 보거나 설정할 수 있으며, History Tab에서는 문서의 변경사항을 보거나 변경 전으로 복구할 수 있습니다. 마지막으로 Preview Tab에서는 문서의 내용을 Flash를 통해 열람할 수 있습니다.

4.1.1. 여러 문서를 한 번에 추가하는 방법

위의 방법으로 여러 개의 문서를 추가하려면 각각의 File을 개별적으로 Upload하기 때문에 불편합니다. 한 번에 여러 개의 문서를 추가하기를 원한다면 먼저 추가할 문서를 ZIP Format으로 압축합니다. 미리 Folder를 만들어서 압축하면 추가 시에 Taxonomy에 Folder도 같이 추가됩니다.

OpenKM - Add New Documents (ZIP)

OpenKM - Add New Documents (ZIP)

문서를 압축한 ZIP File을 Upload하기 위해 File -> Add Document를 Click하면 위와 같은 화면이 나옵니다.

여기서 압축한 ZIP File을 선택한 다음, Import Documents from ZIP을 Check하고 Upload를 누릅니다. (압축된 File에 문서가 많다면 시간이 좀 걸릴 수 있습니다.)

OpenKM - Main (ZIP Uploaded)

OpenKM - Main (ZIP Uploaded)

Upload가 완료되면 위의 그림과 같이 ZIP File 내부의 Folder가 추가되면서 그 안에 들어있던 문서들도 그대로 Upload되는 것을 확인할 수 있습니다.

이 방법 외에도 WebDAV Protocol을 사용하면 DropBox나 다른 Cloud Service와 같이 Explorer나 Nautilus를 이용하여 OpenKM의 문서 저장소에 접근하여 간편하게 문서를 Upload하거나 지울 수 있습니다. 이것에 대해서는 다음 Post에서 WebDAV 설정과 함께 설명하도록 하겠습니다.

4.2. Check Out/Check In

OpenKM에서는 SCM인 Subversion과 유사한 저장소의 개념을 가지고 있기 때문에 문서를 Version 별로 관리할 수 있습니다. 이번 항목에서는 Check Out과 Check In을 통해 문서를 갱신하는 방법을 알아보겠습니다.

OpenKM - Check Out

OpenKM - Check Out

Check Out이라는 기능은 OpenKM에 등록된 문서를 변경하겠다는 것을 OpenKM에 알리고 Download하는 기능입니다.

먼저 변경할 문서를 선택한 다음, Edit -> Check out을 Click합니다.

OpenKM - Check In

OpenKM - Check In

Check Out이 되면 해당 문서는 Browser를 통해 Download됩니다. 그리고 그 문서는 Check Out 상태로 Check In을 기다리게 됩니다. Check In은 Check Out의 반대로 Check Out한 문서를 다시 OpenKM에 Upload하여 갱신하는 것을 의미합니다.

Check Out한 문서는 반드시 Check In이 되어야 합니다. 만약 Check Out을 중단하려면 Check Out한 문서를 선택하고 Edit -> Cancel check out을 Click하면 Check Out이 중단됩니다.

Download한 문서를 변경했다면 이제 Check In을 통해 Upload하여 OpenKM에 등록된 문서를 갱신해 봅시다. Check In할 문서를 선택하고 Edit -> Check in을 Click합니다.

OpenKM - Update Documents

OpenKM - Update Documents

Update Documents 창에서 변경한 문서를 선택하고 변경된 내용에 대해서 간단한 Comment를 입력한 다음, Upload를 누르면 Check In이 완료됩니다.

OpenKM - Main (Updated)

OpenKM - Main (Updated)

Check In이 완료되면 Check In한 문서는 위의 그림처럼 Version이 올라가게 됩니다.

OpenKM - Document History

OpenKM - Document History

그리고 해당 문서를 선택하고 아래쪽의 History Tab을 Click하면 Check Out/Check In을 통해서 갱신된 내역이 표시됩니다. 갱신되기 이전의 문서로 돌리기를 원하다면 여기서 Restore를 눌러 복구하면 됩니다.

4.3. Keyword

Keyword는 문서를 분류하기 위한 다른 방법입니다. 문서를 대표하는 단어로 문서를 분류하기 위한 기능인데 이것은 Blog에서 사용하는 Tag와 동일합니다.

OpenKM - Keywords

OpenKM - Keywords

Keyword를 추가하기 위한 문서를 선택한 다음, 아래의 Properties Tab에서 추가할 Keyword를 입력합니다. 여러 개의 Keyword를 동시에 추가하기를 원한다면 위의 그림과 같이 Space Bar로 구분하여 입력하면 됩니다.

OpenKM - Keywords (Added)

OpenKM - Keywords (Added)

Keyword가 추가되면 위의 그림과 같은 모습이 됩니다. 추가된 Keyword 옆의 -를 누르면 해당 Keyword를 제거할 수 있습니다.

그리고 Keywords cloud에서는 Blog의 Tag Cloud와 같이 Keyword에 포함된 문서의 개수에 따라 Keyword의 크기를 다르게 해서 보여줍니다.

OpenKM - Dashboard (Keyword Map)

OpenKM - Dashboard (Keyword Map)

문서에 Keyword를 추가해 놓으면 Keyword를 통해서 문서를 검색할 수 있습니다.

오른쪽 상단의 Dashboard Tab에서 Keyword map을 선택하면 위와 같은 화면이 표시됩니다. 여기서는 주로 사용된 Keyword를 확인하거나 Keyword가 적용된 문서를 검색할 수 있습니다.

OpenKM - Dashboard (Keyword Map, Selected)

OpenKM - Dashboard (Keyword Map, Selected)

위의 그림은 Opensource라는 Keyword를 선택한 모습입니다. 여러 개의 Keyword를 선택하면 해당 Keyword를 포함하는 문서를 List로 표시합니다.

4.4. Category

Category는 위에서 설명한 Taxonomy, Keyword외에 문서를 분류하는 또 다른 방법입니다.

Taxonomy가 기존의 문서를 Folder 구조로 관리한다면 Category는 Taxonomy에 등록된 문서들을 Taxonomy의 Folder 구조와는 상관없는 또 다른 Folder(Category) 구조로 문서를 분류할 수 있도록 도와주는 것입니다.

때문에 Category에서는 문서를 추가할 수가 없습니다. 단지 Folder를 생성하여 그것을 Category로 사용할 수 있게 만들어 줄 뿐입니다. 아래에서는 Category를 사용하는 방법을 설명합니다.

OpenKM - Categories

OpenKM - Categories

왼쪽의 Categories를 Click하면 위의 그림과 같이 Category가 Folder 구조로 표시됩니다. okm:categories는 Category들의 Root입니다.

OpenKM - Create Folder

OpenKM - Create Folder

Category를 새로 추가하기 위해서 File -> Create folder를 눌러서 새로운 Folder를 만들고 이름을 입력합니다.

OpenKM - Categories (Added)

OpenKM - Categories (Added)

이렇게 Categories에 만들어진 Folder는 그대로 하나의 Category가 됩니다.

OpenKM - Set Categories

OpenKM - Set Categories

이제 만들어진 Category에 문서를 추가해 봅시다. Taxonomy로 다시 넘어와서 Category에 추가하고 싶은 문서를 선택한 다음, 아래의 Properties Tab에 Categories Icon을 Click합니다.

OpenKM - Add Category

OpenKM - Add Category

Add Category 창이 표시되면 여기서 방금 전 생성한 Category를 선택하고 Add를 누릅니다. 여러 개의 Category에 추가하고 싶다면 다른 Category를 선택하고 Add를 누르면 됩니다.

Category 추가가 끝났다면 Close를 누릅니다.

OpenKM - Category Added

OpenKM - Category Added

Category가 추가된 모습입니다. Properties Tab의 Categories에 추가한 Category가 표시되는 것을 확인할 수 있습니다.

OpenKM - Categories (Added)

OpenKM - Categories (Added)

이제 Categories로 돌아와서 추가한 Category를 선택해 봅시다. 그러면 해당 Category에 속하는 Taxonomy의 문서가 표시될 것입니다.

4.5. Search

OpenKM의 Search 기능은 상당히 유용합니다. 문서 이름이나 Keyword 뿐만 아니라, 문서 내부의 Text도 검색할 수 있습니다. (다국어 지원)

OpenKM - Search

OpenKM - Search

오른쪽 상단의 Search Tab을 Click하면 문서 검색화면이 표시됩니다. 위의 검색항목에서 Context에는 검색할 문서 저장소를 선택합니다. 일반적으로 Taxonomy로 설정하면 됩니다.

Content에서 검색할 단어를 입력하고 Enter나 Search Button을 누르면 검색할 단어가 문서 내부에 포함되어 있는 지를 검색하여 해당 문서를 List로 표시합니다.

그리고 Name에서는 문서 이름으로, Keywords에서는 문서의 Keyword로 검색합니다.

마지막으로 검색을 초기화하려면 Clean을 누르면 됩니다.

OpenKM - Search Results

OpenKM - Search Results

위의 그림은 Taxonomy에 등록된 문서들 중에서 소프트웨어라는 단어가 내용에 들어간 문서를 검색한 결과입니다.

이 외에도 지면상 소개하지 않은 여러가지 기능들이 있습니다. OpenKM의 자세한 사용법은 OpenKM Wiki의 User Guide를 참고하기 바랍니다.

5. 마치면서…

이상으로 간단하게 OpenKM을 설치하는 방법과 사용법을 알아봤습니다. 개인적으로 문서들을 많이 취급하게 되는 터라 관리하기에 편한 Solution을 찾다보니 이렇게까지 삽질을 하게 되었네요. Enterprise 급의 문서 관리에 적용하는데는 부족하겠지만 작은 기업이나 개인적으로 사용하기에는 부족함이 없는 것 같습니다.

다음 Post에서는 OpenKM을 좀 더 편리하고 유용하게 사용하는 방법과 Migration, Backup에 대해서 알아보도록 하겠습니다. :)

Part1에 이어서 이번 Post에서는 OpenKM의 기능을 확장시켜주는 Third-party Tool과 Backup 등에 대해서 알아보도록 하겠습니다.

6. Third-party Tool 설정

대부분의 Open-source Solution이 그렇듯이 OpenKM도 여러 Open-source Tool과 함께 사용하면 기능이 더 확장되고 유용해집니다. 이번 항목에서는 Third-party Tool을 설치하고 OpenKM에서 사용할 수 있도록 설정하는 방법을 설명합니다.

6.1. PDF Preview

OpenKM의 Web Interface에서 PDF 문서를 미리보기할 수 있습니다. (미리보기를 위해서는 Browser에 Flash Plugin이 설치되어 있어야 합니다.)

먼저 PDF를 SWF로 변환하기 위해서 SWFTools를 설치해야 합니다. Ubuntu의 Repository에서 기본적으로 제공하지 않기 때문에 PPA에서 Build한 DEB Package로 설치해 봅시다.

Pacakge를 Download하기 위해서 Terminal에서 다음과 같이 입력합니다.

  • 32bit:
    1
    $ wget "https://launchpad.net/~ella-animation/+archive/dev/+files/swftools_0.9.1-0maverick2_i386.deb"
  • 64bit:
    1
    $ wget "https://launchpad.net/~ella-animation/+archive/dev/+files/swftools_0.9.1-0maverick2_amd64.deb"

Download한 Package를 설치하기 위해 다음과 같이 입력합니다.

1
2
$ apt-get install libjpeg62
$ sudo dpkg -i swftools*.deb
OpenKM - Configuration

OpenKM - Configuration

그 다음, OpenKM에 okmAdmin으로 접속한 후 Administration Tab에서 Configuration을 Click합니다.

여러가지 설정변수 중 system.swftools.pdf2swf를 찾아서 값을 편집하기 위해 연필 Icon을 Click합니다.

OpenKM - system.swftools.pdf2swf

OpenKM - system.swftools.pdf2swf

Value에 다음과 같은 값을 입력하고 Send를 눌러 저장합니다.

1
/usr/bin/pdf2swf -T 9 -f ${fileIn} -o ${fileOut}

마지막으로 OpenKM을 다시 시작하기 위해서 Terminal에서 다음과 같이 입력합니다.

1
$ sudo service jbossokm restart
OpenKM - PDF Preview

OpenKM - PDF Preview

다시 시작된 OpenKM에 접속해서 PDF문서를 Click한 다음, 아래의 Preview Tab을 Click하면 위의 그림과 같이 PDF문서의 내용을 확인할 수 있습니다.

6.2. Image Preview

OpenKM에 Image(gif, png, jpg, etc.)를 Upload할 경우, Image 또한 Preview를 통해서 미리보기가 가능합니다.

Image Preview를 위해서는 Image Format 변환을 위해 ImageMagick을 설치해야 합니다. 설치를 위해서 Terminal에서 다음과 같이 입력합니다.

1
$ sudo apt-get install imagemagick
OpenKM - Configuration

OpenKM - Configuration

OpenKM에서 okmAdmin으로 접속한 다음, Administration의 Configuration에서 system.imagemagick.convert 환경변수를 변경하기 위해 연필 Icon을 Click합니다.

OpenKM - system.imagemagick.convert

OpenKM - system.imagemagick.convert

Value에 다음과 같은 값을 입력하고 Send를 누릅니다.

1
/usr/bin/convert

변경된 설정을 OpenKM에 적용하기 위해 다음과 같이 입력하여 OpenKM을 다시 시작합니다.

1
$ sudo service jbossokm restart
OpenKM - Image Preview

OpenKM - Image Preview

다시 시작된 OpenKM에 접속하여 Image File을 Upload한 다음, Preview를 누르면 위의 그림과 같이 Image가 표시되는 것을 확인할 수 있습니다.

6.3. Tesseract OCR

OCR은 Image에서 Text를 추출하는 Program입니다. OpenKM에서는 Open-source OCR Program을 이용하여 검색 시에 Image(tif, png, jpg, gif) 내에 포함되어 있는 Text까지 검색하여 결과를 표시합니다.

OpenKM은 Open-source OCR 중 Tesseract와 Cuneiform을 지원하지만 여기서는 인식률이 좀 더 나은 Tesseract를 사용하는 방법에 대해서 설명합니다.

Tesseract는 Ubuntu repository에 포함되어 있습니다. 하지만 최신의 Tesseract를 사용하려면 PPA를 이용해야 합니다. 다음과 같이 입력하여 Tesseract를 설치합니다.

1
2
$ sudo add-apt-repository ppa:gezakovacs/tesseract
$ sudo apt-get update && sudo apt-get install tesseract-ocr tesseract-ocr-eng

Tesseract는 기본적으로 영문 Text를 추출할 수 있습니다. 만약, Image 내의 한글을 추출하기 원한다면 다음과 같이 입력하여 한국어 Language Data를 설치합니다.

1
2
3
$ cd /usr/share/tesseract-ocr/tessdata
$ sudo wget "http://tesseract-ocr.googlecode.com/files/kor.traineddata.gz"
$ sudo gunzip kor.traineddata.gz
OpenKM - Configuration

OpenKM - Configuration

OpenKM에서 okmAdmin으로 접속한 다음, Administration의 Configuration에서 system.ocr을 찾아서 옆의 연필 Icon을 Click합니다.

OpenKM - system.ocr

OpenKM - system.ocr

Value에 다음 중 하나를 선택하여 입력하고 Send를 누릅니다. 여기서 유의할 점은 한국어로 설정한 경우 영문이 포함된 Image에서는 제대로 영문을 추출할 수 없다는 것입니다. 영어로 설정한 경우에는 당연히 한글을 추출할 수 없겠죠. :(

  • 영어:
    1
    /usr/bin/tesseract ${fileIn} ${fileOut}
  • 한국어:
    1
    /usr/bin/tesseract ${fileIn} ${fileOut} -l kor

설정을 저장한 후, 다음과 같이 입력하여 OpenKM을 종료합니다.

1
$ sudo service jbossokm stop

OpenKM에서 검색을 위한 Data를 만들 때, OCR을 사용하도록 설정하기 위해 다음과 같이 입력하여 설정파일을 편집기로 엽니다.

1
$ sudo vi /opt/jboss*/repository.xml

내용 중에서 textFilterClasses를 검색한 다음, value를 다음과 같이 변경하고 저장합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<param name="textFilterClasses" value="
org.apache.jackrabbit.extractor.PlainTextExtractor,
org.apache.jackrabbit.extractor.MsWordTextExtractor,
org.apache.jackrabbit.extractor.MsExcelTextExtractor,
org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,
org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,
org.apache.jackrabbit.extractor.RTFTextExtractor,
org.apache.jackrabbit.extractor.HTMLTextExtractor,
org.apache.jackrabbit.extractor.XMLTextExtractor,
org.apache.jackrabbit.extractor.PngTextExtractor,
org.apache.jackrabbit.extractor.MsOutlookTextExtractor,
com.openkm.extractor.PdfTextExtractor,
com.openkm.extractor.AudioTextExtractor,
com.openkm.extractor.ExifTextExtractor,
com.openkm.extractor.Tesseract3TextExtractor,
com.openkm.extractor.SourceCodeTextExtractor,
com.openkm.extractor.MsOffice2007TextExtractor"/>

그리고 다음과 같이 입력하여 또 다른 설정 파일을 편집기로 엽니다.

1
$ sudo vi /opt/jboss*/repository/workspaces/default/workspace.xml

여기서도 마찬가지로 textFilterClasses를 검색하여 value를 다음과 같이 변경하고 저장합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<param name="textFilterClasses" value="
org.apache.jackrabbit.extractor.PlainTextExtractor,
org.apache.jackrabbit.extractor.MsWordTextExtractor,
org.apache.jackrabbit.extractor.MsExcelTextExtractor,
org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,
org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,
org.apache.jackrabbit.extractor.RTFTextExtractor,
org.apache.jackrabbit.extractor.HTMLTextExtractor,
org.apache.jackrabbit.extractor.XMLTextExtractor,
org.apache.jackrabbit.extractor.PngTextExtractor,
org.apache.jackrabbit.extractor.MsOutlookTextExtractor,
com.openkm.extractor.PdfTextExtractor,
com.openkm.extractor.AudioTextExtractor,
com.openkm.extractor.ExifTextExtractor,
com.openkm.extractor.Tesseract3TextExtractor,
com.openkm.extractor.SourceCodeTextExtractor,
com.openkm.extractor.MsOffice2007TextExtractor"/>

마지막으로 설정을 적용하기 위해서 OpenKM을 시작합니다.

1
$ sudo service jbossokm start
OpenKM - OCR Test

OpenKM - OCR Test

Test하는 방법은 간단합니다. 위의 그림에서와 같이 Text가 들어가 있는 Image를 OpenKM에 Upalod합니다. Image를 Upload할 때, Tesseract가 내부적으로 실행되면서 추출한 내용을 검색 Data에 저장합니다.

OpenKM - Search Result

OpenKM - Search Result

Search Tab에서 Content에 Image 안의 단어 중 하나를 넣어서 검색했을 때, 아래의 검색결과에 해당 Image가 표시된다면 제대로 설정이 된 것입니다.

6.4. OpenOffice.org Integration

Ubuntu Precise Pangolin 12.04에서는 LibreOffice 3.5.3.2를 이용하여 미리보기를 표시할 수 없습니다. OpenKM에 포함되어있는 JODConverter와 LibreOffice간에 통신에 제대로 이루어지지 않는 것 같네요. 아직까지는 해결할 수 있는 방법이 없는 것 같습니다. (soffice.bin이 headless로 실행되다가 갑자기 종료됨)

server.log는 다음과 같습니다.

1
2
3
4
5
6
7
8
2012-05-22 16:37:00,938 INFO  [org.artofsolving.jodconverter.office.OfficeProcess] starting process with acceptString 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' and profileDir '/tmp/.jodconverter_socket_host-127.0.0.1_port-2002'
2012-05-22 16:37:01,078 INFO  [org.artofsolving.jodconverter.office.OfficeProcess] started process
2012-05-22 16:37:31,261 WARN  [com.openkm.servlet.RepositoryStartupServlet] failed to start and connect
org.artofsolving.jodconverter.office.OfficeException: failed to start and connect
        at org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.java:61)
        at org.artofsolving.jodconverter.office.PooledOfficeManager.start(PooledOfficeManager.java:102)
        at org.artofsolving.jodconverter.office.ProcessPoolOfficeManager.start(ProcessPoolOfficeManager.java:59)
        at com.openkm.util.DocConverter.start(DocConverter.java:164)

OpenKM에서는 Office Format(docx, doc, xlsx, xls, pptx, ppt, odt, etc.)의 File을 미리보기 할 수 있습니다. (미리보기를 위해서는 먼저 6.1의 SWFTools를 설치해야 합니다.)

미리보기를 위해서 OpenKM은 OpenOffice.org를 사용합니다. 때문에 MS Office 관련 Format을 미리보기 할 경우, OpenOffice.org에서 해당 문서를 연 모습과 같이 표시되기 때문에 Layout이나 Font가 기존의 문서와 조금 다를 수 있습니다.

기본적으로 Ubuntu에서는 OpenOffice.org의 Fork인 Libre Office가 설치되어 있는데 다음과 같이 입력하여 OpenOffice.org를 설치합니다.

1
$ sudo apt-get install openoffice.org

OpenOffice.org Package를 설치한다고 해도, 실제적으로 새로 OpenOffice.org가 설치되는 것은 아닙니다. Libre Office가 OpenOffice.org의 역할을 대신할 수 있도록 필요한 몇 가지 Package만 설치하게 됩니다.

OpenKM - Configuration

OpenKM - Configuration

OpenKM에서 okmAdmin으로 접속한 다음, Administration의 Configuration에서 system.openoffice.path를 찾아 옆의 연필 Icon을 Click합니다.

OpenKM - system.openoffice.path

OpenKM - system.openoffice.path

Value에 다음과 같이 입력하고 Send를 눌러 저장합니다.

1
/usr/lib/libreoffice

저장한 설정을 OpenKM에 적용하기 위해서 다음과 같이 입력합니다.

1
$ sudo service jbossokm restart
OpenKM - PPT Preview

OpenKM - PPT Preview

설정이 적용된 OpenKM에서 Office Format의 문서를 Upload한 다음, Preview를 Click하면 위의 그림과 같이 해당 문서의 내용을 확인할 수 있습니다.

6.5. Anitivirus

Antivirus Program을 OpenKM에서 사용하도록 설정하면, Upload하는 문서가 Virus에 감염되어 있을 경우, 해당 문서를 Repository에 등록하지 않고 사용자에게 해당 문서가 문제가 있다는 것을 알려줍니다.

OpenKM은 Antivirus Program으로 Open-source인 ClamAV를 지원합니다. 설치를 위해서 다음과 같이 Terminal에서 입력합니다.

1
2
$ sudo apt-get install clamav      
$ sudo freshclam
OpenKM - Configuration

OpenKM - Configuration

OpenKM에서 okmAdmin으로 접속한 후, Administration의 Configuration에서 system.antivir을 찾아 옆의 연필 Icon을 Click합니다.

OpenKM - system.antivir

OpenKM - system.antivir

Value에 다음과 같이 입력하고 Send를 눌러 저장합니다.

1
/usr/bin/clamscan

설정을 적용하기 위해서 다음과 같이 입력하여 OpenKM을 다시 시작합니다.

1
$ sudo service jbossokm restart
OpenKM - Virus Detected

OpenKM - Virus Detected

위의 그림은 실제 사용하다가 문서 내의 Virus를 감지한 모습입니다. ZIP으로 문서를 묶어서 Upload한 경우에도 Virus를 검색하여 문제가 있는 File을 걸러내어주니 제법 유용합니다.

7. WebDAV 설정

WebDAV는 HTTP를 통해서 Server 내의 문서를 편집하거나 관리하는 방법을 표준으로 정한 Protocol입니다.

OpenKM에서는 WebDAV를 지원하여 WebDAV Client를 통해서 마치 File System에 있는 것처럼 Repoisitory의 문서를 편하게 열람하고 관리할 수 있습니다.

이번 항목에서는 OpenKM에서 WebDAV를 사용할 수 있도록 설정하는 방법과 Linux, Windows에서 WebDAV Client를 사용하여 접속하는 방법을 설명합니다.

7.1. OpenKM 설정

먼저 OpenKM에서 WebDAV를 지원하도록 설정하는 방법에 대해서 알아봅시다.

OpenKM - Configuration

OpenKM - Configuration

OpenKM Web Interface에서 okmAdmin으로 접속한 다음, Administration의 Configuration에서 system.webdav.server, system.webdav.fix 설정변수를 편집(연필 Icon Click)합니다.

OpenKM - system.webdav.server

OpenKM - system.webdav.server

system.webdav.server 환경변수의 Value를 Check한 다음, Send를 누르면 OpenKM이 WebDAV Protocol을 지원하게 됩니다.

OpenKM - system.webdav.fix

OpenKM - system.webdav.fix

system.webdav.fix 환경변수를 설정하면, Taxonomy의 Root인 okm:root의 ‘:’을 Windows에서는 Folder명으로 사용할 수 없기 때문에 대신 okm_root로 변경해 줍니다.

Windows에서 접속하여 사용할 것이라면 Value에 Check하고 Send를 눌러 저장합니다.

7.2. Linux에서 WebDAV를 통하여 OpenKM에 접근하는 방법

Linux에서 davfs2를 설치하면 WebDAV를 통하여 OpenKM의 Repository에 접근해서 File System처럼 문서를 열람하고 관리할 수 있습니다.

Ubuntu의 경우, 설치를 위해서 Terminal에서 다음과 같이 입력합니다.

1
2
$ sudo apt-get install davfs2
$ sudo dpkg-reconfigure davfs2
davfs2 Configuration

davfs2 Configuration

설치 시, davfs2를 이용하여 Root 계정이 아닌 일반 계정에서도 Mount하여 사용할 수 있도록 설정할 지 여부를 묻는 창이 위의 그림과 같이 나온다면 예를 선택하고 Enter를 누릅니다.

설치가 완료된 다음, davfs2를 사용할 User를 설정하고 Mount Point를 설정하기 위해 아래와 같이 입력합니다. (User가 foo인 경우)

1
2
$ sudo usermod -a -G davfs2 foo
$ sudo mkdir /home/foo/.media/okmdav -p

그리고 Mount Point에 대한 정보를 저장하기 위해서 /etc/fstab을 아래와 같이 편집하여 저장합니다. (OpenKM의 접속 URL이 http://www.example.com/OpenKM일 경우)

1
2
3
4
$ sudo vi /etc/fstab

# OpenKM WebDAV
http://www.example.com/OpenKM/webdav /home/foo/.media/okmdav davfs rw,user,noauto 0 0

이제 Mount가 제대로 이루어지는지 Test해 봅시다. 아래와 같이 입력합니다.

1
2
3
4
5
6
7
8
9
10
$ mount ~/.media/okmdav
Please enter the username to authenticate with server
http://www.example.com/OpenKM/webdav or hit enter for none.
  Username:
Please enter the password to authenticate user ioriy2k with server
http://www.example.com/OpenKM/webdav or hit enter for none.
  Password:  

$ ls ~/.media/okmdav
lost+found  okm_mail  okm_personal  okm_root  okm_templates

Username과 Password에는 OpenKM에 접속할 ID와 Password를 입력하면 됩니다.

Mount된 Directory에는 위와 같이 여러 Folder가 존재하는데 Taxonomy에 등록된 문서는 모두 okm_root 안에 위치합니다.

제대로 Mount가 되었다면, Mount 시의 번거로움을 줄이기 위해 OpenKM에 접속할 ID와 Password 정보를 저장해 봅시다. 다음과 같이 입력합니다. (OpenKM의 URL이 http://www.example.com/OpenKM, ID가 foo, Password가 bar인 경우의 예)

1
2
3
4
$ vi ~/.davfs2/secrets

# OpenKM
http://www.example.com/OpenKM/webdav    foo    "bar"

Mount Point에 편리하게 접근하고 싶다면, 다음과 같이 입력하여 Symbolic Link를 만들면 됩니다.

1
$ ln -sf ~/.media/okmdav/okm_root ~/문서/OpenKM
7.2.1. Login 시에 Mount하는 방법

OpenKM을 WebDAV를 통하여 Mount할 경우 Network 연결을 이용한 Mount의 특성 상 System 시작 시에 자동으로 Mount하지 않습니다.

하지만 편리하게 사용하기 위해서 Desktop 환경에 Login 시에 자동으로 Mount할 수 있도록 설정할 수 있습니다. 먼저 다음과 같이 입력하여 Mount를 위한 Script를 만듭니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ mkdir ~/.local/bin -p
$ vi ~/.local/bin/mount.okm

#!/bin/bash
 
grep okmdav /proc/mounts > /dev/null
 
if [ $? == 0 ]; then
    umount ~/.media/okmdav/
fi

mount ~/.media/okmdav/

$ chmod 755 ~/.local/bin/mount.okm

작성한 Script를 시작 Program에 등록하기 위해 아래와 같이 입력합니다.

1
$ gnome-session-properties
Startup Applications

Startup Applications

시작 프로그램 기본 설정에서 추가 Button을 누르면 위의 그림과 같이 입력 창이 표시됩니다. 다음과 같이 입력하고 확인을 눌러 저장한 후, Logout, Login하면 OpenKM이 자동으로 Mount됩니다. (User가 foo인 경우)

  • 이름: OpenKM WebDAV
  • 명령: /home/foo/.local/bin/mount.okm

7.3. Windows에서 WebDAV를 통하여 OpenKM에 접근하는 방법

Windows에서도 WebDAV를 통하여 OpenKM에 접근할 수 있습니다. Linux에서와 마찬가지로 File System 처럼 Mount하기 때문에 탐색기에서 문서를 편리하게 관리할 수 있습니다.

WIndows에서 기본적으로 제공하는 WebDAV Protocol 연결은 문제가 있기 때문에 상용 WebDAV Client인 WebDrive를 사용하여 연결해 봅시다. WebDrive는 여기서 Trial을 받아 설치할 수 있습니다.

Start Menu - WebDrive

Start Menu - WebDrive

WebDrive를 설치했다면 WebDrive -> WebDrive를 Click하여 실행합니다.

WebDrive - Program Settings

WebDrive - Program Settings

먼저 설정을 변경하기 위해 File -> Program Settings를 Click합니다.

WebDrive - General Settings

WebDrive - General Settings

MS Office 문서를 편집할 때의 Performance를 높이기 위해서 General Settings의 Disable DFS (improves performance of MS Office)를 Check하고 OK를 누릅니다.

WebDrive - New Site

WebDrive - New Site

이제 OpenKM Site를 등록하기 위해서 New Site Button을 Click합니다.

WebDrive - Site Wizard

WebDrive - Site Wizard

Site Wizard에서 Connect by Server Type (SFTP, WebDAV, FTP, etc.)를 선택하고 다음을 누릅니다.

Site Wizard - Server Type

Site Wizard - Server Type

Server type을 WebDAV로 선택하고 다음을 누릅니다. 만약 OpenKM Server가 HTTPS를 지원한다면 Connect Securely를 Check합니다.

Site Wizard - Server URL

Site Wizard - Server URL

Enter the URL for the Server에 OpenKM의 WebDAV 접속 URL을 입력하고 다음을 누릅니다. 예를 들어 OpenKM의 접속 URL이 “http://www.example.com/OpenKM”이라면 WebDAV 접속 URL은 “http://www.example.com/OpenKM/webdav/okm_root”가 됩니다.

Site Wizard - Account Information

Site Wizard - Account Information

Username과 Password에 OpenKM에 접속하기 위한 ID와 Password를 입력합니다. 그리고 제대로 연결이 되는지 확인하기 위해서 Test Connection을 누릅니다.

Site Wizard - Test Connection

Site Wizard - Test Connection

Test Connection으로 확인하여 제대로 연결되었다면 위와 같은 Message를 표시할 것입니다. Close를 눌러 Test를 종료합니다.

Site Wizard - Site Name

Site Wizard - Site Name

그 다음 WebDAV 접속에 대한 이름을 입력하고 Drive를 설정한 후, 다음을 누릅니다.

Site Wizard - Finish

Site Wizard - Finish

마지막으로 Windows Login이나 시작 시에 자동으로 Mount되도록 설정하려면 Connect at login/startup을 Check합니다. 그리고 마침을 누릅니다.

WebDrive - Properties

WebDrive - Properties

Site 등록이 완료되었으면, OpenKM을 위한 설정을 위해서 Properties를 Click합니다.

WebDrive - Properties (File)

WebDrive - Properties (File)

Site Properties의 File에서 다음과 같은 항목의 설정을 변경하고 OK를 누릅니다.

  • Encode filenames in UTF-8, Cache temporary MS Office files를 Check
  • Enable Quota Processing의 Check를 해제
WebDrive - Connect

WebDrive - Connect

설정이 모두 완료되었으니 이제 Mount해 봅시다. Connect Button을 Click합니다.

Explorer - Connected

Explorer - Connected

제대로 Mount 되었다면 위의 그림과 같이 탐색기로 OpenKM의 Repository를 접근할 수 있게 됩니다.

8. Backup & Migration

이번 항목에서는 마지막으로 OpenKM을 Backup하는 방법과 새로운 Version이 나왔을 때 Migration하는 방법을 간단하게 설명합니다.

8.1. Backup/Restore

OpenKM은 Solution으로 되어 있기 때문에 필요한 것만 골라서 Backup하기가 용이하지 않습니다.

okmAdmin으로 접속할 경우, Administration에서 Export/Import를 지원하지만 문서에 대한 Metadata 정보를 제대로 가져오지 못하기 때문에 문서만 Backup하는 경우 외에는 거의 의미가 없습니다.

가장 간단하고 편리하게 전체를 Backup하는 방법은 압축하여 보관하는 방법입니다. 예를 들어 Backup 명령을 실행해 본다면 다음과 같습니다. (/backup/openkm에 Backup하는 경우)

1
2
$ cd /opt
$ sudo tar cvzf /backup/openkm/openkm-`date +%Y-%m-%d`.tar.gz jboss*

Backup한 OpenKM 압축을 Restore하기 위해서는 다음과 같이 명령을 입력하면 될 것입니다.

1
$ sudo tar xvzf /backup/openkm/openkm-2012-05-01.tar.gz -C /opt

물론 Restore 후, Startup Script와 Apache 연결은 Part1을 참고하여 다시 설정해야 합니다.

8.2. Migration

Backup과 마찬가지로 Migration도 쉬운 편은 아닙니다. 현재 사용하고 있는 OpenKM의 Version에서 다음 Version으로 차례대로 Migration을 해 나가야 합니다.

예를 들어 사용하고 있는 OpenKM의 Version이 5.1.8이라면, 5.1.10까지 Migration하기 위해서 5.1.9로 먼저 Migration한 다음, 5.1.10으로 Migration해야 합니다.

Migration을 위한 일반적인 방법은 아래와 같습니다.

Migration은 각 Version마다 각각 조금씩 추가된 과정이 더 있을 수 있습니다. 자세한 Migration 방법은 OpenKM의 Wiki를 참고하기 바랍니다.

  1. Backup을 만듭니다. (Backup/Restore 항목 참조)
  2. Service를 정지합니다.
    1
    $ sudo service jbossokm stop
  3. Migration할 새 Version의 OpenKM을 Download합니다.
  4. Download한 OpenKM 압축에서 server/default/deploy/OpenKM.war를 압축해제합니다.
    1
    $ unzip OpenKM*.zip jboss*/server/default/deploy/OpenKM.war
  5. 압축 해제한 OpenKM.war를 설치된 OpenKM에 덮어씁니다.
    1
    $ sudo mv jboss*/server/default/deploy/OpenKM.war /opt/jboss*/server/default/deploy/
  6. Update를 위해 설치된 OpenKM의 OpenKM.cfg를 다음과 같이 수정합니다.
    1
    2
    3
    $ sudo vi /opt/jboss*/OpenKm.cfg

    hibernate.hbm2ddl=update
  7. Service를 시작합니다.
    1
    $ sudo service jbossokm start
  8. 마지막으로 OpenKM.cfg를 한 번 더 수정합니다.
    1
    2
    3
    $ sudo vi /opt/jboss*/OpenKm.cfg

    hibernate.hbm2ddl=none

9. 마치면서…

이상으로 OpenKM에 대해서 알아봤습니다. Open-source Solution이 가지는 특성 상 지원이 조금 미흡하고, Update나 Backup이 좀 불편하긴 하지만, 유용하게 사용할 수 있는 Solution이라고 생각됩니다.

많은 문서들을 관리하기 버거워하는 분이 있다면 이번에 소개한 OpenKM은 좋은 해답이 되어 줄 것입니다. :)