mylyn

IDE & Build/Eclipse 2012. 3. 12. 00:13

Mylyn 을 살짝 정리 해볼까 합니다.

정리 하기 전에 Mylyn에 대한 자료는 이미 엄청 많이 있습니다. 하여~ 이걸 내가 또 정리할 필요가 있나 싶다가도^^;

Mylyn 이 너무 좋아서~ 소문을 내기 위한 방편으로 포스트를 작성 한다 하겠습니다.ㅋ

나름 상세한 캡쳐는 넣도록 할테니^^; 좀 이클립스 또는 Mylyn을 아시는 분들은 훅훅..밑으로 내리면서 보시면 될듯 합니다.ㅋ

   

1. 이클립스 다운 받을게요! 이미 있으신 분들?은 그냥! 쓰세요~

2. 압출 풀고 실행 합니다.

참고로 설치된 이클립스의 버전은 Eclipse Platform Version: 3.5.2.R35x_v2.... 입니다.

3. Mylyn을 사용하기 위해 플러그인을 깔아야 겠죠? Install New Software 를 클릭합니다.

4. Eclipse 3.5.2는 기본으로다가 Mylyn을 내장?하고 있습니다. 아래와 같이 선택 하시고 진행 하세요!

   지금 이작업을 패스 하셔도 좋습니다. 저는 안전빵?으로다가 아직 설치 되니 않은 Mylyn 관련 플러그인 있으면

   다 깔아 버리려고 하는 겁니다. 잘 모르시면? 확..다 깔아 버리셔요!

저는 아래것만 깝니다.C/C++는 선택하니 에러뜨네요...그래서! 패스~

5. 설치될 플러그인을 한번 확인 하시고요^^; Next >

6. 라이센스 동의 하시고 Next >

7. 설치중..

8. 설치가 완료 되면 이클립스를 한번 껏다가 키자고 하는데요^^; 한번 그래주세요!

   

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 설치끝 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

   

이제 Mylyn에 대해서 설명을 하기 이전에 이해를 돕기 위해...

아래 설명을 더하겠습니다.

화면 보시면서...슬쩍 슬쩍 글읽으면서 이해해가시길 바랍니다.

훗~~ 느끼세요!

아래 내용은 엄청 멋진 개발자 "이대리"에 이야기 입니다.

   

아래 이미지는 이대리가 회사에서 사용하는 이클립스 입니다.ㅋ

하하..알바 프로젝트도 있고 회사 업무를 보는 프로젝트(mylyn_test_project)도 있습니다.

참고로 알바 프로젝트는 이해를 돕기 위해 만든 것이지 실재로 저는 회사에서 알바를 거의? 하지 않습니다.ㅋ

열심히 이대리는 일을 하고 있습니다.

오늘 할일은 SAX 싹스 관련한 작업을 열심히 하고 있었죠!!..그때~~ 이대리 이것좀 해죠~ 급해!

어쩔 수 없이 이대리는 좀전에 하던일을 정지 시키고 급하다는 일을 하게 됩니다. 이때 마음속에 이런 생각이 들었죠!ㅡㅡ;

'ㅅㅂ 아놔..기껏 파일 다 열어 놓고 완전 열심히 개발 하고 있는데 ㅡㅡ; 지금 다른거 하면 완전 헤깔리는데..'

'아~ 내가 어떤거 수정했더라...아놔~ㅅㅂ 일단 딴거 하자..에잇~'

그러곤 xslt 작업을 열라게 합니다. '꺄~~ xslt를 이래서 쓰는 구나..ㅋㅋ' 또~~ 그때~~~따르르르릉~~~

전화속 남자 : "이전에 너가 해준거 그 프로그램...에러난다 좀 봐봐~~ 급해~급해~"

'젠장 ㅡㅡ; 다 급하데..참네.... 아~ 이제좀 xslt 하려고 하는데ㅡㅡ;'

이쯤이면 아까 작업하던 SAX 싹스 작업은 전혀 기억이 나질 않습니다. 내가 그걸 오늘 작업했었나? 했을지도 모르죠...

아~ 혹..내가 치매끼가 있나? 아침에 뭘 먹었는지도 기억이 나질 않습니다.ㅡㅡ; 저는 이런 저런 걱정과 함께...

짜증..짜증..을 내면서 저는 알바 프로젝트를 엽니다.ㅡㅡ; 그리고 에러와 관련된 파일을 찾고 또 찾아 작업을 합니다.

아~ 어떤 거더라 ㅜㅜ;

요즘은 프레임워크를 써서 관련된 파일도 참 많죠! 아래 같이 관련 파일을 dao, model, service등 다 열어서 작업을 시작합니다.

알바는 다 처리를 해 줬습니다. 캬~ 좋다!

자~ 좀전에..내가...('' )(.. )( '')( ..).......뭘....했더라...

아~아~아~아~ xslt 했지?ㅋㅋ

아놔..또 찾아야 하네..파일 ㅡㅡ;

허걱~~~

아놔..이건 폴더에 뭐 이리 파일이 많아ㅡㅡ;

기억을 더듬어서 xslt 작업으로 돌아와서 작업을 합니다. 역시 이대리는 천재 인가 봅니다.

허걱...그런데 한 폴더에 파일이 100개가 넘는거 같습니다. 아니 200개? ㅡㅡ;

이 폴더 말고도 같이 작업할 폴더가 많은데...

개발 1분...스크롤 10초 합니다. 파일 하나 찾고..다시 개발 1분 ㅡㅡ; 파일 검색 30초...ㅅㅂㅅㅂ

하하.....지금까지 이대리가 자주 격게 되는 에피소드를 말씀 드렸습니다.

어떻게 해결 방법이 없을까요? ㅡㅡ;

이대리가 일도 하고 알바도 하고 열심히 밥 벌어 먹고 살수 있는 그런 방법?

   

그날 저녁 ☆☆☆ 이대리는 꿈속에서 하나님을 만나게 됩니다. ☆☆☆

하나님 : "이대리 너 걱정있니?"

이대리 : "어제 작업한 SAX 관련 파일이 기억이 나질 안아요!  web.xml 이랑 jsp 몇개 수정을 한거 같은데..."

            "아놔..어제 박과장님이 급하다고 막 어쩌고 하는 바람에 xslt 작업 했더니 ㅡㅡ; 내일 라이브 배포 해야 하는데~ ㅜㅜ"

하나님 : "넌 아직도 Mylyn을 모르느냐! ㅉㅉㅉ 안습 이구나~"

이대리 : "예? 뭔 라인이요? 에스라인? 예?"

   

그러곤 이대리는 잠에서 깨어납니다. 그러곤 혼란 스러워 합니다.

"에스라인?" 흠......내일 찾아 봐야 겠다...라고 마음을 먹습니다.

   

이대리는 회사에 출근하자 마자 "에스라인"을 검색하고 관련 기사를 미친듯이 읽기 시작 합니다.

아~ 그러다가 밝견 합니다.

마이라인!!!

   

지금까지 허접한 저의 농담을 읽어 주셨다면 감사 드립니다.ㅋ

일을 하면서 겪게 되는 에피소드를 한번 적어 봤는데요! 위와 같은 에로사항을 한번에 날려 버려주는 놈이 바로 Mylyn입니다.

   

Mylyn의 기능은 이렇습니다.

1. 통합 태스크 관리

2. 자동 콘텍스트 관리

   

태스트라는 말이 나오는데요! Task는 영어뜻 그대로 "일, 직무, 과업" 이라고 생각하면 됩니다.

위에서 이대리가  아르바이트와, xslt 작업, sax 작업을 한번에 같이 합니다.

그렇게 되면 이클립스에 열려 있는 파일이 너무 많게 되어 파일을 찾는데 너무 많은 시간이 흘러 가게 됩니다.

이때 각각의 업무를 하나의 Task 로 생각하고 Task별로 소스를 관리 하겠다는 거죠!..

ㅡㅡ;말빨 부족인가요. 혼란 스러우시죠?

일단 한번 해보겠습니다.

   

아래와 같이  Task List를 여세요

   

테스크를 등록 하겠습니다.

일단 Local을 선택 하시고 넘어 갑니다.

   

그럼 아래와 같은 화면이 뜨게 되는데요! 그림에서 보이는 바와 같이 한번 등록을 해봐 주세요!...

이클립스 망가지지 않으니까요. 일단 한번 해보세요!

입력후 저장을 하게 되시면 위와 같이 New Task가 생길 겁니다. Task 제목이 나오는 것이니 사람마다 다르겠죠?

더블 클릭을 하면 아래와 같은 화면이 나옵니다. Activate task to edit context 를 클릭 합니다.

Context에 등록되어 있는 파일이란 말이 좀 어색 할텐데요!

일단 아래 표시된 버튼을 눌러 보세요! 그럼 파일들이 쫙 펼쳐질 것입니다.

그리고? 이제 작업을 진행해 주세요!...뭐 이런 저런 파일들을 열고 작업을 하시겠죠?

이제 아래 버튼을 클릭해 주세요. 그럼..꺅~

지금까지 작업했던 파일들만 리스트업 되는 것을 볼 수 있습니다.

지금은....뭐...아~~ 뭐..좋네...하실수 있지만...지대로 사용을 해보시면 정말 좋다는 것을 아실수 있으실 겁니다.

또 새로운 태스크를 한번 만들어 보겠습니다.

이번에는 과천 서버 파일 업로드 작업 이라고 만들겠습니다.

동일한 작업을 반복하신후 다시 개발 작업을 진행 합니다.

자자 쭉쭉 작업을 합니다.

아래 소스는 xslt 작업 소스가 나왔네요^^; 암튼...작업을 합니다.

중요한건 이때! 좀전에 작업하던 알바 작업 (다오)을 하고 싶다면 알바 Task의 동그란 점을 클릭하여 Context를 활성화 시키면

아래 처럼 이클립스의 네비게이터엔 아까 작업했던 파일 리스트가 짠하고 나온다는 겁니다.

캬~ 죽입니다.

정말 한번 사용해 보세요...짱입니다.

SI고 SM이고 어떤 업무가 되시던 간에 정말 좋을껍니다.

후~ 나만 알고 싶다는^^;

간단한 스케쥴 관리도 가능 합니다.

아래와 같이 어떤한 업무 Task가 있을때 이 일을 언제까지 마무리 해야 하는지 날을 정하고 완료 여부를 체크 할 수 있습니다.

그럼 Task 가 많이 있을때 완료된 Task 는 나오지 않게도 할 수 있습니다.

   

좀 급하게 쓰는 바람에 설명이 좀 거시기 합니다.

하지만 Mylyn 이 궁금해서 미칠것 같은 분이 보신다면...후~

이런건가? 하고 사용하시는데 도움이 되실꺼라 생각하며!

올려 봅니다.

 

출처 -  http://479lgs.blog.me/150086658643

Posted by linuxism
,

워드에서 티스토리 작성할 수 있다는 건 알았지만 귀차니즘 때문에 이제야 연결한다.

컴퓨터를 하다 보면 화면 캡처(갈무리) 를 자주하게 되는데… TISTORY 같은 경우는 캡처한 사진을 올릴 경우…캡처 된 그림 저장 à TISTORY에서 파일 올리기 à 올린 후 파일 지움 … 어찌보면 간단하지만 많은 화면을 캡처해서 저장하고 싶은 경우 엄청 귀찮은 과정임 …. -_-그래서 나 같은 경우는 원노트나 워드에 캡처한 걸 바로 붙여 넣기를 해서 넘어 가게 된다..

적용해보니 ~

  • 캡처한 사진을 저장하지 않고 워드에 바로 붙여넣기/편집/자르기가 바로 바로 적용 가능하니깐 글 작성 시간 단축됨 ㅋ
  • TISTORY에서 글을 작성하다 보면 글머리 기호가 내가 원하는 대로 제어가 안되는 경우가 있어 불편 했는데 Word를 사용함으로 극~뽁! ^^
  • 다양한 글꼴 사용 가능 ㅎ (TISTORY에서 글꼴이 제한적) 등 다양한 Word 기능을 그대로 사용 가능하니 좋음
    --> 근데...!!!!  블로그에 게시하고 게시한 글을 봐보니...... 내가 사용했던 글꼴 적용이 안된다 . 티스토리에서 제공되지 않은 글꼴은 적용이 안되고 제공되는 걸로 변경되서 적용이 되는듯 ...;; 기타 다른 기능도 ..... word 에 작성한것 처럼 적용되지 않는 부분이 몇몇 있음.... ;;;;;;;;;;;;;;;
    그래도 캡처그림 바로 복사 가능한 기능으로 만족하자^^; 

 

  • 사용하기 전에 BlogAPI 사용 설정이 되어 있나 확인 해야함
    • 환경설정 – BlogAPI에 들어가서

 

  • 사용 중인지를 확인한다, 그리고 BlogAPI 주소를 확인 한다

    (나도 처음엔 이 부분이 사용해제된 상태여서 그런지.. Word에서 블로그 계정이 등록 할 수 없다는 에러가 떴음. 알고 보니 TISTORY에서 환경 설정이 필요했던 것…)

 

  • BlogAPI를 이용해서 Word2010 이랑 연결해보자
    • Word의 [파일]탭 부분 – [새로 만들기]에 보면 [블로그 게시물]이 있음 ..
    • 선택 하고 [만들기] 클릭

     

     

     

  • 그럼 블로그 계정 등록 창이 뜨는데…. [지금 등록]을 클릭 하자

     

     

  • 블로그 공급자 선택하라는 창이 나옴 à [기타]로 설정하고 [다음] 클릭

     

     

  • 계정을 등록 한다
    • API는 MetaWebLog 를 그냥 사용하면 되고,
    • 블로그 게시 URL에 …아까 TISTORY에서 봤던 BlogAPI 주소를 등록하자
    • 그리고 로그인할때 사용하는 사용자 계정과 비번을 입력하고 [확인]을 누르면 끝!!

    • 또 나는 암호 저장도 해두었음(안하면 글 쓸때 마다 로그인해야함^^;)

     

  • 그럼 Word 탭에 이런 화면이 나옴

     

  • 글을 게시해보자 ~ ㅎㅎ
    • 나의 TISTORY특정 카테고리 밑에 글을 쓰고 싶다면 [범주 삽입]을 클릭 한다

    • 그럼 이런식으로 보임:D

       

  • 원하는 범주 선택하고 글을 쓰고 [게시]를 누르면 웹상 나의 TISTORY에 글이 올라 간다 ㅎㅎ 참 편리

     

     

  • 추가적으로 블로그에 글을 많이 작성한다면 word에서 즐겨찾기를 추가해 두자
    • [파일]탭에 들어가서 [옵션]에 들어가면… 밑에 [빠른 실행 도구 모음]을 클릭

       

    • [다음명령에서 명령 선택]에서 [파일 탭]에 있는 블로그로 보내기를 빠른 실행 도구 모음에 추가 한다

       

    • 그럼 상단에 블로그로 보내기 작은 아이콘이 생성됨

       

      클릭하면 똑같이 이렇게 보임 ㅋ


출처 - http://yoonka.tistory.com/222

================================================================================================

티스토리에 접속하지 않고도 언제 어디서나 블로깅을 할 수 있다면, 혹은 평소 글을 쓰는데 익숙했던 프로그램으로 블로깅을 하길 원한다면 티스토리의 BlogAPI 기능을 이용해 보세요. 어디서든지 글을 쓰고 싶을 때 미리 작성을 해놓은 후 그 글들을 티스토리 블로그에 원격 블로깅을 할 수 있답니다.

BlogAPI란 원격으로 자신의 블로그에 글을 남길 수 있도록 도와주는 API를 말하는데요, 여러가지 다양한 형식이 나와있습니다. 티스토리는 그 중 Blogger v1, MetaWeblog, Movable Type을 지원하고 있습니다. 

원격 블로깅을 지원하는 프로그램들은 여러가지가 있습니다. MS Word 2007, MS Live Write, 스프링노트, ecto등이 있습니다. 각 프로그램에서 티스토리의 BlogAPI를 사용하여 글을 남기는 방법도 하단의 링크를 통해 제공하고 있습니다.


[티스토리 BlogAPI 사용설정]

먼저 BlogAPI를 사용하기 위해서는 관리자 화면에서 해당 기능에 대한 설정을 해야합니다.

 1. 로그인한 후 관리자 화면의 글관리 > 글설정 > BlogAPI 메뉴로 들어가세요.

 2. API 사용 설정 항목에서 '사용' 버튼을 클릭하면 BlogAPI를 사용할 수 있게 됩니다.


  3. API 정보에 나와있는 API 주소가 BlogAPI를 사용할 수 있는 주소입니다. 그 아래에 있는 API ID 옆을 보면 숫자가 있는데요, 그 숫자가 티스토리의 각 블로그별로 구분을 짓는 API ID 값입니다. 대부분의 BlogAPI를 사용하는 프로그램들은 이 API ID를 자동으로 인식하지만 일부 인식하지 못하는 프로그램들이 있는데 그 경우 이 API ID값을 기억해 놓으셨다가 입력해주시면 됩니다.

여기까지 설정이 완료되었습니다. 이제 본격적으로 BlogAPI를 사용할 준비가 되었습니다.

원격 블로깅을 지원하는 프로그램별로 BlogAPI를 사용할 수 있는 방법을 설명하였습니다. 사용하시고자 하는 프로그램의 방법을 알아보세요~


BlogAPI를 활용한 티스토리 원격 블로깅



안녕하세요. TISTORY입니다.

티스토리에 접속하지 않고도 언제 어디서나 블로깅을 하실 수 있어요! 원격 블로깅을 지원하는 프로그램을 이용하면 어디서든지 글을 쓰고 싶을 때 미리 작성을 해놓은 후 그 글들을 티스토리 블로그에 손쉽게 블로깅 할 수 있습니다. 티스토리에서 지원되는 API프로그램들중 MS WORD 2007를 사용하여 티스토리에 글을 남기는 방법을 알아보겠습니다.

[MS WORD 2007 사용설정]

STEP 1. MS WORD 2007에 티스토리 연결하기

① Microsoft Office 단추 를 클릭한 다음 새로 만들기를 클릭합니다.


② 새 블로그 게시물 을 선택하고 만들기 버튼을 클릭합니다.

사용자 삽입 이미지


③ MS WORD 2007에 블로그 계정이 등록되지 않은 상태이면 새 블로그 계정을 등록 하도록 안내합니다. 지금 등록을 선택하신후, 블로그 타입 설정에서는 블로그 항목에서 기타를 선택하시면 됩니다.



④ 새 계정에서 티스토리 원격 블로깅을 위한 환경 설정을 합니다.
사용자 삽입 이미지

1) API : 티스토리는 MetaWebLog 를 선택
2) 블로그 게시 URL : 자신의 블로그 API주소를 입력
3) 사용자 이름 : 티스토리에 로그인하시는 아이디를 입력
4) 암호 : 티스토리에 로그인하시는 암호를 입력


⑤ 블로그 계정 등록이 완료되면 에디터 화면이 나타납니다. 상단의 계정관리를 클릭하면 등록된 블로그 계정을 확인하실 수 있습니다. 계정을  추가하거나 변경하실 수 있어요!




STEP 2. 티스토리에 글보내기

① MS WORD 2007에서 작성한 글을 티스토리에 보내려면 글을 작성하신후 , 범주삽입을 클릭하시면 카테고리를 설정하실 수 있습니다. 범주삽입을 하지 않고, 나중에 티스토리에서 글수정을 통해 카테고리 변경을 하실 수 있습니다.

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


② 게시를 클릭하면 게시(공개)와 초안으로 게시(비공개)가 나타납니다. 공개여부에 따라 클릭하시면 MS WORD 2007에서 작성한 글이 티스토리 블로그에 올라가게 됩니다.  
사용자 삽입 이미지


지금까지 MS WORD 2007를 이용하여 티스토리 블로그로 원격 블로깅을 하실 수 있는 방법을 살펴보았습니다.


감사합니다.

'기타' 카테고리의 다른 글

저작권 표시  (0) 2012.08.29
zip code 란  (0) 2012.03.21
여의도맛집 본가참치  (0) 2012.03.08
입력 방식 편집기(input method editor, IME) & ctfmon.exe  (0) 2012.02.05
2012년 정보처리기사 시험일정  (0) 2011.12.14
Posted by linuxism
,

Subversion 설치 매뉴얼

modified 2013.06.07

 

 

설치 환경

install platform : linux

linux에는 기본적으로 subversion 패키지를 포함하고 있어 따로 다운로드 없이 명령만으로 설치 가능하다. 최신 버전으로 설치하려면 다운받은 뒤 설치해도 된다.

subversion이 설치 되어 있는지 확인한다.

$ rpm -qi subversion

 

기존 subversion 삭제

$ rpm -e subversion

 

 

Subversion 소스코드 설치

홈페이지 : http://subversion.apache.org

소스코드 다운로드 : http://apache.tt.co.kr/subversion/subversion-1.7.3.tar.bz2

 

$ tar -jxvf subversion-1.7.3.tar.bz2

$ cd subversion-1.7.3

 

설치 도중에 sqlite 소스코드를 요구한다. 다음에서 다운로드 하여 subversion과 동일한 디렉토리에 둔다.

소스코드 다운로드 : http://www.sqlite.org/sqlite-amalgamation-3071000.zip

 

$ unzip sqlite-amalgamation-3071000.zip

$ mv sqlite-amalgamation-3071000 sqlite-amalgamation

 

$ ./configure --prefix=/usr/local/subversion --with-zlib \

--with-apxs=/usr/local/apache2/bin/apxs \

--without-berkeley-db

$ make

$ make install

 

 

Subversion 패키지 설치

$ yum install subversion

물론 이미 설치 되어 있다면 설치할 필요없다.



svn user 추가

svn를 관리할 사용자를 추가한다.

root로 관리한다면 굳이 추가할 필요는 없다. root로 관리 시 sasl 사용 및 소유가 다른 디렉토리나 파일을 import 할 수 있는 장점이 있다.

 

$ useradd svn

$ passwd svn

 

 

저장소(Repository) 생성

/home/svn 디렉토리를 SVN 서버의 홈으로 사용한다.

그리고 저장소를 생성한다.

$ su - svn

$ svnadmin create --fs-type fsfs /home/svn/project

$ chown -R svn:svn /home/svn/project


* SElinux를 꺼야 user 들이 디렉토리 및 파일을 생성할 수 있다.

# vi /etc/sysconfig/selinux

SELINUX=permissive

재부팅


 

권한 설정 및 사용자 등록

인증된 사용자들에게만 사용을 허가하기 위해서 /home/svn/project/conf/svnserve.conf 파일을 수정

 

$ vi /home/svn/project/conf/svnserve.conf
파일의 중간에 보면 [general] 이 보이는데 이 부분에 추가를 해줍니다.
[general]

anon-access = none

auth-access = write

password-db = passwd

 

이제 사용자를 등록하기 위해 /home/svn/project/conf/passwd 파일 수정

$ vi /home/svn/project/conf/passwd

[users]

svnuser01 = 1234


이런식으로 추가해주면 됩니다. 사용자계정은 svnuser01 암호는 1234가 된다.

 


sasl 사용

realm repository 도메인 (외부에서 볼 때의 이름)이다.

 

[general]
anon-access = none
auth-access = write
# password-db = passwd
# authz-db = authz
realm = repositryname

 

[sasl]
use-sasl = true
#min-encryption = 0
#max-encryption = 256

 

개인이 사용 할 때는 password-db 를 사용하여 아이디와 비밀번호 설정을 /home/svn/project_name/conf/passwd 파일을 열어서 아이디 = 비밀번호 형식으로 관리하면 쉽다. 하지만 비밀번호가 노출되기 때문에 찝찝하면 sasl을 사용한다.



sasl 인증 추가 (아이디 비밀번호 추가)

saslpasswd2 명령 후에 비밀번호 입력이 뜬다. 그 때 비밀번호를 입력한다.

 -u 옵션에 의해 설정되는 도메인명은 svnserve.conf 파일의 realm 설정값과 동일하게 한다.

$ saslpasswd2 -c -u repositryname 아이디

Password:

Again (for verification):

sasldblistusers2 는 등록된 아이디의 목록을 볼 수 있다. 물론 비밀번호는 볼 수 없다.

$ sasldblistusers2

아이디@repositryname: userPassword


삭제(참고 - http://www.gsp.com/cgi-bin/man.cgi?topic=saslpasswd2)

$ saslpasswd2 -d -u repositryname 아이디



init 스크립트 만들기

부팅시 마다 subversion 서버를 실행하려면 service 스크립트를 만들어야 한다.
그리고 /etc/init.d/subversion 을 만들고 아래와 같이 입력한다.

 

#!/bin/bash
#
# . /etc/rc.d/init.d/subversion
#
# Start the Subverion Daemon
#
# chkconfig: 2345 90 10
# description: Subversion Daemon
# processname: svnserve
source /etc/rc.d/init.d/functions

[ -x /usr/bin/svnserve ] || exit 1

RETVAL=0
prog="svnserve"
desc="Subversion server"
OPTIONS="--threads --root /home/svn"

start() {
echo -n $"Starting $desc ($prog): "
daemon $prog -d $OPTIONS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
echo
}

stop() {
echo -n $"Shutting down $desc ($prog): "
killproc $prog
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
RETVAL=$?
;;
condrestart)
[ -e /var/lock/subsys/$prog ] && restart
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart}"
RETVAL=1
esac

exit $RETVAL
EOF

 

그 다음 실행 권한을 주고 서비스로 등록한다.

$ chmod +x /etc/init.d/subversion
$ cd /etc/init.d
$ chkconfig --add subversion && chkconfig subversion on

 

 

서버 시작

서비스 모드

$ service subversion start


데몬 모드

$ svnserve -d -r /home/svn

 

 

저장소(Repository) 내 디렉토리 생성

* repository 내 디렉토리 생성은 아래와 같이 CLI에서 실행해도 되지만 다른 svn client로도 생성가능하다.


vi 에디터 설정

$ vi /home/svn/.bash_profile

SVN_EDITOR=/usr/bin/vim

export SVN_EDITOR

$ source /home/svn/.bash_profile

 

기본 Repository 생성

$ svn mkdir svn://localhost/project/trunk

 

editor가 뜨면 :q 로 빠져나옴

continue(C) 로 빠져나옴

인증영역이 나오면 svn(또는root) svn사용자 암호 입력

 

아래와 같이 vim이 실행되면 :q! 로 빠져나간다.

--This line, and those below, will be ignored--

A    svn://localhost/project/trunk

 

빠져나오면 아래와 같은 메시지가 나오는데 c 를 입력하면 디렉토리가 생성된다.

$ svn mkdir svn://localhost/project/trunk

 

로그 메시지가 변경되지 않았거나 지정되지 않았습니다

취소(A), 계속(C), 수정(E):

c

인증 영역(realm): <svn://localhost:3690> repositryname

'svn'의 암호:

인증 영역(realm): <svn://localhost:3690> repositryname

사용자명:svnuser01

'svnuser01'의 암호:

 

------------------------------------------------------------

주의! 인증정보 영역:

 

   <svn://localhost:3690> repositryname

 

에 대한 당신의 비밀번호는 디스크에 암호화되어 저장되지 않습니다.

가능하면, 비밀번호를 암호화하여 저장하도록 설정을 바꾸십시오.

자세한 것은 문서를 참조하세요.

 

이 주의 문구를 다음에 보이지 않게 하려면, 'store-plaintext-passwords'

설정을 'yes' 혹은 'no'로 지정하면 됩니다. 설정 파일은 다음과 같습니다.

'/home/svn/.subversion/servers'

------------------------------------------------------------

비밀번호를 평문으로 저장하겠습니까 (yes/no)?no

 

커밋된 리비전 1.

 

 

다음은 sasl로 사용자를 등록한 경우이다.

sasl 사용자 인증은 root로 접속 해야만 다음 작업이 가능하다(?)

 

Log message unchanged or not specified

a)bort, c)ontinue, e)dit

c

인증 영역(realm): <svn://localhost:3690> repositryname

'root'의 암호:

인증 영역(realm): <svn://localhost:3690> repositryname

사용자명: 아이디(sasl에서 등록한 아이디)

'아이디'의 암호:

 

------------------------------------------------------------

주의! 인증정보 영역:

 

   <svn://localhost:3690> repositryname

 

에 대한 당신의 비밀번호는 디스크에 암호화되어 저장되지 않습니다.

가능하면, 비밀번호를 암호화하여 저장하도록 설정을 바꾸십시오.

자세한 것은 문서를 참조하세요.

 

이 주의 문구를 다음에 보이지 않게 하려면, 'store-plaintext-passwords'

설정을 'yes' 혹은 'no'로 지정하면 됩니다. 설정 파일은 다음과 같습니다.

'/root/.subversion/servers'

------------------------------------------------------------

비밀번호를 평문으로 저장하겠습니까 (yes/no)?no

 

커밋된 리비전 1.

 

/root 디렉토리 밑에 .subversion 디렉토리가 생성된다.

이 주의 문구를 다음에 보이지 않게 하려면, /root/.subversion/servers에서 store-plaintext-passwords'의 설정을 'no'로 지정한다.

 

 

동일한 방법으로 branches tags를 생성한다.

 

$ svn list svn://localhost/project

trunk/

branches/

tags/



 

http로 접속하기

Apache가 저장소에 접근할 수 있도록 소유자와 권한을 바꿉니다. Apache는 기본적으로 설치하면 nobody(또는 apache)로 실행됩니다.  http 버전 확인  # httpd -v

 

Apache 설정파일 /usr/local/apach2/conf/httpd.conf 에서 확인

User nobody(또는 apache)

Group nobody(또는 apache)

 

# cd /home/svn
/home/svn# chown -R nobody.nobody sample

 

/usr/local/apach2/conf/httpd.conf에서 dav, dav_svn 모듈이 설정되어 있는지 확인 합니다. 주석처리 되어 있으면 주석을 없애고 없다면 아래 모듈들을 추가합니다. 보통 dav_module은 기본으로 설정 되어 있습니다.

LoadModule dav_module         modules/mod_dav.so
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

 

httpd.conf 파일 맨 뒷부분에 아래와 같이 추가 합니다. 설정을 저장한 뒤에 Apache를 재시작 합니다.

<Location /svn/sample>
  DAV svn
  SVNPath /home/svn/sample
</Location>

이렇게 설정을 하고 웹 브라우저에서 http://(Subversion Apache를 설치한 IP주소 또는 도메인)/svn/sample 로 접속을 합니다.

 

웹 브라우저에 아래와 같은 화면이 보이면 Subversion 저장소와 아파치가 잘 동작하고 있는 것입니다. 아래와 같이 나오지 않는다면 아파치 설정과 저장소의 소유자와 그룹을 다시 한 번 살펴보시기 바랍니다.

Revision 0: /
 
--------------------------------------------------------------------------------
Powered by Subversion version 1.0.0.

위와 같이 설정하면 누구든지(Anonymous) 웹 브라우저로 저장소를 볼 수 있고 Subversion 클라이언트를 이용해서 소스를 체크아웃, 익스포트, 커밋을 할 수 있습니다.

 

이렇게 실행 시켰으면 "# svn checkout http://(Subversion서버 IP또는 도메인)/svn/sample sample"을 입력합니다. "Checked out revision 0."이 나오면 제대로 설정이 된 것입니다. 아무나(Anonymous) 저장소에 접근해서 체크아웃, 커밋 등을 할 수 있습니다


* format 파일에 대한 permission denied 가 발생할 경우 /home/svn 디렉토리에 대한 퍼미션을 수정한다.
# chmod -R 755 /home/svn

 

Apache에서 ID로 사용자 인증

이제 ID를 통해 인증된 사용자만 소스를 체크아웃하고 커밋 할 수 있도록 설정 하겠습니다.
아파치에 사용할 패스워드 파일을 만듭니다. "# htpasswd -c 패스워드파일명 사용자ID"

# cd /usr/local/apache/conf
/usr/local/apache/conf# ../bin/htpasswd -c passwd sampleuser
New password:
Re-type new password:

"# htpasswd -c"는 패스워드 파일을 처음 만들 때의 옵션이고 사용자를 추가하고 싶을 때에는 "# htpasswd 패스워드파일명 사용자ID" 로 해주면 됩니다.

 

방금 수정했던 /usr/local/apache2/conf/httpd.conf 파일의 맨 마지막 부분에 추가한 부분을 다시 설정 합니다.

<Location /svn/sample>
  DAV svn
  SVNPath /home/svn/sample
  AuthType Basic
  AuthName "pyrasis's Repository"
  AuthUserFile /usr/local/apache2/conf/passwd
  Require valid-user
</Location>

4줄이 추가 되었습니다. AuthType Basic Apache 기본 패스워드 인증입니다. AuthName은 패스워드가 걸린 웹페이지에 뜨는 로그인창에 나올 문장입니다. AuthUserFile은 방금 전 만들었던 아파치 패스워드 파일입니다. 절대경로로 적어주어야 합니다. Require valid-user는 인증된 사용자만 볼 수 있게 한다는 것입니다.

 

이제 웹 브라우저로 다시 sample저장소로 접속해 보면 ID와 패스워드를 묻는 창이 나올 것입니다. 만든 ID와 패스워드를 입력하면 저장소를 볼 수 있습니다. 이렇게 되면 체크아웃, 커밋등을 할 때 ID와 암호를 물어보게 됩니다.

 

웹 브라우저로 저장소를 보는 것과 체크아웃은 아무에게나(Anonymous) 할 수 있게 하고 커밋은 지정된 사용자만 할 수 있도록 하려면 httpd.conf에서 설정한 부분을 아래와 같이 바꾸어 주면 됩니다.

<Location /svn/sample>
  DAV svn
  SVNPath /home/svn/sample
  AuthType Basic
  AuthName "pyrasis's Repository"
  AuthUserFile /usr/local/apache2/conf/passwd
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>
</Location>

이렇게 하면 저장소를 보거나 체크아웃을 할 때는 ID와 패스워드를 묻지 않고 커밋이나 디렉토리. 파일복사 등의 저장소를 변경하는 작업을 할 때에는 ID와 패스워드를 물어보게 됩니다.

 

"# svn checkout http://(Subversion서버 IP또는 도메인)/svn/sample sample" 을 입력하면 ID와 패스워드를 물어옵니다. ID와 패스워드를 입력하고 나서 "Checked out revision 0." 이 출력되면 제대로 설정 된 것입니다

 

 

https로 접속하기

위에 http 설정과 대부분 동일하다.

https 서비스가 가능하도록 openssl로 서버인증서를 생성한다

# cd /usr/local/apache2/conf

# openssl req -new -x509 -days 3650 -sha1 -newkey rsa:1024 -nodes -keyout server.key -out server.crt -subj '/O=company/OU=dev/CN=www.company.com'

 

openssl에 대한 자세한 사항은 여기 참조 -> http://linuxism.tistory.com/470


/usr/local/apache2/conf/httpd.conf에서 다음 설정 추가

include conf/extra/httpd-subversion.conf

 

아래 내용처럼 /usr/local/apache2/conf/extra/httpd-subversion.conf 파일생성

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
 
<Location /svn/sample>
  DAV svn
  SVNPath /home/svn/sample
  AuthType Basic
  AuthName "pyrasis's Repository"
  AuthUserFile /usr/local/apache2/conf/passwd
  AuthzSVNAccessFile /usr/local/apache2/conf/svnauth
  Require valid-user
</Location>

 

 

AuthzSVNAccessFile /usr/local/apache2/conf/svnauth 으로

특정 Repository나 그 하위경로에 access control을 할 수 있다.

 

* svnauth 설정.

[groups]

Team = kimbokki

 

[/]

* = r

 

[/New_Intranet]

@Team = r

 

/ <-- 상위경로에서 접근 제한을 두면 하위는 그대로 적용된다.

그러므로 상단의 설정은 / 이하로 접근 제어를 전부 풀어버리게 된다.

아이디를 통해 특정 아이디만 접근을 제어할 수 있고.

아니면 상단처럼 그룹을 지정해서 그룹단위로 접근을 제어할 수 있다.

 

[groups]

Team = kimbokki, ssjeon

 

[/]

* = kimbokki

 

[/New_Intranet]

@Team = r

 

이렇게 설정을 하게 되면, kimbokki / 이하의 모든 Repository에 대한 read권한을 가지게 된다.

ssjeon / 는 접근을 하지 못하고 /New_Intranet 이하의 Repository에 대한 read권한을 가지 된다.

 

[groups]

Team = kimbokki, ssjeon

 

[sample:/]

@Team = rw

* =

 

Team 맴버는 sample 디렉토리에 대해 읽고 쓰기가 가능하며, 이외 모든 사용자는 접근 불가한다.

 

* [/trunk/]와 [/trunk]는 다르다 [/trunk]로 해야 접근 가능하다.


* Trac을 사용할 때는 BrowseSource에서 SVN에 접근을 하게 되는데

trac.ini파일의 auth-file svnauth path를 넣어주면 같이 적용을 할 수 있다.


출처:Apache 통해 Subversion(SVN) 접근 제어.

 

 

Import

맨 처음 프로젝트를 시작할 때 저장소에 소스들을 넣어야 합니다. 이럴 때 하는 것이 import 작업입니다. sampledir 이라는 디렉토리를 만든 뒤에 그 아래 다음과 같은 간단한 소스를 작성해 보십시오.

 

import 작업은 디렉토리에 대한 퍼미션을 고려해야 한다. 따라서 svn 사용자로  소유자가 root인 디렉토리에 대해서는 import 작업이 허용 되지 않는다.

 

# mkdir sampledir

# cd sampledir

sampledir# vim sample.c

#include <stdio.h>

 

int main()

{

  printf("Sample Program Version 0.1\n");

 

  return 0;

}

 

이 소스를 저장소의 trunk 디렉토리에 import 하겠습니다. 아래 sampledir은 디렉토리입니다. 파일을 적으면 import되지 않습니다. 꼭 디렉토리를 만들고 그 디렉토리를 적어 주십시오. 저장소의 trunk 디렉토리에는 sampledir 디렉토리안의 sample.c 파일만 올라가게 되고 sampledir은 올라가지 않습니다. sampledir 아래 디렉토리를 만들었다면 그 디렉토리는 저장소의 trunk 디렉토리 아래에 올라가게 됩니다.

sampledir# cd ..

# svn import sampledir http://(Subversion 서버의 IP주소 또는 도메인)/svn/sample/trunk

import도 위에서 디렉토리를 만들었을 때 처럼 vim이 실행되게 됩니다. import되는 파일들이 표시됩니다. :q!로 닫고 c를 입력하면 import 되게 됩니다.

 

import가 제대로 되었는지 확인해 봅시다. list 명령을 이용해 trunk 디렉토리에 무엇이 있나 보겠습니다.

# svn list http://(Subversion 서버의 IP주소 또는 도메인)/svn/sample/trunk

sample.c

 

 

클라이언트 프로그램으로 접속 테스트

이클립스용 : subclipse

윈도우용 : tortoiseSVN

최초 체크아웃을 한다.
$ svn checkout svn://
서버 IP/project MyProject

 

 

기타

서버 포트 : svn - TCP 3690, http - TCP 80, https - TCP 443

방화벽으로 막혀 있는지 확인

$ nmap localhost -p1-9999

 

 

 

출처 - http://skystory.kr/655, http://donghunl.tistory.com/43

http://croute.me/483, http://freecatz.tistory.com/161, http://blog.naver.com/barami12?Redirect=Log&logNo=130028865919,  http://www.pyrasis.com/main/Subversion-HOWTO 

 




Posted by linuxism
,