2008-09-13 16 views
94

Mam laptopa z systemem Ubuntu, który chciałbym działać jako serwer Subversion. Zarówno dla mnie, aby zdalnie zaangażować się lokalnie, jak i dla innych. Jakie są wymagane kroki, aby to zadziałało? Należy podjąć działania na rzecz:Jak skonfigurować serwer Subversion (SVN) na systemie GNU/Linux - Ubuntu

  • Pobierz i skonfigurować serwer Apache i niezbędne moduły (wiem, że istnieją inne sposoby, aby stworzyć serwer SVN, ale chciałbym go Apache specyficzne)
  • Konfiguracja bezpieczny sposób dostępu serwer (SSH/HTTPS)
  • Skonfiguruj zestaw autoryzowanych użytkowników (jako, że musi autoryzować zatwierdzanie, ale możesz swobodnie przeglądać)
  • Potwierdź konfigurację za pomocą początkowego zatwierdzenia ("Witaj świecie" sortów)

Te kroki mogą obejmować dowolną kombinację instrukcji aplikacji z linii poleceń lub GUI. Jeśli możesz, zwróć uwagę, gdzie instrukcje są specyficzne dla konkretnej dystrybucji lub wersji, i gdzie zamiast tego można użyć opcji wyboru konkretnego narzędzia przez użytkownika (na przykład nano zamiast vi).

+0

mogę używać serwera Subversion na Ubuntu, a klienci na dowolnej platformie? jak klient SVN Tortoise w systemie Windows? –

Odpowiedz

140

Czynności, które podjąłem, aby mój laptop był serwerem Subversion. Aby uzyskać wskazówki dojazdu, należy uzyskać numer AlephZarrohere. Mam teraz działający serwer SVN (który obecnie był testowany tylko lokalnie).

Konfiguracja szczegółowa: Kubuntu 8.04 Hardy Heron

Wymagania do tej instrukcji:

  • apt-get pakiet programu menedżera
  • Editor
  • Text (używam kate)
  • sudo prawa dostępu

1: Instalacja Serwer HTTP Apache i wymagane moduły:

sudo apt-get install libapache2-svn apache2 

następujące dodatkowe pakiety zostaną zainstalowane:

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

2: Włącz SSL

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

Dodaj lub sprawdzić, co następuje w pliku:

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

3: Generowanie Certyfikat 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: Tworzenie wirtualnego hosta

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

zmiana (w ports.conf):

"NameVirtualHost *" to "NameVirtualHost *:443" 

i (w svnserver)

<VirtualHost *> to <VirtualHost *:443> 

Dodaj pod ServerAdmin (także w pliku svnserver):

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

5: Włącz stronę:

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

do przezwyciężenia ostrzeżenia:

sudo kate /etc/apache2/apache2.conf 

dodają:

"ServerName $your_server_name" 

6: Dodawanie repozytorium (-a): Poniższa konfiguracja zakłada chcemy hostuj wiele repozytoriów. Run to za stworzenie pierwszego repozytorium

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.Aby uzyskać więcej repozytoriów: zrobić krok 6 ponownie (Zmiana wartości transakcji repo), omijając etap mkdir /var/svn

7: Dodaj uwierzytelniony użytkownik

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

8: włączyć i skonfigurować WebDAV i SVN:

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

Dodaj lub Usuń komentarz:

<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: Uruchom ponownie serwer apache:

sudo /etc/init.d/apache2 restart 

10: Walidacja:

Fired up przeglądarki:

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

Zarówno wymaga podania nazwy użytkownika i hasła. Myślę odkomentowanie:

<LimitExcept GET PROPFIND OPTIONS REPORT> 

</LimitExcept> 

w /etc/apache2/mods-available/dav_svn.conf pozwoliłoby anonimowe przeglądanie.

Przeglądarka pokazuje "Revision 0: /"

popełnić coś:

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

zaakceptować certyfikat i wprowadź hasło. Sprawdź, co właśnie popełnione:

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

Następujące kroki (zakładając, że nie popełniłem żadnego błędu kopiowania/wklejania), miałem pracę repozytorium SVN na moim laptopie.

+0

Instrukcje działały również doskonale na Jaunty. Dzięki! –

+6

Wydaje się działać doskonale, ale dostaję 403 zabronione, gdy próbuję uzyskać do niego dostęp, i nie pytam o hasło. Jakieś wskazówki na temat tego, co może być nie tak? – korona

+0

@korona: Dostęp do niego w jaki sposób: uruchamianie poleceń SVN lub przeglądanie do niego? – Grundlefleck

-3

dla Apache:

sudo apt-get -yq install apache2 

SSH:

sudo apt-get -yq install openssh-server 

Dla Subversion:

sudo apt-get -yq install subversion subversion-tools 

Jeśli chcesz możesz połączyć je w jedno polecenie jak:

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

Nie mogę pomóc z resztą ...

1

wydaje się całkiem nieźle podsumować cały proces. Zaleciłbym postępować zgodnie z instrukcjami, a następnie opublikować bardziej szczegółowe pytania na temat wszelkich problemów, które nie zostały uwzględnione w artykułach, do których ja i inni ludzie sięłączyli w tych odpowiedziach.

1

Jeśli dostaniesz 403 zabronione, kiedy trafisz na serwer WWW, może to być spowodowane tym, że użyłeś nazwy hosta, która nie jest tym, co podano w pliku konfiguracyjnym (np. Localhost lub 127.0.0.1). Spróbuj uderzanie https://whateveryousetasyourhostname zamiast ...

+0

Kolejna przyczyna 403: ustaw ścieżkę svn na dowiązanie symboliczne. Jeśli twoja ścieżka svn jest dowiązaniem symbolicznym, musisz zezwolić na następujące dowiązania symboliczne. – copolii

2

Potem musiałem wykonać (w kontekście przykład cytowany powyżej)

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

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

Inaczej Ciągle odbiera błąd 409 podczas popełniania lokalne modyfikacje (choć Zobowiązania były skuteczne po stronie serwera, musiałem monitorować lokalne aktualizacje.

-3

Proszę napisać jedno polecenie na terminalu.

Aby otworzyć terminal proszę nacisnąć Ctrl+ Alt + T, a następnie wpisz polecenie:

$sudo apt-get install subversion 
Powiązane problemy