GNU / Linux에서 SVN (Subversion) 서버를 설정하는 방법-Ubuntu [닫기]


95

Subversion 서버로 작동하고 싶은 Ubuntu를 실행하는 노트북이 있습니다. 나 자신을 위해 로컬로 커밋하고 다른 사람들을 위해 원격으로 커밋합니다. 이 작업을 수행하는 데 필요한 단계는 무엇입니까? 다음 단계를 포함하십시오.

  • Apache 및 필요한 모듈 가져 오기 및 구성 (SVN 서버를 생성하는 다른 방법이 있다는 것을 알고 있지만 Apache 전용을 원합니다)
  • 서버에 액세스하는 보안 방법 (SSH / HTTPS) 구성
  • 권한이있는 사용자 집합을 구성합니다 (에서와 같이 커밋 할 권한이 있어야하지만 자유롭게 탐색 할 수 있음).
  • 초기 커밋 ( "Hello world"종류)으로 설정을 검증합니다.

이러한 단계에는 명령 줄 또는 GUI 응용 프로그램 지침의 혼합이 포함될 수 있습니다. 가능한 경우 지침이 특정 배포 또는 버전에 특정한 위치와 사용자가 선택한 특정 도구를 대신 사용할 수있는 위치 (예 : vi 대신 nano )를 기록해 두십시오 .


Ubuntu에서 Subversion 서버를 사용하고 모든 플랫폼에서 클라이언트를 사용할 수 있습니까? Windows의 Tortoise SVN 클라이언트처럼?
Raheel Hasan 2015

답변:


146

랩톱을 Subversion 서버로 만들기 위해 취한 단계. AlephZarro여기 에서 지시 를 내리려면 신용이 있어야합니다 . 이제 작동하는 SVN 서버가 있습니다 (현재 로컬에서만 테스트 됨).

특정 설정 : Kubuntu 8.04 Hardy Heron

이 가이드를 따르기위한 요구 사항 :

  • apt-get 패키지 관리자 프로그램
  • 텍스트 편집기 (나는 kate 사용)
  • sudo 액세스 권한

1 : Apache HTTP 서버 및 필수 모듈을 설치합니다.

sudo apt-get install libapache2-svn apache2

다음 추가 패키지가 설치됩니다.

apache2-mpm-worker apache2-utils apache2.2-common

2 : SSL 활성화

sudo a2enmod ssl
sudo kate /etc/apache2/ports.conf

다음이 파일에 있는지 추가하거나 확인하십시오.

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

3 : SSL 인증서 생성 :

sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl
sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

4 : 가상 호스트 생성

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svnserver
sudo kate /etc/apache2/sites-available/svnserver

변경 (ports.conf에서) :

"NameVirtualHost *" to "NameVirtualHost *:443"

및 (svnserver에서)

<VirtualHost *> to <VirtualHost *:443>

ServerAdmin (파일 svnserver)에서 다음을 추가합니다.

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM

5 : 사이트 활성화 :

sudo a2ensite svnserver
sudo /etc/init.d/apache2 restart

경고를 극복하려면 :

sudo kate /etc/apache2/apache2.conf

더하다:

"ServerName $your_server_name"

6 : 저장소 추가 : 다음 설정에서는 여러 저장소를 호스트하려고한다고 가정합니다. 첫 번째 저장소를 만들려면 다음을 실행하십시오.

sudo mkdir /var/svn

REPOS=myFirstRepo
sudo svnadmin create /var/svn/$REPOS
sudo chown -R www-data:www-data /var/svn/$REPOS
sudo chmod -R g+ws /var/svn/$REPOS

6.a. 더 많은 저장소의 경우 : 6 단계를 다시 수행하고 (REPOS 값 변경) 단계를 건너 뜁니다.mkdir /var/svn

7 : 인증 된 사용자 추가

sudo htpasswd -c -m /etc/apache2/dav_svn.passwd $user_name

8 : WebDAV 및 SVN 활성화 및 구성 :

sudo kate /etc/apache2/mods-available/dav_svn.conf

추가 또는 주석 해제 :

<Location /svn>
DAV svn

# for multiple repositories - see comments in file
SVNParentPath /var/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL
</Location>

9 : Apache 서버를 다시 시작합니다.

sudo /etc/init.d/apache2 restart

10 : 검증 :

브라우저 실행 :

http://localhost/svn/$REPOS
https://localhost/svn/$REPOS

둘 다 사용자 이름과 암호가 필요했습니다. 나는 주석을 제거한다고 생각한다.

<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>

에서 /etc/apache2/mods-available/dav_svn.conf익명 브라우징을 허용합니다.

브라우저에 "Revision 0 : /"이 표시됩니다.

뭔가 커밋 :

svn import --username $user_name anyfile.txt https://localhost/svn/$REPOS/anyfile.txt -m “Testing”

인증서를 수락하고 비밀번호를 입력합니다. 방금 약속 한 내용을 확인하세요.

svn co --username $user_name https://localhost/svn/$REPOS

이 단계를 따라 (오류 복사 / 붙여 넣기를하지 않았다고 가정) 랩톱에 작동하는 SVN 저장소가 있습니다.


지침은 Jaunty에서도 완벽하게 작동했습니다. 감사!
Michael Moussa

6
완벽하게 작동하는 것처럼 보였지만 액세스하려고 할 때 403이 금지되고 암호를 묻는 메시지가 표시되지 않습니다. 무엇이 잘못 될 수 있는지에 대한 힌트가 있습니까?
korona 2010-06-30

@korona : 어떤 방식으로 액세스 : SVN 명령 실행 또는 검색?
Grundlefleck 2010

1
"NameVirtualHost *" to "NameVirtualHost *:443"<VirtualHost *> to <VirtualHost *:443>svnserver 설정에있는 동안 ports.conf에 있습니다. 이것은 언급되어야합니다. svnserver 설정에서 NameVirtualHost를 검색했지만 찾을 수 없기 때문에 꽤 혼란 스러웠습니다.
Wandang

1
Debian Stretch에서는 libapache2-mod-svn대신 설치해야하는 것 같습니다 libapache2-svn(후자는 더 이상 사용할 수 없으므로).
TheStoryCoder

2

그 후, (위에 인용 된 예의 맥락에서) 실행해야했습니다.

$ sudo chmod g + w /var/svn/$REPOS/db/rep-cache.db

$ sudo chown www-data : www-data /var/svn/$REPOS/db/rep-cache.db

그렇지 않으면 로컬 수정을 커밋 할 때 409 오류가 계속 발생했습니다 (약정은 서버 측에서 효과적 이었지만 로컬 업데이트를 후속 조치해야 함).


1

이 기사 는 전체 프로세스에 대한 꽤 좋은 요약을 제공하는 것 같습니다. 지침을 따른 다음, 나와 다른 사람들이이 답변에서 링크 한 기사에서 다루지 않은 문제에 대해 좀 더 구체적인 질문을 게시하는 것이 좋습니다.


1

웹 서버에 접속했을 때 403이 금지 된 경우 구성 파일 (예 : localhost 또는 127.0.0.1)에서 지정한 것과 다른 호스트 이름을 사용했기 때문일 수 있습니다. 대신 https : // whateveryousetasyourhostname눌러 보십시오 ...


또 다른 403 원인 : svn 경로를 심볼릭 링크로 설정합니다. svn 경로가 심볼릭 링크 인 경우 다음 심볼릭 링크를 허용해야합니다.
copolii

-2

터미널에 단일 명령을 작성하십시오.

터미널을 열려면 Ctrl+ Alt+ 를 누르고 T다음 명령을 입력하십시오.

$sudo apt-get install subversion

-2

Apache의 경우 :

sudo apt-get -yq install apache2

SSH의 경우 :

sudo apt-get -yq install openssh-server

Subversion의 경우 :

sudo apt-get -yq install subversion subversion-tools

원한다면 다음과 같이 하나의 명령으로 결합 할 수 있습니다.

sudo apt-get -yq install apache2 openssh-server subversion subversion-tools

나머지는 도와 드릴 수 없습니다 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.