본문 바로가기
Linux

VirtualBox CentOS 8 Subversion(SVN) 설치

by 미미믹 2021. 3. 21.

넥서스 설치까지 진행했으니 svn 설치를 진행해본다.
언젠가 시간이되면 git 설치도 진행해볼 예정이다.

먼저 svn 명령어를 통해 linux에 svn 설치여부를 확인한다.
$ svn
설치가 안되어있다면 설치가능 목록을 확인 후 해당 항목에 대해 설치를 진행한다.
$ yum list subversion
$ yum install subversion.x86_64

설치가 완료되면 svn --version 명령어를 통해 설치가 되었는지 확인해본다.
$ svn --version
svn 저장소로 사용할 디렉토리의 루트저장소 만들어준다.
$ mkdir 루트저장소경로
루트저장소를 만들었다면 프로젝트 저장소를 설정해준다.
$ cd 루트저장소경로
$ svnadmin create --fs-type fsfs 저장소명

svn 인증 설정을 위해 svnserve.conf 파일을 편집기로 열어준다.
원본 파일에는 주석이 너무 길어서 본인은 원본을 bak파일로 옮기고 신규로 생성해줬다
$ cd 저장소경로/conf
$ mv svnserve.conf ./svnserve.conf_bak
$ vi svnserve.conf

[general]

# 인증되지 않은 권한 접근 권한 없음
anon-access=none 

# 인증된 권한 읽기/쓰기 권한
auth-access=write

# 패스워드 설정 파일
password-db=passwd

# 권한 설정 파일
authz-db=authz

# 프로젝트 명칭
realm=My_First_Repository

svn 사용을 위한 계정은 conf/passwd 파일에서 관리한다.
$ vi passwd

[users]
추가할유저=비밀번호

생성한 계정에 권한을 부여할 때는 authz에서 설정한다.
$ vi 저장소경로/conf/authz

[groups]
그룹명=유저명

[/] #저장소명
* = 권한 #지정권한 외 유저
@그룹명=권한 #그룹일경우
유저명=권한 #유저일경우

svn 서비스 실행을 위한 svn 서버 설정 작업을 진행한다.
$ vi /etc/sysconfig/svnserve

OPTIONS="--threads --root SVN저장소경로"

설정이 끝난것같으니.. svn을 실행시켜본다.
$ systemctl start svnserve.service
실행이 제대로 되는지 svn 상태를 확인해본다.
$ ps -ef | grep svnserve
넥서스처럼 자동실행을 설정해준다.
넥서스의 경우와 마찬가지로 SELinux가 설정되어 있으면 자동실행이 동작하지 않을 수 있다.
$ systemctl enable svnserve.service

호스트PC에서 해당 svn에 연결하려면 방화벽 설정과 포트포워딩 설정이 필요하다.
svn 기본포트가 3690이라고 한다.
포트를 변경하지 않았으니 기본 포트에 대한 방화벽을 열어준다.
$ firewall-cmd --zone=public --permanent --add-port=3690/tcp
설정된 내용 적용을 위해 방화벽 설정 재시작해준다.
$ firewall-cmd --reload

virtualBox - 설정 - 네트워크 - 고급 - 포트포워딩 설정을 추가해준다.


svn 설정은 끝난것 같으니 저장소를 만들어본다.
$ cd svn저장소
$ svn mkdir svn://아이피/저장소명/생성할디렉토리명

해당 명령어 실행시 에러가 발생했을 경우 추가로 설정이 필요하다고한다.
~/.bash_profile 마지막 라인에 해당 문구를 추가해준다.
$ vi ~/.bash_profile

SVN_EDITOR=/usr/bin/vim
export SVN_EDITOR

$ source ~/.bash_profile

설정 후 명령어 재실행 시 문제없이 생성되는것을 확인할 수 있다.
$ svn mkdir svn://아이피/저장소명/생성할디렉토리명
해당 명령어가 정상적으로 실행시 편집기가 실행되는데 :wq로 넘어가면된다고 한다..
그 후 로그 메세지 설정 관련으론 c를 입력해주었다.
후에 뭐 비밀번호 암호화 처리 관련 문구가 나오지만 잘 모르기 때문에 그냥 평문처리로 진행하기로 했다....

디렉토리가 잘 생성됐는지 확인함으로 마무리해준다.
$ svn list svn://아이피/저장소명

호스트 PC에서 이클립스를 실행시켜서 해당 저장소로 잘 붙나 확인해보았더니 잘 연결되는것을 확인했다.
이클립스에서 svn을 찾을 수없다면 갓구글에 eclipse svn 으로만 검색해도 친절하게 방법이 나온다.


svn 사용중 네트워크 문제 등으로 아이피가 변경될 경우 해당 명령어로 변경 가능하다.
참고 사이트: tingcobell.tistory.com/31
$ svn switch --relocate 이전URL 신규URL


[참고]
hellowoori.tistory.com/54
egovframework_svn설치가이드_리눅스용.pdf


[개발환경구축] CentOS 8 Nexus 2 설치 (Jetty Deploy) + 자동실행

[개발환경구축] CentOS 8 Jenkins 설치