gnusraun

SVN 설치하기 및 사용방법 본문

DevOps/SVN

SVN 설치하기 및 사용방법

gnusraun 2023. 5. 13. 20:28
728x90

SVN 설치 및 사용 방법에 대한 정의

** centOS7 기준

 

:: 설치 리스트 확인

$ yum list subversion

 

 

:: SVN 설치

$ yum install -y subversion

 

 

:: 설치 확인

$ svn --version 또는 rpm -qa | grep subversion

 

 

:: SVN 최상위 파일 경로 생성 및 실행

1) 원격저장소를 저장할 최상위 폴더 생성

$ cd /

$ mkdir svn_repos

 

2) SVN 원격서버 루트 경로 지정

$ vi /etc/sysconfig/svnserve

OPTIONS=”—threads —root /svn_repos”

 

3) SVN 서비스 포트 방화벽 해제 설정 (기본포트 3690)

$ sudo firewall-cmd —permanent —zone=public -add-port=3690/tcp

$ sudo firewall-cmd —reload

 

4) SVN 실행

$ systemctl start svnserve.service 실행

$ systemctl stop svnserve.service 중지

$ systemctl restart svnserve.service 재실행

 

5) SVN 서비스 실행 및 확인

$ netstat -anp | grep svnserve 서브버전의 서비스 포트를 확인 

$ ps -ef | grep svn 서브버전의 프로세스 동작여부 확인 

 

 

:: SVN 저장소 생성 (프로젝트 소스를 넣을 저장소)

1) /svn_repos 디렉토리 내에 저장소 만들기

$ cd /svn_repos

$ svnadmin create —fs-type fsfs 저장소명

// 저장소 생성시 warning이 발생 하지만 폴더는 생성 됨
svnadmin: warning: cannot set LC_CTYPE locale
svnadmin: warning: environment variable LC_CTYPE is UTF-8
svnadmin: warning: please check that your locale name is correct

// 해결 방안 해당 저장소 삭제 후 export 입력 후 저장소 재생성
export LC_ALL=C

 

 

:: SVN 설정

1) 기본 설정

$ vi /conf/svnserve.conf

** 사용하지 않을 경우 반드시 none으로 지정
** 주석으로만 처리할 경우 SVN E220001 : Itemis not readable 오류 발생
anon-access : 로그인 하지 않은 사용자(비인증 계정)에게 접근권한을 설정하는 부분. read, write, none 세가지 값을 설정 할 수 있다.

auth-access : 로그인한 사용자(인증 계정)에 대한 접근 권한을 설정하는 부분. read, write, none 세가지 값을 설정 할 수 있다.
passwd-db : 저장소에 접근할 사용자 계정과 비밀번호를 관리할 파일의 이름을 지정하는 설정이다. 기본 파일명은 passwd 이며, 다른 이름을 사용할 수 있다.
authz-db : 파일과 디렉토리에 대한 접근 권한을 관리하는 파일의 이름을 지정하는 설정이다. 기본 파일명은 authz 이며, 다른 이름을 사용할 수 있다.
realm : 인증할 때 보여주는 간단한 저장소 설명이며, 생략 가능하다.
none : 접근 권한 없음, read : 읽기 권한, write : 쓰기 권한

 

2) 저장소에 접근할 계정의 아이디 비밀번호 추가

$ vi /conf/passwd

[users]
아이디 = 비밀번호

 

3) 저장소에 접근할 계정의 권한 추가

$ vi /conf/authz

[/] authz(권한) 파일 저장소에 접근할 계정정보 추가
* = r #TestRepo1저장소의 루트경로에 모든 사용자가 read 할수 있는 권한을 부여
root = rw #TestRepo1저장소의 루트경로에 root 계정은 read, write 권한 부여
admin = rw #TestRepo1저장소의 루트경로에 admin 계정은 read, write 권한 부여

ex) 아래 코드 추가
[/]
user = rw

 

 

 

:: SVN 저장소 확인

$ svn list svn://ip 또는 도메인 주소/저장소명

$ svn info svn://ip 또는 도메인 주소/저장소명

* 허가거부일 경우 (보안상 막고있는 상태)
svn: E000013: Unable to connect to a repository at URL 'svn://127.0.0.1/xxx' 
svn: E000013: Can't open file '/svn_repos/xxx/format': Permission denied$ chcon -R -t svnserve_content_t /svn_repos/xxx

해결방법: 보안모듈해제
$ chcon -R -t svnserve_content_t /svn_repos/xxx

 

 

 

:: SVN 저장소 접근을 위해 CentOS 7 같은 경우 SELinux를 disabled 처리

$ vi /etc/selinux/config 에서 disabled로 변경하기

SELinux status : enabled

SELinux status : disabled 로 변경

 

 

:: 서버재기동시 SVN 서비스 자동실행

$ systemctl enable svnserve.service

 

 

:: SVN 저장소 삭제

$ service svnserve stop

$ rm -rf /svn_repos/~

 

 

출처 - https://hellowoori.tistory.com/54

728x90