Linux/Ubuntu2009. 4. 30. 23:08
1. cvs와 svn을 설치한다.
a. cvs 설치
$ sudo apt-get install cvs
$ sudo apt-get install xinetd
b. svn 설치
$ sudo apt-get install subversion
c. cvs2svn 설치
$ sudo apt-get install cvs2svn
d. htpasswd 설치 (cvs 계정에 사용할 암호 생성용)
$ sudo apt-get install apache2-utils

2. 일단 cvs와 svn을 위해서 계정을 추가한다.
    "시스템 - 관리 - 사용자와 그룹" 을 이용하여 cvssvn사용자를 추가하고 그룹을 사용자 그룹과 동일하게 해준다.
    그리고 보안을 위해서 로그인은 /usr/sbin/nologin으로 해준다. (페도라는 경로가 다르다. /sbin/nologin 에 존재한다.)
a. cvs는 /home/cvs를 생성하고
b. svn은 홈디렉토리를 생성하지 않는다.

3. 그리고 리파지터리를 생성한다.
a. cvs는 $ sudo cvs -d /home/cvs init
b. svn은 $ sudo svnadmin create --fs-type fsfs /home/svn/repos

4. 한번 시험적으로 체크아웃을 해본다. 현재 생성된 내용에는 계정 정보등의 환경설정만 존재한다.
a. cvs는
$ export CVSROOT=/home/cvs
$ sudo cvs co ./
b. svn은
$ svn co file:///home/svn/repos

5. 데몬 구동
a. cvs는 xinetd를 위한 cvs 파일을 생성한뒤, xinetd 서비스를 재시작한다.
    /etc/xinetd.d/cvs 파일의 server_agrs에서 빨간색은 cvs 홈디렉토리이다.
    설치시 cvs -d /home/cvs init 으로 설정한 CVSROOT 위치를 기입해준다.
$ sudo service xinetd restart 혹은
$ sudo /etc/init.d/xinetd start

$ cat /etc/xinetd.d/cvs
service cvspserver
{
     port = 2401
     socket_type = stream
     protocol = tcp
     user = root
     wait = no
     type = UNLISTED
     server = /usr/bin/cvs
     server_args = -f --allow-root /home/cvs pserver
     disable = no
}


b. svn은 svnserve를 기동한다. 데몬 구동시 -r(repo.)의 경로는 create시의
    sudo svnadmin create --fs-type fsfs /home/svn/repos 로 설정된 SVNROOT의 위치를 기입해준다.
$ svnserve -d -r /home/svn

Step 1 - Create your script.
Simply create a new file (I called mine svnserve) and type the command you’d like to run

cd /etc/init.d/ # (thanks Alfonso)
sudo vi svnserve
svnserve -d -r /home/svn/

Step 2 - Save the script in the /etc/init.d/ folder

Step 3 - Make the script executable
sudo chmod +x svnserve

Step 4 - Add the script to the boot sequence
sudo update-rc.d svnserve defaults

[링크 : http://benrobb.com/2007/01/15/howto-start-subversion-at-boot-on-ubuntu/]

6. 사용자 설정
a. cvs는 /home/cvs/CVSROOT/passwd생성해야 한다.

$ htpasswd
Usage:
        htpasswd [-cmdpsD] passwordfile username
        htpasswd -b[cmdpsD] passwordfile username password

        htpasswd -n[mdps] username
        htpasswd -nb[mdps] username password
 -c  Create a new file.
 -n  Don't update file; display results on stdout.
 -m  Force MD5 encryption of the password.
 -d  Force CRYPT encryption of the password (default).
 -p  Do not encrypt the password (plaintext).
 -s  Force SHA encryption of the password.
 -b  Use the password from the command line rather than prompting for it.
 -D  Delete the specified user.
On Windows, NetWare and TPF systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work.

/home/cvs/CVSROOT 에서 다음의 명령어를 수행한다.
$ htpasswd -c passwd [userid]
New password:
Re-type new password:
Adding password for user [userid]

다음 유저 추가시에는 -c를 제외하고 수행한다.
$ htpasswd passwd [userid]


b. svn은 /home/svn/conf/passwd수정해야 한다.

$ more /home/svn/conf/passwd
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
userid = passwd   # 이부분에 사용자 계정과 암호를 추가한다.

svn의 암호는 평문으로 들어가게 되므로 보안에 주의를 해야한다.
이것에 싫다면 svn+ssh나 apache를 이용하여 보안에 신경을 쓰도록 하는 것이 좋다.

2009/01/22 - [프로그램 사용/SVN/CVS] - cvs 서버 설치 / 복원
2009/02/26 - [프로그램 사용/SVN/CVS] - windows에 SVN 서버 설치하기
2009/05/10 - [프로그램 사용/SVN/CVS] - cvs2svn 사용방법

[링크 : https://help.ubuntu.com/8.04/serverguide/C/version-control-system.html]
[링크 : https://help.ubuntu.com/8.04/serverguide/C/cvs-server.html]
[링크 : https://help.ubuntu.com/8.04/serverguide/C/subversion.html]


'Linux > Ubuntu' 카테고리의 다른 글

ubuntu에서 compiz 돌리기  (2) 2009.06.02
우분투에는 iptable 대신 ufw가 있다!  (2) 2009.05.07
ubuntu 내장 VNC 서버 - vino-server  (0) 2009.04.30
삼바 설치하기  (0) 2009.04.29
ubuntu 9.04로 업그레이드  (0) 2009.04.28
Posted by 구차니