얼마전 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 계정 생성
cvs 계정에 대한 암호 설정
2. /cvs 이하 디렉토리의 권한을 cvs 계정에게 준다(root 계정으로 실행)
☞ cvs 계정이 CVS서버 실행명령을 수행하고, repository의 파일을 읽을 수 있도록 권한을 부여한다.
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
추가하기 전 이 포트가 다른 서비스에 등록되지 않았나 미리 확인하고, 사용중이면 다른 포트를 사용해야 한다.
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 버튼을 클릭하면 연결된다.
나름대로 삽질하면서 배운 정보 열심히 전달하려고 노력했는데, 많은 도움이 되시길...
댓글 없음:
댓글 쓰기