본문으로 바로가기

CentOS 7 SVN (sebversion) YUM 설치

category Gift/Linux 2017. 8. 21. 17:35




1.SVN 설치 확인

[root@localhost ~]# svn

-bash: svn: command not found

[root@localhost ~]# rpm -qa | grep subversion

[root@localhost ~]# yum list subversion

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: ftp.daumkakao.com

 * extras: ftp.daumkakao.com

 * updates: ftp.daumkakao.com

Available Packages

subversion.i686                         1.7.14-10.el7                       base

subversion.x86_64                       1.7.14-10.el7                       base

[root@localhost ~]# 



2. subversion YUM 설치



3. 저장소 생성

#명령어

[root@localhost ~]# mkdir /repo

[root@localhost ~]# cd /repo

[root@localhost repo]# svnadmin create --fs-type fsfs 저장소명

[root@localhost repo]# ll

total 0

drwxr-xr-x. 6 root root 80 Aug 21 13:34 저장소명

[root@localhost repo]# 


실행예시)

서버 1대에 저장소를 여러개 생성가능하고, 최상위 폴더이름은 svntest1 로 생성하였습니다.

여러 프로젝트를 담을때 저장소를 여러개 만들필요없이 최상위 디렉토리 아래에 프로젝트별 폴더를 생성하여 관리하면 편리합니다.

그러나 하나의 저장소는 하나의 사용자 권한설정을 가지고 있기 때문에 사용자들의 권한이 구분되어야할때 저장소를 여러개 사용하는것이 좋습니다.



4. /etc/sysconfig/svnserve 파일 생성

이 파일을 생성해주어야 service 명령어로 svnserve start/stop이 가능합니다.

#명령어

[root@localhost ~]# echo 'OPTION="--threads --root 저장소최상위폴더"' > /etc/sysconfig/svnserve

[root@localhost ~]# cat /etc/sysconfig/svnserve 

OPTION="--threads --root 저장소최상위폴더"

[root@localhost ~]# 


실행예시)



5. svnserve.conf 파일 수정

기존에있는 conf 파일은 백업해두고 새로작성해줍니다.

#명령어

[root@localhost ~]# cd /repo/svntest1/conf/

[root@localhost conf]# mv svnserve.conf svnserve.conf.bak

[root@localhost conf]# echo '[general]

> anon-access = none

> auth-access = write

> password-db = passwd

> authz-db = authz' > svnserve.conf

[root@localhost conf]# cat svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

[root@localhost conf]# 


실행예시)

-> 비로그인 접속자는 권한이 없고, 로그인하면 사용가능하며 passwd 와 authz 파일을 사용한다.



6. 계정설정

이번에도 기존에있는 passwd 파일은 백업해두고 새로 작성합니다.

#명령어

[root@localhost conf]# mv passwd passwd.bak

[root@localhost conf]# echo '[users]

> svnuser1 = svnpasswd1

> svnuser2 = svnpasswd2' > passwd

[root@localhost conf]# cat passwd

[users]

svnuser1 = svnpasswd1

svnuser2 = svnpasswd2

[root@localhost conf]# 


실행예시)


(optional) 권한 없음 오류시에는

/repo/svntest/conf/authz 파일 마지막에 아래와 같이 계정 권한을 추가해주세요.

[/]

svnuser1 = rw

svnuser2 = rw



7. 서비스시작 및 재부팅시 자동시작설정

svnserve 파일을 미리 설정해두었기 때문에 service 명령어로 시작/중지가 가능합니다.

#명령어

[root@localhost conf]# service svnserve start

Redirecting to /bin/systemctl start  svnserve.service

[root@localhost conf]# ps -ef | grep svnserve | grep -v grep

root      10471      1  0 13:54 ?        00:00:00 /usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid

[root@localhost conf]# netstat -anp | grep svnserve

tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      10471/svnserve      

[root@localhost conf]# chkconfig svnserve on

Note: Forwarding request to 'systemctl enable svnserve.service'.

Created symlink from /etc/systemd/system/multi-user.target.wants/svnserve.service to /usr/lib/systemd/system/svnserve.service.

[root@localhost conf]# 


실행예시)

- 기본포트인 3690 포트로 서비스 실행중

- 다른포트로 변경하려면 /etc/sysconfig/svnserve 파일 수정해야함.

- svn://서버주소/svntest1 로 접속가능



참고 제타위키