Cara mengatur server Subversion (SVN) di GNU / Linux - Ubuntu [ditutup]

95

Saya memiliki laptop yang menjalankan Ubuntu yang saya ingin bertindak sebagai server Subversion. Baik untuk diri saya sendiri untuk berkomitmen secara lokal, dan untuk orang lain dari jarak jauh. Apa langkah-langkah yang diperlukan agar ini berfungsi? Harap sertakan langkah-langkah untuk:

  • Dapatkan dan konfigurasikan Apache, dan modul yang diperlukan (saya tahu ada cara lain untuk membuat server SVN, tetapi saya menginginkannya khusus Apache)
  • Konfigurasikan cara aman untuk mengakses server (SSH / HTTPS)
  • Konfigurasikan sekumpulan pengguna yang diberi otorisasi (seperti dalam, mereka harus diberi otorisasi untuk berkomitmen, tetapi bebas untuk menjelajah)
  • Validasi penyiapan dengan komit awal (semacam "Halo dunia")

Langkah-langkah ini dapat melibatkan campuran baris perintah atau instruksi aplikasi GUI. Jika Anda bisa, harap perhatikan di mana instruksi khusus untuk distribusi atau versi tertentu, dan di mana pilihan pengguna dari alat tertentu dapat digunakan sebagai gantinya (katakanlah, nano bukan vi ).

Grundlefleck
sumber
Dapatkah saya menggunakan server Subversion di Ubuntu, dan klien di platform apa pun? seperti klien Tortoise SVN di windows?
Raheel Hasan

Jawaban:

146

Langkah-langkah yang telah saya lakukan untuk menjadikan laptop saya sebagai server Subversion. Penghargaan harus diberikan kepada AlephZarro untuk arahannya di sini . Saya sekarang memiliki server SVN yang berfungsi (yang saat ini hanya diuji secara lokal).

Pengaturan khusus: Kubuntu 8.04 Hardy Heron

Persyaratan untuk mengikuti panduan ini:

  • program pengelola paket apt-get
  • editor teks (saya menggunakan kate)
  • hak akses sudo

1: Instal server HTTP Apache dan modul yang diperlukan:

sudo apt-get install libapache2-svn apache2

Paket tambahan berikut akan diinstal:

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

2: Aktifkan SSL

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

Tambahkan atau periksa apakah yang berikut ini ada di file:

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

3: Buat sertifikat 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: Buat host virtual

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

Ubah (di ports.conf):

"NameVirtualHost *" to "NameVirtualHost *:443"

dan (di svnserver)

<VirtualHost *> to <VirtualHost *:443>

Tambahkan, di bawah ServerAdmin (juga di file svnserver):

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

5: Aktifkan situs:

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

Untuk mengatasi peringatan:

sudo kate /etc/apache2/apache2.conf

Menambahkan:

"ServerName $your_server_name"

6: Menambahkan repositori: Pengaturan berikut mengasumsikan kita ingin meng-host banyak repositori. Jalankan ini untuk membuat repositori pertama:

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. Untuk lebih banyak repositori: lakukan langkah 6 lagi (ubah nilai REPOS), lewati langkah tersebutmkdir /var/svn

7: Tambahkan pengguna yang diautentikasi

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

8: Mengaktifkan dan mengonfigurasi WebDAV dan SVN:

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

Tambahkan atau hapus komentar:

<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: Mulai ulang server apache:

sudo /etc/init.d/apache2 restart

10: Validasi:

Mengaktifkan browser:

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

Keduanya membutuhkan nama pengguna dan kata sandi. Saya pikir tidak berkomentar:

<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>

di /etc/apache2/mods-available/dav_svn.conf, akan memungkinkan penjelajahan anonim.

Browser menampilkan "Revisi 0: /"

Lakukan sesuatu:

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

Terima sertifikat dan masukkan kata sandi. Lihat apa yang baru saja Anda lakukan:

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

Mengikuti langkah-langkah ini (dengan asumsi saya belum membuat salinan / tempel kesalahan), saya memiliki repositori SVN yang berfungsi di laptop saya.

Grundlefleck
sumber
Instruksi bekerja dengan sempurna di Lela juga. Terima kasih!
Michael Moussa
6
Tampaknya berfungsi dengan sempurna, tetapi saya mendapatkan 403 terlarang ketika mencoba mengaksesnya, dan tidak ada prompt untuk kata sandi. Ada petunjuk tentang apa yang mungkin salah?
korona
@korona: Mengaksesnya dengan cara apa: menjalankan perintah SVN atau menjelajahinya?
Grundlefleck
1
"NameVirtualHost *" to "NameVirtualHost *:443"ada di ports.conf sementara <VirtualHost *> to <VirtualHost *:443>dalam pengaturan svnserver. ini harus disebutkan. saya cukup bingung karena saya mencari di pengaturan svnserver untuk NameVirtualHost dan tidak dapat menemukannya.
Wandang
1
Di Debian Stretch, tampaknya Anda perlu menginstal libapache2-mod-svndaripada libapache2-svn(karena yang terakhir tidak lagi tersedia).
TheStoryCoder
2

Setelah itu, saya perlu mengeksekusi (dalam konteks contoh yang dikutip di atas)

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

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

Jika tidak, saya terus menerima kesalahan 409 saat melakukan modifikasi lokal (meskipun komitmennya efektif dari sisi server, saya perlu menindaklanjuti dengan pembaruan lokal)

Thierry Marianne
sumber
1

Artikel ini sepertinya memberikan ikhtisar yang cukup bagus dari keseluruhan proses. Saya akan merekomendasikan mengikuti petunjuk, dan kemudian memposting beberapa pertanyaan yang lebih spesifik tentang masalah apa pun yang Anda encouter yang tidak dibahas dalam artikel yang saya dan orang lain tautkan dalam tanggapan ini.

Kibbee
sumber
1

Jika Anda mendapatkan 403 yang dilarang ketika Anda membuka webserver, itu mungkin karena Anda menggunakan nama host yang tidak Anda tentukan dalam file konfigurasi Anda (yaitu localhost atau 127.0.0.1). Coba tekan https: // whateveryousetasyourhostname sebagai gantinya ...

PuO2
sumber
Penyebab 403 lainnya: setel jalur svn ke symlink. Jika jalur svn Anda adalah symlink, Anda harus mengizinkan symlink berikut.
copolii
-2

Silakan tulis satu perintah di terminal.

Untuk membuka terminal silahkan tekan Ctrl+ Alt+ T, lalu ketikkan perintah ini:

$sudo apt-get install subversion
Ashish Saini
sumber
-2

Untuk Apache:

sudo apt-get -yq install apache2

Untuk SSH:

sudo apt-get -yq install openssh-server

Untuk Subversion:

sudo apt-get -yq install subversion subversion-tools

Jika Anda mau, Anda dapat menggabungkan ini menjadi satu perintah seperti:

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

Saya tidak dapat membantu dengan yang lainnya ...

UnkwnTech
sumber