2007년 1월 6일 토요일

Unix에 CVS 서버 설치 & 이클립스 연결

얼마전 CVS 서버를 설치할 일이 있었는데 하필 OS가 HP-UX였다. CVS가 오픈소스여서 그런지 리눅스에 설치하는 가이드는 많지만, Unix에 설치하는 가이드는 정말 찾아 보기 힘들었다. 맨땅에 헤딩하며 물어물어 겨우 설치를 하고는 혹시 나와 같이 고민하는 분들을 위해서 정리된 가이드를 공유하고자 한다.

 

<가이드 전제조건>
- 서버OS : HP-UX 11i
- cvs 실행파일이 있는 디렉토리 : /cvs
- cvs root 디렉토리 : /cvs/repository
- cvs용 사용자 계정 : cvs

☞ 혹시 다른 OS라도 해당 OS에 맞는 명령어로 다음의 과정을 진행하면 된다.

 

 

1. cvs 계정을 생성한다(root 계정으로 실행)

    ☞ CVS 서버를 실행하고 ,관련 디렉토리에 대한 권한을 갖는 계정을 생성한다.


  $ useradd cvs

  cvs 계정 생성


  
$ passwd cvs

  cvs 계정에 대한 암호 설정

 

 

2. /cvs 이하 디렉토리의 권한을 cvs 계정에게 준다(root 계정으로 실행)

    ☞ cvs 계정이 CVS서버 실행명령을 수행하고, repository의 파일을 읽을 수 있도록 권한을 부여한다.


  
$ chown -R cvs /cvs

   cvs 계정에게 /cvs 디렉토리 이하 디렉토리에 대한 소유권 부여

 

 

3. cvs 서버 실행파일 다운로드 후, /cvs 폴더에 업로드(cvs 계정으로 실행)

    ☞ OS에 적합한 CVS 실행파일을 다운로드해 서버에 업로드한다. 컴파일된 실행파일이 아닌 소스코드를 다운로드했을 경우, 서버에서 컴파일 작업이 필요하다.

 

   -www.cvshome.org에서 cvs 실행파일(binary) 다운로드(cvs-1.11.21-HP.bin.gz)한다.

      stable 버전 중에 가장 높은 버전을 선택하는 것이 좋다.

   - 알집으로 압푹을 해제한다.  -> cvs-1.11.21-HP.bin
   - ftp프로그램으로 cvs-1.11.21-HP.bin 파일을 /cvs 폴더에 업로드한다.

     (ftp 로그인시 당연히 cvs 계정을 사용한다.)

   - cvs-1.11.21-HP.bin 파일명을 cvs로 변경한다. ->$ mv cvs-1.11.21-HP.bin cvs
   - cvs파일을 실행가능하도록 변경한다. ->
$ chmod 744 cvs

 

 

4. cvs 계정의 .profile에 CVSROOT 환경변수 등록 및 cvs 실행파일이 있는 디렉토리를 PATH에 추가(cvs 계정으로 실행)

    ☞ CVS 서버 기동시 필요한 환경을 설정하는 과정이다.

 

   완전 Unix 초보를 위한 가이드 ^^;

  $ cd   cvs 계정의 홈디렉토리로 이동

  $ vi .profile   cvs 계정의 환경설정파일(.profile) 파일 열기


   .profile 파일에 아래의 두 라인을 아랫쪽에 추가(OS에 따라 형식이 다를 수 있음)

 PATH=$PATH:/cvs:.
 export CVSROOT=/cvs/repository
  
   수정된 내용을 저장한 다음,

  $ .profile실행해 새로운 환경을 적용한다.

 

 

5. 레파지토리 구성(cvs 계정으로 실행)

    ☞ CVS에서 데이터를 저장할 레파지토리를 구성하는 과정이다.

 

  $ cvs -d /cvs/repository init
   /cvs/repository 아래에 CVSROOT 라는 디렉토리 생성되고, 그 안에 관련 파일들도 자동 생성된다.

 

 

6. (pserver 인증 방식을 위한) passwd 파일 생성 및 사용자 추가(cvs 계정으로 실행)

    ☞ CVS서버에 접속하는 클라이언트 인증을 위하여 아이디와 패스워드를 저장하는 과정으로, cvs라는 하나의 Unix 계정을 이용하여 passwd라는 파일 안의 정보만으로 인증하는 pserver 인증방식만을 설명한다.

 

   - /cvs/repository/CVSROOT에 passwd라는 파일 생성(기본적으로 파일이 없다)
   - htpasswd라는 명령을 이용하여 사용자(cvs client)와 암호화된 패스워드 생성

     (이 명령을 실행했을 때 없다면, find 명령으로 찾는다)
    $ htpasswd -nb tom 123   -> htpasswd -nb [ID] [password]
     위의 명령은 'tom'이란 아이디에 '123'이라는 패스워드를 사용하겠다는 명령이다.

     그러면 아래와 같은 결과가 화면에 보인다.

     tom:7gSK6kHT4RJ.A

     (같은 패스워드를 반복 실행해도 다른 결과가 나오나 인증에는 문제가 없다 ^^)

 

   - 위의 내용을 터미널에서 복사한 다음, 그 뒤에 :cvs(Unix 사용자계정)를 붙여서 위에서 만든 passwd라는 파일에 차례로 사용자당 한 라인씩 추가시킨다. 생성할 클라이언트 아이디가 많고, 패스워드를 잃어버릴 때마다 관리하기가 귀찮다면 그냥 동일한 암호화된 패스워드를 복사해서 붙여 넣어도 상관없다. 다음은 그 예다.
    $ cat passwd
    tom:7gSK6kHT4RJ.A:cvs
     
ann:7gSK6kHT4RJ.A:cvs

     이렇게 되면 'tom'과 'ann'이란 아이디에 '123'이라는 패스워드를 사용할 수 있다.

 

 

7. cvs server에 remote access를 위한 환경 설정(root 계정으로 실행)

    ☞ CVS 서버가 원격 클라이언트의 접속을 받을 수 있도록 포트를 설정하는 과정이다. 중간에 방화벽이 있을 경우에는 네트웍 담당자에게 방화벽의 포트도 열어 주도록 요청해야 한다.(방화벽은 잘 몰라서 패스 ^^;)


   - /etc/services 파일에 아래의 줄 추가(2401 포트로 tcp 서비스 등록)
     cvspserver 2401/tcp

      추가하기 전 이 포트가 다른 서비스에 등록되지 않았나 미리 확인하고, 사용중이면 다른 포트를 사용해야 한다.


   - /etc/inetd.conf 파일에 아래의 줄 추가(CVS 서비스가 등록되어야 함)
     cvspserver stream tcp nowait root/cvs/cvscvs--allow-root=/cvs/repositorypserver

 

    ->/cvs/cvs: /cvs 디렉토리의 cvs 실행파일

    ->cvs: 위의 cvs 실행파일을 실행하는 Unix 계정
    ->/cvs/repository: CVS ROOT 디렉토리

    나머지 설정에 관한 내용은 Unix를 잘 모르는 관계로 패스~

 

 

8. 7.에서 설정한 환경 적용(root 계정으로 실행)

    ☞ 설정준비가 다 되었으니, 그것을 실제로 적용하는 과정이다.

 

  $ ps -ef | grep inetd
   이 명령을 이용해 inetd의 프로세스ID 확인


  $ kill -HUP [inetd 프로세스ID]
   inetd 데몬 재기동. 이렇게 하면 설정한 내용이 실제로 적용된다.

   한방에 kill -HUP inetd 형태로 적용하면 좋으나, HP-UX는 프로세스ID로 처리해야 하는 모양이다.

 

 

9. 이클립스에서 cvs 연결

    ☞ 다른 CVS 클라이언트도 가능하겠지만, 일단 이클립스로 설명한다.


   [CVS Repository Exploring] Perspective를 Open한다
   New > Repository Location 선택
   - Host : cvs가 설치된 서버의 IP
   - Repository Path(CVSROOT) : /cvs/repository
   - User : tom (6.에서 생성한 아이디)
   - Password : 123 (6.에서 사용한 패스워드)
   - Connection type : pserver
   - Use Default Port : 선택(7.에서 설정한 2401 포트)

      (7.에서 2401 외에 다른 포트를 사용했다면 그 포트를 직접 입력한다)


   위와 같이 입력한 후 Finish 버튼을 클릭하면 연결된다.

 

 

 

나름대로 삽질하면서 배운 정보 열심히 전달하려고 노력했는데, 많은 도움이 되시길...

 

댓글 없음:

댓글 쓰기