SVN-환경 설정
SVN 설치
Subversion은 널리 사용되는 오픈 소스 버전 관리 도구입니다. 오픈 소스이며 인터넷을 통해 무료로 사용할 수 있습니다. 기본적으로 대부분의 GNU / Linux 배포판과 함께 제공되므로 시스템에 이미 설치되어있을 수 있습니다. 설치 여부를 확인하려면 다음 명령을 사용하십시오.
[jerry@CentOS ~]$ svn --version
Subversion 클라이언트가 설치되지 않은 경우 명령은 오류를보고하고 그렇지 않으면 설치된 소프트웨어의 버전을 표시합니다.
[jerry@CentOS ~]$ svn --version
-bash: svn: command not found
RPM 기반 GNU / Linux를 사용하는 경우 yum설치 명령. 성공적으로 설치 한 후svn --version 명령.
[jerry@CentOS ~]$ su -
Password:
[root@CentOS ~]# yum install subversion
[jerry@CentOS ~]$ svn --version
svn, version 1.6.11 (r934486)
compiled Jun 23 2012, 00:44:03
Debian 기반 GNU / Linux를 사용하는 경우 apt 설치 명령.
[jerry@Ubuntu]$ sudo apt-get update
[sudo] password for jerry:
[jerry@Ubuntu]$ sudo apt-get install subversion
[jerry@Ubuntu]$ svn --version
svn, version 1.7.5 (r1336830)
compiled Jun 21 2013, 22:11:49
Apache 설정
GNU / Linux에 Subversion 클라이언트를 설치하는 방법을 보았습니다. 새 저장소를 만들고 사용자에게 액세스를 허용하는 방법을 살펴 보겠습니다.
서버에 설치해야합니다 Apache httpd 모듈 및 svnadmin 수단.
[jerry@CentOS ~]$ su -
Password:
[root@CentOS ~]# yum install mod_dav_svn subversion
그만큼 mod_dav_svn 패키지는 Apache httpd 서버를 통해 HTTP를 사용하여 저장소에 액세스 할 수 있습니다. subversion 패키지는 svnadmin 도구를 설치합니다.
Subversion은 다음에서 구성을 읽습니다. /etc/httpd/conf.d/subversion.conf파일. 구성을 추가 한 후subversion.conf 파일은 다음과 같습니다.
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/svn-users
Require valid-user
</Location>
Subversion 사용자를 만들고 저장소에 대한 액세스 권한을 부여하겠습니다. htpasswd 명령은 HTTP 사용자의 기본 인증을 위해 사용자 이름 과 암호 를 저장하는 데 사용되는 일반 텍스트 파일을 만들고 업데이트하는 데 사용됩니다 . '-c'옵션은 암호 파일 을 생성 하고 암호 파일이 이미있는 경우 덮어 씁니다. 이것이 '-c'옵션을 처음 사용하는 이유입니다. '-m'옵션은 암호에 대해 MD5 암호화를 활성화합니다.
사용자 설정
사용자를 만들자 tom.
[root@CentOS ~]# htpasswd -cm /etc/svn-users tom
New password:
Re-type new password:
Adding password for user tom
사용자를 만들자 jerry
[root@CentOS ~]# htpasswd -m /etc/svn-users jerry
New password:
Re-type new password:
Adding password for user jerry
[root@CentOS ~]#
모든 작업을 저장할 Subversion 상위 디렉토리를 만듭니다 ( /etc/httpd/conf.d/subversion.conf 참조 ).
[root@CentOS ~]# mkdir /var/www/svn
[root@CentOS ~]# cd /var/www/svn/
리포지토리 설정
project_repo 라는 프로젝트 저장소를 만듭니다 . svnadmin 명령은 메타 데이터를 저장할 새 저장소와 그 안에 몇 가지 다른 디렉토리를 만듭니다.
[root@CentOS svn]# svnadmin create project_repo
[root@CentOS svn]# ls -l project_repo
total 24
drwxr-xr-x. 2 root root 4096 Aug 4 22:30 conf
drwxr-sr-x. 6 root root 4096 Aug 4 22:30 db
-r--r--r--. 1 root root 2 Aug 4 22:30 format
drwxr-xr-x. 2 root root 4096 Aug 4 22:30 hooks
drwxr-xr-x. 2 root root 4096 Aug 4 22:30 locks
-rw-r--r--. 1 root root 229 Aug 4 22:30 README.txt
저장소의 사용자 및 그룹 소유권을 변경해 보겠습니다.
[root@CentOS svn]# chown -R apache.apache project_repo/
SELinux 상태 도구를 사용하여 SELinux 가 활성화 되었는지 여부를 확인합니다 .
[root@CentOS svn]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
서버의 경우 SELinux가 활성화되어 있으므로 SELinux 보안 컨텍스트를 변경해야합니다.
[root@CentOS svn]# chcon -R -t httpd_sys_content_t /var/www/svn/project_repo/
HTTP를 통한 커밋을 허용하려면 다음 명령을 실행합니다.
[root@CentOS svn]# chcon -R -t httpd_sys_rw_content_t /var/www/svn/project_repo/
Apache 서버를 다시 시작하면 Apache 서버 구성이 완료됩니다.
[root@CentOS svn]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: httpd: apr_sockaddr_info_get() failed for CentOS
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
[root@CentOS svn]# service httpd status
httpd (pid 1372) is running...
[root@CentOS svn]#
Apache 서버를 성공적으로 구성 했으므로 이제 저장소를 구성합니다. 인증 된 사용자에게만 저장소 액세스를 제공하고 기본 권한 파일을 사용합니다. project_repo / conf / svnserve.conf 파일에 다음 줄을 추가 하십시오.
anon-access = none
authz-db = authz
일반적으로 모든 Subversion 프로젝트에는 trunk, tags, 과 branches 프로젝트의 루트 디렉토리 바로 아래에 있습니다.
트렁크는 주요 개발이 발생하고 일반적으로 프로젝트에 대한 작업을 개발자가 체크 아웃 된 모든 디렉토리입니다.
태그 디렉토리는 프로젝트의 가게라는 이름의 스냅 샷을하는 데 사용됩니다. 프로덕션 릴리스를 만들 때 팀은 릴리스에 들어가는 코드에 태그를 지정합니다.
나뭇 가지 당신이 개발의 서로 다른 라인을 추구하고자 할 때 디렉토리가 사용됩니다.
프로젝트 저장소 아래에 트렁크, 태그 및 분기 디렉터리 구조를 생성 해 보겠습니다 .
[root@CentOS svn]# mkdir /tmp/svn-template
[root@CentOS svn]# mkdir /tmp/svn-template/trunk
[root@CentOS svn]# mkdir /tmp/svn-template/branches
[root@CentOS svn]# mkdir /tmp/svn-template/tags
이제 다음에서 디렉토리를 가져옵니다. /tmp/svn-template 저장소에.
[root@CentOS svn]# svn import -m 'Create trunk, branches, tags directory structure' /tmp/svn-template/
Adding /tmp/svn-template/trunk
Adding /tmp/svn-template/branches
Adding /tmp/svn-template/tags
Committed revision 1.
[root@CentOS svn]#
이건 끝났어! 저장소를 성공적으로 생성하고 액세스를 허용했습니다.Tom 과 Jerry. 이제부터는 지원되는 모든 작업을 저장소에 수행 할 수 있습니다.