GNU / Linux üzerinde bir Subversion (SVN) sunucusu nasıl kurulur - Ubuntu [kapalı]


95

Subversion sunucusu olarak çalışmak istediğim Ubuntu çalıştıran bir dizüstü bilgisayarım var. Hem yerel olarak kendim için, hem de diğerleri için uzaktan. Bunu çalıştırmak için gereken adımlar nelerdir? Lütfen aşağıdaki adımları ekleyin:

  • Apache'yi ve gerekli modülleri alın ve yapılandırın (Bir SVN sunucusu oluşturmanın başka yolları olduğunu biliyorum, ancak Apache'ye özgü olmasını isterim)
  • Sunucuya erişmenin güvenli bir yolunu yapılandırın (SSH / HTTPS)
  • Bir dizi yetkili kullanıcıyı yapılandırın (olduğu gibi, taahhüt etme yetkisine sahip olmaları gerekir, ancak göz atmakta özgürdürler)
  • Kurulumu ilk kaydetme (bir tür "Merhaba dünya") ile doğrulayın

Bu adımlar, komut satırı veya GUI uygulama talimatlarının herhangi bir karışımını içerebilir. Yapabiliyorsanız, lütfen talimatların nerede belirli bir dağıtım veya sürüme özgü olduğunu ve bunun yerine bir kullanıcının belirli bir araç seçiminin nerede kullanılabileceğini not edin (örneğin, vi yerine nano ).


Subversion sunucusunu Ubuntu'da ve istemcileri herhangi bir platformda kullanabilir miyim? Kaplumbağa SVN istemcisi gibi pencerelerde?
Raheel Hasan

Yanıtlar:


145

Dizüstü bilgisayarımı bir Subversion sunucusu yapmak için attığım adımlar. Kredi gitmek zorundadır AlephZarro onun yön için buraya . Şu anda çalışan bir SVN sunucum var (şu anda yalnızca yerel olarak test edilmiştir).

Özel kurulum: Kubuntu 8.04 Hardy Heron

Bu kılavuza uymak için gerekenler:

  • apt-get paket yöneticisi programı
  • metin editörü (kate kullanıyorum)
  • sudo erişim hakları

1: Apache HTTP sunucusunu ve gerekli modülleri kurun:

sudo apt-get install libapache2-svn apache2

Aşağıdaki ekstra paketler yüklenecek:

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

2: SSL'yi etkinleştirin

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

Dosyada aşağıdakileri ekleyin veya kontrol edin:

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

3: Bir SSL sertifikası oluşturun:

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: Sanal ana bilgisayar oluştur

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

Değiştir (ports.conf içinde):

"NameVirtualHost *" to "NameVirtualHost *:443"

ve (svnserver'da)

<VirtualHost *> to <VirtualHost *:443>

ServerAdmin altında (ayrıca svnserver dosyasında) ekleyin:

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

5: Siteyi etkinleştirin:

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

Uyarıların üstesinden gelmek için:

sudo kate /etc/apache2/apache2.conf

Ekle:

"ServerName $your_server_name"

6: Depo (depoları) ekleme: Aşağıdaki kurulum, birden fazla depoyu barındırmak istediğimizi varsayar. İlk depoyu oluşturmak için bunu çalıştırın:

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. Daha fazla depo için: 6. adımı tekrar uygulayın (REPOS'un değerini değiştirerek), adımı atlayınmkdir /var/svn

7: Kimliği doğrulanmış bir kullanıcı ekleyin

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

8: WebDAV ve SVN'yi etkinleştirin ve yapılandırın:

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

Ekle veya açıklamayı kaldır:

<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 sunucusunu yeniden başlatın:

sudo /etc/init.d/apache2 restart

10: Doğrulama:

Bir tarayıcı başlattı:

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

Her ikisi de bir kullanıcı adı ve şifre gerektiriyordu. Yorumsuz düşünüyorum:

<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>

içinde /etc/apache2/mods-available/dav_svn.conf, anonim taramaya izin verir.

Tarayıcı "Revizyon 0: /" gösteriyor

Bir şey yapın:

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

Sertifikayı kabul edin ve şifreyi girin. Az önce ne taahhüt ettiğine bir bak:

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

Bu adımları izleyerek (kopyalama / yapıştırmada herhangi bir hata yapmadığımı varsayarak), dizüstü bilgisayarımda çalışan bir SVN havuzum vardı.


Talimatlar Jaunty'de de mükemmel çalıştı. Teşekkürler!
Michael Moussa

6
Mükemmel çalışıyor gibi görünüyordu, ancak ona erişmeye çalışırken 403 yasak alıyorum ve şifre sorulmuyor. Neyin yanlış olabileceğine dair herhangi bir ipucu?
korona

@korona: Ne şekilde erişiyor: SVN komutlarını çalıştırmak mı yoksa göz atmak mı?
Grundlefleck

1
"NameVirtualHost *" to "NameVirtualHost *:443"<VirtualHost *> to <VirtualHost *:443>svnserver ayarlarında iken ports.conf içindedir . bundan bahsedilmelidir. Kafam iyice karıştı çünkü NameVirtualHost için svnserver ayarlarında arama yaptım ve bulamadım.
Wandang

1
Debian Stretch'te bunun libapache2-mod-svnyerine yüklemeniz gerekiyor gibi görünüyor libapache2-svn(ikincisi artık mevcut olmadığı için).
TheStoryCoder

2

Daha sonra, yürütmem gerekiyordu (yukarıda alıntılanan örnek bağlamında)

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

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

Aksi takdirde, yerel değişiklikleri gerçekleştirirken 409 hatası almaya devam ettim (taahhütler sunucu tarafında etkili olsa da, yerel güncellemeleri takip etmem gerekiyordu)


1

Bu makale , tüm sürecin oldukça iyi bir özetini veriyor gibi görünüyor. Talimatları izlemenizi ve ardından benim ve diğer kişilerin bu yanıtlarda bağlantı kurduğu makalelerde ele alınmayan, kodladığınız herhangi bir sorunla ilgili daha spesifik sorular göndermenizi tavsiye ederim.


1

Web sunucusuna bastığınızda 403 yasaklanırsa bunun nedeni, yapılandırma dosyanızda belirttiğiniz gibi olmayan bir ana bilgisayar adı (örn. Localhost veya 127.0.0.1) kullanmanız olabilir. Bunun yerine https: // her neyseousetasyourhostname'i tıklamayı deneyin ...


Başka bir 403 nedeni: svn yolunu bir sembolik bağa ayarla. Svn yolunuz bir sembolik bağ ise, sembolik bağların izlenmesine izin vermeniz gerekir.
copolii

-2

Lütfen terminalde tek bir komut yazın.

Terminali açmak için lütfen Ctrl+ Alt+ tuşlarına basın Tve ardından şu komutu yazın:

$sudo apt-get install subversion

-2

Apache için:

sudo apt-get -yq install apache2

SSH için:

sudo apt-get -yq install openssh-server

Subversion için:

sudo apt-get -yq install subversion subversion-tools

İsterseniz bunları aşağıdaki gibi tek bir komutta birleştirebilirsiniz:

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

Gerisine yardım edemem ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.