1. 개요
SVN에 대해서는 몇 차례 다룬 바 있습니다.
- SVN이란?
-> /index.php/miscellaneous/1189-subversion
- OS X에서 Apache Subversion Installation
-> /index.php/miscellaneous/29-os-x-apache-subversion-installation
- Apache 웹서버 상에 SVN 설치
-> /index.php/miscellaneous/151-apache-svn
2. 설치
오늘은 SVN 클라이언트와 서버 도구를 패키지로 설치하고, svnserve를 간단히 실행해 보는 방법을 공유합니다. 아래 예시는 yum을 사용하는 CentOS/RHEL 6 계열 환경의 실행 결과입니다. 배포판이나 저장소 상태에 따라 설치되는 버전과 의존성 목록은 달라질 수 있습니다.
설치 여부 확인
먼저 SVN이 설치되어 있는지 확인합니다.
# svn -bash: svn: command not found
설치되어 있지 않으므로 yum을 이용하여 설치합니다.
# yum install subversion Loaded plugins: fastestmirror Determining fastest mirrors * base: mirror.oasis.onnetcorp.com * extras: mirror.oasis.onnetcorp.com * updates: mirror.oasis.onnetcorp.com base | 3.7 kB 00:00 base/primary_db | 4.6 MB 00:01 extras | 2.9 kB 00:00 extras/primary_db | 33 kB 00:00 updates | 3.4 kB 00:00 updates/primary_db | 3.2 MB 00:01 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package subversion.x86_64 0:1.6.11-15.el6_7 will be installed --> Processing Dependency: perl(URI) >= 1.17 for package: subversion-1.6.11-15.el6_7.x86_64 --> Processing Dependency: libneon.so.27()(64bit) for package: subversion-1.6.11-15.el6_7.x86_64 --> Running transaction check ---> Package neon.x86_64 0:0.29.3-3.el6_4 will be installed --> Processing Dependency: libgnutls.so.26(GNUTLS_1_4)(64bit) for package: neon-0.29.3-3.el6_4.x86_64 --> Processing Dependency: libproxy.so.0()(64bit) for package: neon-0.29.3-3.el6_4.x86_64 --> Processing Dependency: libpakchois.so.0()(64bit) for package: neon-0.29.3-3.el6_4.x86_64 --> Processing Dependency: libgnutls.so.26()(64bit) for package: neon-0.29.3-3.el6_4.x86_64 ---> Package perl-URI.noarch 0:1.40-2.el6 will be installed --> Running transaction check ---> Package gnutls.x86_64 0:2.8.5-18.el6 will be installed --> Processing Dependency: libtasn1.so.3(LIBTASN1_0_3)(64bit) for package: gnutls-2.8.5-18.el6.x86_64 --> Processing Dependency: libtasn1.so.3()(64bit) for package: gnutls-2.8.5-18.el6.x86_64 ---> Package libproxy.x86_64 0:0.3.0-10.el6 will be installed --> Processing Dependency: libproxy-python = 0.3.0-10.el6 for package: libproxy-0.3.0-10.el6.x86_64 --> Processing Dependency: libproxy-bin = 0.3.0-10.el6 for package: libproxy-0.3.0-10.el6.x86_64 ---> Package pakchois.x86_64 0:0.4-3.2.el6 will be installed --> Running transaction check ---> Package libproxy-bin.x86_64 0:0.3.0-10.el6 will be installed ---> Package libproxy-python.x86_64 0:0.3.0-10.el6 will be installed ---> Package libtasn1.x86_64 0:2.3-6.el6_5 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================== Package Arch Version Repository Size ================================================================================================================================== Installing: subversion x86_64 1.6.11-15.el6_7 updates 2.3 M Installing for dependencies: gnutls x86_64 2.8.5-18.el6 base 347 k libproxy x86_64 0.3.0-10.el6 base 39 k libproxy-bin x86_64 0.3.0-10.el6 base 9.0 k libproxy-python x86_64 0.3.0-10.el6 base 9.1 k libtasn1 x86_64 2.3-6.el6_5 base 238 k neon x86_64 0.29.3-3.el6_4 base 119 k pakchois x86_64 0.4-3.2.el6 base 21 k perl-URI noarch 1.40-2.el6 base 117 k Transaction Summary ================================================================================================================================== Install 9 Package(s) Total download size: 3.2 M Installed size: 14 M Is this ok [y/N]: y Downloading Packages: (1/9): gnutls-2.8.5-18.el6.x86_64.rpm | 347 kB 00:00 (2/9): libproxy-0.3.0-10.el6.x86_64.rpm | 39 kB 00:00 (3/9): libproxy-bin-0.3.0-10.el6.x86_64.rpm | 9.0 kB 00:00 (4/9): libproxy-python-0.3.0-10.el6.x86_64.rpm | 9.1 kB 00:00 (5/9): libtasn1-2.3-6.el6_5.x86_64.rpm | 238 kB 00:00 (6/9): neon-0.29.3-3.el6_4.x86_64.rpm | 119 kB 00:00 (7/9): pakchois-0.4-3.2.el6.x86_64.rpm | 21 kB 00:00 (8/9): perl-URI-1.40-2.el6.noarch.rpm | 117 kB 00:00 (9/9): subversion-1.6.11-15.el6_7.x86_64.rpm | 2.3 MB 00:00 ---------------------------------------------------------------------------------------------------------------------------------- Total 2.4 MB/s | 3.2 MB 00:01 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : libproxy-bin-0.3.0-10.el6.x86_64 1/9 Installing : libproxy-python-0.3.0-10.el6.x86_64 2/9 Installing : libproxy-0.3.0-10.el6.x86_64 3/9 Installing : perl-URI-1.40-2.el6.noarch 4/9 Installing : libtasn1-2.3-6.el6_5.x86_64 5/9 Installing : gnutls-2.8.5-18.el6.x86_64 6/9 Installing : pakchois-0.4-3.2.el6.x86_64 7/9 Installing : neon-0.29.3-3.el6_4.x86_64 8/9 Installing : subversion-1.6.11-15.el6_7.x86_64 9/9 Verifying : libproxy-0.3.0-10.el6.x86_64 1/9 Verifying : libproxy-bin-0.3.0-10.el6.x86_64 2/9 Verifying : pakchois-0.4-3.2.el6.x86_64 3/9 Verifying : libproxy-python-0.3.0-10.el6.x86_64 4/9 Verifying : libtasn1-2.3-6.el6_5.x86_64 5/9 Verifying : gnutls-2.8.5-18.el6.x86_64 6/9 Verifying : neon-0.29.3-3.el6_4.x86_64 7/9 Verifying : perl-URI-1.40-2.el6.noarch 8/9 Verifying : subversion-1.6.11-15.el6_7.x86_64 9/9 Installed: subversion.x86_64 0:1.6.11-15.el6_7 Dependency Installed: gnutls.x86_64 0:2.8.5-18.el6 libproxy.x86_64 0:0.3.0-10.el6 libproxy-bin.x86_64 0:0.3.0-10.el6 libproxy-python.x86_64 0:0.3.0-10.el6 libtasn1.x86_64 0:2.3-6.el6_5 neon.x86_64 0:0.29.3-3.el6_4 pakchois.x86_64 0:0.4-3.2.el6 perl-URI.noarch 0:1.40-2.el6 Complete!
설치 확인
설치가 완료되었으니 실행해 봅니다. 아래처럼 사용법 안내가 나오면 클라이언트 명령어는 정상적으로 설치된 것입니다.
# svn Type 'svn help' for usage.
svnserve도 실행해 봅니다. 옵션 없이 실행하면 사용 가능한 실행 모드를 지정하라는 메시지가 출력됩니다.
# svnserve You must specify exactly one of -d, -i, -t or -X. Type 'svnserve --help' for usage.
svnserve 서비스 제어
svnserve 서비스를 시작해 봅니다.
# service svnserve start Starting svnserve: [ OK ]
중지도 확인합니다.
# service svnserve stop Stopping svnserve: [ OK ]
현재 상태를 확인합니다.
# service svnserve status svnserve is stopped
기본 포트는 3690입니다. 서비스가 실행 중인 상태라면 다음처럼 3690 포트가 LISTEN 상태로 표시됩니다.
# netstat -an | grep 3690 tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
저장소 생성
이제 저장소를 만듭니다. 예시에서는 /svn 디렉터리 아래에 welcome이라는 저장소를 생성합니다.
# mkdir /svn # cd /svn # svnadmin create --fs-type fsfs welcome # ls -l total 4 drwxr-xr-x 6 root root 4096 Dec 21 15:03 welcome
생성 후에는 conf/svnserve.conf, conf/passwd 등의 설정 파일을 수정해 접근 권한과 계정을 지정하게 됩니다. 이 글에서는 설치와 저장소 생성까지만 확인합니다.