GNU / Linux पर एक सबवर्सन (SVN) सर्वर कैसे सेट करें - Ubuntu [बंद]


95

मेरे पास एक लैपटॉप है जो उबंटू चल रहा है जिसे मैं एक तोड़फोड़ सर्वर के रूप में कार्य करना चाहूंगा। दोनों अपने लिए स्थानीय स्तर पर, और दूसरों के लिए दूर से प्रतिबद्ध हैं। इस कार्य को करने के लिए आवश्यक कदम क्या हैं? कृपया इन चरणों को शामिल करें:

  • अपाचे को प्राप्त करें और कॉन्फ़िगर करें, और आवश्यक मॉड्यूल (मुझे पता है कि एसवीएन सर्वर बनाने के अन्य तरीके हैं, लेकिन मैं इसे अपाचे-कम करना चाहूंगा)
  • सर्वर तक पहुंचने का सुरक्षित तरीका कॉन्फ़िगर करें (SSH / HTTPS)
  • अधिकृत उपयोगकर्ताओं का एक सेट कॉन्फ़िगर करें (जैसा कि, उन्हें प्रतिबद्ध करने के लिए अधिकृत करना चाहिए, लेकिन ब्राउज़ करने के लिए स्वतंत्र हैं)
  • प्रारंभिक प्रतिबद्ध के साथ सेटअप को मान्य करें (एक "हेलो दुनिया" प्रकार की)

इन चरणों में कमांड लाइन या GUI एप्लिकेशन निर्देशों का कोई भी मिश्रण शामिल हो सकता है। यदि आप कर सकते हैं, तो कृपया ध्यान दें कि जहां निर्देश एक विशेष वितरण या संस्करण के लिए विशिष्ट हैं, और जहां एक विशेष उपकरण के उपयोगकर्ताओं की पसंद का उपयोग किया जा सकता है (जैसे, vi के बजाय नैनो )।


क्या मैं उबंटू और किसी भी प्लेटफ़ॉर्म पर क्लाइंट सबवर्सन सर्वर का उपयोग कर सकता हूं? खिड़कियों पर कछुआ SVN ग्राहक की तरह?
राहील हसन

जवाबों:


146

मैंने अपने लैपटॉप को एक तोड़फोड़ सर्वर बनाने के लिए कदम उठाए हैं। श्रेय को यहां अपनी दिशाओं के लिए एलेफजारो जाना चाहिए । अब मेरे पास एक कामकाजी एसवीएन सर्वर है (जिसे वर्तमान में केवल स्थानीय स्तर पर परीक्षण किया गया है)।

विशिष्ट सेटअप: कुबंटु 8.04 हार्डी बगुला

इस गाइड का पालन करने के लिए आवश्यकताएँ:

  • apt-get package प्रबंधक कार्यक्रम
  • पाठ संपादक (मैं केट का उपयोग करता हूं)
  • सुडोल पहुँच अधिकार

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: एसएसएल प्रमाणपत्र जेनरेट करें:

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: रिपॉजिटरी (ies) जोड़ना: निम्नलिखित सेटअप मानता है कि हम कई रिपॉजिटरी की मेजबानी करना चाहते हैं। पहला रिपॉजिटरी बनाने के लिए इसे चलाएं:

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: अपाचे सर्वर को पुनरारंभ करें:

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, अनाम ब्राउज़िंग की अनुमति देगा।

ब्राउज़र "संशोधन 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 रिपॉजिटरी थी।


निर्देश पूरी तरह से जयंती पर भी काम किया। धन्यवाद!
माइकल मौसा

6
पूरी तरह से काम करने के लिए आया था, लेकिन मुझे इसे एक्सेस करने की कोशिश करते समय 403 निषिद्ध है, और पासवर्ड के लिए कोई संकेत नहीं। क्या गलत हो सकता है पर कोई संकेत?
कोरोना

@korona: इसे किस तरीके से एक्सेस करना: SVN कमांड चलाना या ब्राउजिंग करना?
ग्रेंडलफ्लेक

1
"NameVirtualHost *" to "NameVirtualHost *:443"svnserver <VirtualHost *> to <VirtualHost *:443>सेटिंग्स में है, जबकि ports.conf में है। इसका उल्लेख किया जाना चाहिए। मैं बहुत भ्रमित हो गया क्योंकि मैंने NameVirtualHost के लिए svnserver सेटिंग्स में खोज की और उसे खोज नहीं पाया।
वांडंग

1
डेबियन स्ट्रेच में ऐसा लगता है कि आपको 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-acheachebb

अन्यथा मुझे स्थानीय संशोधनों को करते समय एक 409 त्रुटि प्राप्त हुई (हालांकि प्रतिबद्धता सर्वर साइड प्रभावी थी, मुझे स्थानीय चरणों का पालन करने की आवश्यकता थी)


1

यह लेख पूरी प्रक्रिया का एक बहुत अच्छा ठहरनेवाला लगता है। मैं निर्देशों का पालन करने की सलाह दूंगा, और फिर आपके द्वारा एन्काउंटर की गई किसी भी समस्या के बारे में कुछ और विशिष्ट प्रश्नों को पोस्ट करना, जिन्हें लेख I और अन्य लोगों ने इन प्रतिक्रियाओं में नहीं जोड़ा है।


1

यदि आप वेबसर्वर को हिट करते समय 403 मना करते हैं, तो यह हो सकता है क्योंकि आपने एक होस्टनाम का उपयोग किया है जो कि आप अपनी कॉन्फिगर फाइल (यानी लोकलहोस्ट या 127.0.0.1) में निर्दिष्ट नहीं है। इसके बजाय https: // whateveryousetasyourhostname मारने की कोशिश करें ...


एक और 403 कारण: सेट सिम्नल पथ सिम्कलिन के लिए। यदि आपका svn पथ एक सिम्लिंक है, तो आपको निम्नलिखित सिमिलिंक की अनुमति देनी होगी।
कोपोली

-2

कृपया टर्मिनल पर एक कमांड लिखें।

टर्मिनल खोलने के लिए कृपया Ctrl+ Alt+ दबाएँ Tऔर फिर यह कमांड टाइप करें:

$sudo apt-get install subversion

-2

अपाचे के लिए:

sudo apt-get -yq install apache2

SSH के लिए:

sudo apt-get -yq install openssh-server

तोड़फोड़ के लिए:

sudo apt-get -yq install subversion subversion-tools

यदि आप चाहें तो आप इन्हें एक कमांड में जोड़ सकते हैं जैसे:

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

मैं बाकी लोगों की मदद नहीं कर सकता ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.