CentOS 서브버전 서버 설치 및 설정 (svn) 편집하기

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
11번째 줄: 11번째 줄:
==설치 확인==
==설치 확인==
{{참고|SVN 설치 확인}}
{{참고|SVN 설치 확인}}
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki ~]# svn
[root@zetawiki ~]# svn
-bash: svn: command not found
-bash: svn: command not found
</syntaxhighlight>
</source>
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki ~]# rpm -qa | grep subversion
[root@zetawiki ~]# rpm -qa | grep subversion
[root@zetawiki ~]# yum list subversion
[root@zetawiki ~]# yum list subversion
22번째 줄: 22번째 줄:
subversion.i686                              1.6.11-10.el6_5                            base
subversion.i686                              1.6.11-10.el6_5                            base
subversion.x86_64                            1.6.11-10.el6_5                            base
subversion.x86_64                            1.6.11-10.el6_5                            base
</syntaxhighlight>
</source>
:→ 설치되어 있지 않으며, yum을 통해 설치가능하다.
:→ 설치되어 있지 않으며, yum을 통해 설치가능하다.


==설치==
==설치==
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki ~]# yum install subversion
[root@zetawiki ~]# yum install subversion
... (생략)
... (생략)
45번째 줄: 45번째 줄:
Installed size: 12 M
Installed size: 12 M
Is this ok [y/N]: y
Is this ok [y/N]: y
</syntaxhighlight>
</source>
<syntaxhighlight lang='console'>
<source lang='console'>
... (생략)
... (생략)
Installed:
Installed:
55번째 줄: 55번째 줄:


Complete!
Complete!
</syntaxhighlight>
</source>


==저장소 생성==
==저장소 생성==
61번째 줄: 61번째 줄:


;명령어
;명령어
<syntaxhighlight lang='bash'>
<source lang='bash'>
mkdir /repos
mkdir /repos
cd /repos
cd /repos
svnadmin create --fs-type fsfs 저장소명
svnadmin create --fs-type fsfs 저장소명
ll
ll
</syntaxhighlight>
</source>


;실행 예시
;실행 예시
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki ~]# mkdir /repos
[root@zetawiki ~]# mkdir /repos
[root@zetawiki ~]# cd /repos
[root@zetawiki ~]# cd /repos
76번째 줄: 76번째 줄:
total 4
total 4
drwxr-xr-x. 6 root root 4096 Jun  1 09:27 project1
drwxr-xr-x. 6 root root 4096 Jun  1 09:27 project1
</syntaxhighlight>
</source>


*여러 프로젝트를 담기 위해 반드시 저장소를 여러 개 만들 필요는 없다. 저장소 폴더 아래에 다시 프로젝트별 폴더들을 만들어 관리하면 되기 때문이다.
*여러 프로젝트를 담기 위해 반드시 저장소를 여러 개 만들 필요는 없다. 저장소 폴더 아래에 다시 프로젝트별 폴더들을 만들어 관리하면 되기 때문이다.
86번째 줄: 86번째 줄:


;명령어
;명령어
<syntaxhighlight lang='bash'>
<source lang='bash'>
echo 'OPTIONS="--threads --root 저장소최상위폴더"' > /etc/sysconfig/svnserve
echo 'OPTIONS="--threads --root 저장소최상위폴더"' > /etc/sysconfig/svnserve
cat /etc/sysconfig/svnserve
cat /etc/sysconfig/svnserve
</syntaxhighlight>
</source>


;실행예시
;실행예시
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki ~]# echo 'OPTIONS="--threads --root /repos"' > /etc/sysconfig/svnserve
[root@zetawiki ~]# echo 'OPTIONS="--threads --root /repos"' > /etc/sysconfig/svnserve
[root@zetawiki ~]# cat /etc/sysconfig/svnserve
[root@zetawiki ~]# cat /etc/sysconfig/svnserve
OPTIONS="--threads --root /repos"
OPTIONS="--threads --root /repos"
</syntaxhighlight>
</source>


==svnserve.conf 수정==
==svnserve.conf 수정==
103번째 줄: 103번째 줄:


;명령어
;명령어
<syntaxhighlight lang='bash'>
<source lang='bash'>
cd /repos/project1/conf/
cd /repos/project1/conf/
cat svnserve.conf
cat svnserve.conf
113번째 줄: 113번째 줄:
echo 'authz-db = authz' >> svnserve.conf
echo 'authz-db = authz' >> svnserve.conf
cat svnserve.conf
cat svnserve.conf
</syntaxhighlight>
</source>


;실행예시
;실행예시
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki ~]# cd /repos/project1/conf/
[root@zetawiki ~]# cd /repos/project1/conf/
[root@zetawiki conf]# cat svnserve.conf
[root@zetawiki conf]# cat svnserve.conf
124번째 줄: 124번째 줄:
### irrelevant.)
### irrelevant.)
... (생략)
... (생략)
</syntaxhighlight>
</source>
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki conf]# mv svnserve.conf svnserve.conf.old
[root@zetawiki conf]# mv svnserve.conf svnserve.conf.old
[root@zetawiki conf]# echo '[general]' > svnserve.conf
[root@zetawiki conf]# echo '[general]' > svnserve.conf
138번째 줄: 138번째 줄:
password-db = passwd
password-db = passwd
authz-db = authz
authz-db = authz
</syntaxhighlight>
</source>
:→ 비로그인 접속자는 권한 없음, 로그인하면 쓸 수 있음, passwd와 authz 파일을 사용함.
:→ 비로그인 접속자는 권한 없음, 로그인하면 쓸 수 있음, passwd와 authz 파일을 사용함.


147번째 줄: 147번째 줄:
*패스워드 분실시에도 이 파일을 열어보면 된다.
*패스워드 분실시에도 이 파일을 열어보면 된다.
*passwd 파일을 passwd.old 로 이름을 변경하여 보존해두고 새로 작성한다.
*passwd 파일을 passwd.old 로 이름을 변경하여 보존해두고 새로 작성한다.
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki conf]# mv passwd passwd.old
[root@zetawiki conf]# mv passwd passwd.old
[root@zetawiki conf]# vi passwd
[root@zetawiki conf]# vi passwd
</syntaxhighlight>
</source>
<syntaxhighlight lang='aconf'>
<source lang='aconf'>
[users]
[users]
testuser1 = P@ssw0rd
testuser1 = P@ssw0rd
testuser2 = P@ssw0rd
testuser2 = P@ssw0rd
</syntaxhighlight>
</source>


==(optional) 권한 없음 오류시==
==(optional) 권한 없음 오류시==
*권한이 없다는 오류가 날 경우 [[/repos/project1/conf/authz]] 파일 마지막에 계정의 권한 추가
*권한이 없다는 오류가 날 경우 [[/repos/project1/conf/authz]] 파일 마지막에 계정의 권한 추가
<syntaxhighlight lang='aconf'>
<source lang='aconf'>
[/]
[/]
testuser1 = rw
testuser1 = rw
testuser2 = rw
testuser2 = rw
</syntaxhighlight>
</source>


==서비스 시작==
==서비스 시작==
169번째 줄: 169번째 줄:
/etc/sysconfig/svnserve 파일을 설정해두었기 때문에 service로 시작/중지를 할 수 있다.
/etc/sysconfig/svnserve 파일을 설정해두었기 때문에 service로 시작/중지를 할 수 있다.


<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki repos]# service svnserve start
[root@zetawiki repos]# service svnserve start
Starting svnserve:                                        [  OK  ]
Starting svnserve:                                        [  OK  ]
</syntaxhighlight>
</source>
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki repos]# ps -ef | grep svnserve | grep -v grep
[root@zetawiki repos]# ps -ef | grep svnserve | grep -v grep
root      2581    1  0 11:12 ?        00:00:00 /usr/bin/svnserve --daemon --pid-file=/var/run/svnserve.pid --threads --root /repos
root      2581    1  0 11:12 ?        00:00:00 /usr/bin/svnserve --daemon --pid-file=/var/run/svnserve.pid --threads --root /repos
</syntaxhighlight>
</source>
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki repos]# netstat -anp | grep svnserve
[root@zetawiki repos]# netstat -anp | grep svnserve
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                  LISTEN      2581/svnserve   
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                  LISTEN      2581/svnserve   
</syntaxhighlight>
</source>
:→ 기본 포트인 3690 포트로 서비스 중. (다른 포트로 변경하려면 [[/etc/sysconfig/svnserve]]를 수정해야 한다.)
:→ 기본 포트인 3690 포트로 서비스 중. (다른 포트로 변경하려면 [[/etc/sysconfig/svnserve]]를 수정해야 한다.)


187번째 줄: 187번째 줄:


==재부팅시 자동시작 설정==
==재부팅시 자동시작 설정==
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki repos]# chkconfig --list svnserve
[root@zetawiki repos]# chkconfig --list svnserve
svnserve      0:off 1:off 2:off 3:off 4:off 5:off 6:off
svnserve      0:off 1:off 2:off 3:off 4:off 5:off 6:off
</syntaxhighlight>
</source>
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki repos]# chkconfig svnserve on
[root@zetawiki repos]# chkconfig svnserve on
</syntaxhighlight>
</source>
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki repos]# chkconfig --list svnserve
[root@zetawiki repos]# chkconfig --list svnserve
svnserve      0:off 1:off 2:on 3:on 4:on 5:on 6:off
svnserve      0:off 1:off 2:on 3:on 4:on 5:on 6:off
</syntaxhighlight>
</source>
:→ 재부팅시에 svnserve 서비스가 자동으로 시작될 것이다.
:→ 재부팅시에 svnserve 서비스가 자동으로 시작될 것이다.


205번째 줄: 205번째 줄:


;명령어
;명령어
<syntaxhighlight lang='bash'>
<source lang='bash'>
service svnserve stop
service svnserve stop
rm -rf /repos/project1
rm -rf /repos/project1
ll
ll
</syntaxhighlight>
</source>


;실행예시
;실행예시
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki ~]# service svnserve stop
[root@zetawiki ~]# service svnserve stop
Stopping svnserve:                                        [  OK  ]
Stopping svnserve:                                        [  OK  ]
</syntaxhighlight>
</source>
<syntaxhighlight lang='console'>
<source lang='console'>
[root@zetawiki ~]# rm -rf /repos/project1
[root@zetawiki ~]# rm -rf /repos/project1
[root@zetawiki ~]# ll
[root@zetawiki ~]# ll
total 0
total 0
</syntaxhighlight>
</source>
:→ 깔끔하게 지워졌다
:→ 깔끔하게 지워졌다


제타위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 제타위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)

이 문서에서 사용한 틀: