안녕 하세요.
오랫만에 centos 7 에 svn 을 설치 하려 합니다.
프로젝트를 진행을 위해 개발 서버를 설정 중에 Oracle 11g, 12c를 설치 하고
형상관리를 위해 git과 svn 중 고민을 하다..
그냥 svn을 설치 하기로 했습니다.
그럼 svn 설치를 시작 하도록 하죠!!
svn 또는 svn --verstion 을 입력 합니다.
- svn 이 설치가 안되 있을 경우
설치가 안되어 있다면 우선 설치를 해야 합니다.
yum install subversion
를 입력하여 설치를 합니다. 중간 중간 질문이 나오면 Y 를 입력 하여 주세요!
( 중략 )
설치가 완료 되었습니다.
다시 하면 svn --version 을 입력 하면
svn 버전이 1.7.14 로 설치가 되었네요.
다음은 저장소를 만들어 볼께요
저는 최상위 경로에 svn 이라는 폴더를 만들고, 해당 폴더로 이동 합니다.
]# mkdir /svn
]# cd svn
svnadmin을 이용 하여 저장소를 생성 합니다
svnadmin create --fs-type fsfs 저장소 명
]# svnadmin create --fs-type fsfs project1
저장소 생성이 완료 되었습니다.
다음으로는 svn 서비스를 위하여 /etc/sysconfig/svnserve 파일을 만들어 데몬을 실행하겠습니다.
방법은 2가지 정도로 생각 할 수 있는데요
우선 첫번째 방법!
echo 'OPTIONS="--threads --root 저장소의 최상위 디렉토리"' > /etc/sysconfig/svnserve
]# echo 'OPTIONS="--threads --root /svn"' > /etc/sysconfig/svnserve
를 입력합니다
두번째 방법 입니다.
vi 편집기로 파일을 생성하고
OPTIONS="--threads --root /svn"
입력후 저장 합니다.
데몬 파일이 완성 되었습니다.
svn 의 시작,중지,상태를 service svnserve start/status/stop 명령어로 실행 할수 있다.
다음은 svnserve.conf 파일을 수정 하겠습니다.
svnserve.conf 파일은 간단히 말해서 svn 인증 설정 파일 이라 생각 하시면 됩니다.
우선 svnserve.conf 파일의 경로는 /svn/저장소 명/conf/svnserve.conf 에 위치 합니다.
원본 파일을 보관하고 새로 생성 합니다.
그리고 아래 해당 설정을 입력 하고 저장하고 닫습니다.
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = project1 Repository
----------------------------------------------------------------------------------------------------
#권한
#- none : 없음, read : 읽기, write : 쓰기
[general]
#익명 접근의 권한은 none 없음
anon-access = none
#인증 접근의 권한은 write 읽기/쓰기
auth-access = write
#사용자 패스워드 저장 파일 위치
password-db = passwd
#인증 접근의 권한 설정 파일 위치
authz-db = authz
#프로젝트 명칭
realm = project1 Repository
----------------------------------------------------------------------------------------------------
다음은 svn의 유저와 패스 워드를 설정 하겠습니다.
위에서 입력한 것과 같이 유저/패스워드 정보는 passwd 파일 입니다.
원본 파일 보관후 새로 파일을 생성 하겠습니다.
]# mv passwd passwd.old
]# vi passwd
저는 유저를 총 3명 추가 하도록 하겠습니다. 추가 방법은 아래와 같습니다.
유저=비밀번호 식으로 입력 하시면 됩니다.
[users]
admin=admin
user1=user1
user2=user2
이제 사용자 추가 완료되었습니다. 그럼 세부 권한을 줘야 합니다. 어떤 어떤 권한을 부여 하느냐에 따라 A 유저는 읽기권한만, B 유저는 쓰기 및 읽기 권한을 부여 할수가 있습니다.
저는 읽기, 쓰기 권한을 모든 유저에게 부여 하도록 하겠습니다.
원본파일을 보관후 새로운 파일을 생성 하겠습니다
]# mv authz authz.old
]# vi authz
[/]
admin=rw
user1=rw
user2=rw
다음으로는 방화벽 설정을 하겠습니다.
SVN 은 3690 포트를 사용 합니다.
]# vi /etc/firewalld/zones/public.xml
<port protocol="tcp" port="3690" />
을 추가 하고 방화벽을 중지 시키고 재 시작을 합시다.
]# systemctl stop firewalld
]# systemctl start firewalld
다른 방법으론
firewall-cmd --permanent --add-port=3690/tcp
firewall-cmd --reload
방화벽 설정이 끝났습니다!
이제 얼마 남지 안았어요! 조금만더 힘을 내도록 합시다.
그럼 SVN 서비스를 시작 합니다.
]# service svnserve start
]# ps –ef | grep svnserve
]# netstat –anp | grep svnserve
]# service svnserve status
##### service svnserve start/stop/status/restart
정상 적으로 실행 되었습니다.
매번 컴퓨터를 끄고 킬때마다 실행을 해줘야 한다면 귀찮겠죠?
서비스를 자동시작 등록 합니다!
]# chkconfig --list svnserve
]# chkconfig svnserve on
]# chkconfig --list svnserve
저는 이런 문구가 떳는데요. 그냥 이것 저것 서비스가 많다 보니 확인 하려면
]# systemctl list-unit-files
를 입력하여 직접 확인 하라는 말 같군요! 확인 합시다!
svnserve.service enabled 라고 되어 있네요!
다음은 svn 에 접속 되는지 확인 해보도록 할께요
svn co svn:// ip 또는 도메인주소/저장소
]# svn co svn://127.0.0.1/project1
or
]# svn checkout svn://127.0.0.1/project1
을 입력 합니다.
.... 저는 오류가 발생했습니다. 허 가 거 부 에러 입니다.
에러를 해결 하도록 하겠습니다.
이 에러는 selinux 설정이 활성화 되어 있을때 발생 하는 오류 입니다.
간단히 selinux 를 disabled 로 만들어 버리면 해결 되겠지만 ..
그랬을 경우 보안이.. 안된다는점을 인지 합시다.
]# chcon -R -t svnserve_content_t /svn/project1
를 입력 합니다.
yum install vim
vi .bash_profile
맨 아래에
SVN_EDITOR=/usr/bin/vim
export SVN_EDITOR
파일 적용 source ~/.bash_profile
생성 branches/ tages/ trunk/
svn mkdir svn://127.0.0.1/project1/branches
svn mkdir svn://127.0.0.1/project1/tages
svn mkdir svn://127.0.0.1/project1/trunk
svn list svn://127.0.0.1/project1
댓글
댓글 쓰기