मैंने इसका जवाब आगे बढ़ाने का फैसला किया क्योंकि यह जेरिट कम्युनिटी के लिए जरूरी है। वर्तमान में, वहाँ Gerrit के लिए उन्नत सेटअप को कवर ट्यूटोरियल की एक पूरी बहुत कुछ नहीं कर रहे हैं। मुझे उम्मीद है कि यह दूसरों को XP / चंचल प्रथाओं का पता लगाने में मदद करेगा और गेरिट को ऊपर और चलाने में मदद करेगा। एक बार जब आप सभी सूक्ष्म सेटअप चुनौतियों और विवरणों को पा लेते हैं तो यह एक महान उपकरण है।
यह इंस्टॉल ट्युटोरियल इस मायने में विशिष्ट है कि यह विशिष्ट वातावरण प्रदान करता है:
- विंडोज 2008 सर्वर
- PostgreSQL
- बिल्ला
- सक्रिय निर्देशिका के माध्यम से LDAP
- Gerrit
- msysgit
शुरू करने से पहले, सुनिश्चित करें कि आपने अपने सिस्टम पर git इंस्टॉल किया है। Http://code.google.com/p/msysgit/downloads/list से विंडोज़ के लिए नवीनतम msysgit कमांड लाइन टूल डाउनलोड करें
सुनिश्चित करें कि आपको "विंडोज के लिए आधिकारिक गिट के लिए पूर्ण इंस्टॉलर" मिल जाएगा।
- MSysGit स्थापित करें
- संकेत मिलने पर चूक का उपयोग करें
- Git कॉन्फ़िगर करें
यदि आप msysgit में GitWeb संस्करण का उपयोग करने का इरादा रखते हैं, तो आप CGI.pm के आसपास कुछ मुद्दों को नोटिस करेंगे। मैं इस मुद्दे को हल करने के लिए एक फिक्स का उल्लेख करना चाहूंगा।
मिस्सिट्जर डिस्ट्रो के साथ 1.7.8 के रूप में शामिल पर्ल टूट गया है, http://groups.google.com/group/msysgit/browse_thread/thread/ba3501f1f0ed95af । यूनिकोर फोल्डर utf8_heavy.pl और CGI.pm के साथ गायब है। आप पर्ल मॉड्यूल की जाँच करके सत्यापित कर सकते हैं:
perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e "" आप संभवतः निम्नलिखित अपवाद का सामना करेंगे:
$ perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e "" CGI.pm को @INC (@INC में शामिल नहीं किया जा सकता है: /usl -lib/perl5/5.8/msys/ usr / lib / p erl5 / 5.8.8 /usr/lib/perl5/site_perl/5.8.8/msys/usr/lib/perl5/site_perl/5.8.8 / u sr / lib / perl5 / site_perl।)। BEGIN विफल - संकलन निरस्त हो गया।
यदि आप CGI.pm को याद कर रहे हैं, तो आपको मॉड्यूल को msys पर्यावरण पर तैनात करना होगा: आपको उन्हें 5.8.8 डिस्ट्रो से पुनः प्राप्त करना होगा:
http://strawberryperl.com/releases.html
फ़ाइल: स्ट्रॉबेरी-perl-5.8.8.3.zip
सामग्री: बिन / देय / साइट /
msysgit / lib / perl5 / 5.8.8 में काम की सामग्री की प्रतिलिपि बनाएँ और मौजूदा फ़ाइलों को अधिलेखित करें।
यदि कमांडलाइन git का उपयोग कर रहे हैं, तो git में अपनी वैश्विक कॉन्फ़िगरेशन सेटिंग्स जोड़ें:
git config --global user.name "Your Name"
git config --global user.email you@corporation.com
git config --global core.autocrlf false
सुनिश्चित करें कि यहां इस्तेमाल किए गए क्रेडेंशियल्स जेरिट में क्रेडेंशियल्स से मेल खाते हैं। अन्यथा, gerrit आपके अनुरोध को अस्वीकार कर देगा।
जेरिट को स्थापित और कॉन्फ़िगर करने के निर्देश निम्नानुसार हैं:
- सबसे पहले, सर्वर होस्टिंग को लॉगिन करें और पोस्ट करें और जेरिट के लिए एक उपयोगकर्ता और डेटाबेस बनाएं
- createuser --username = post -es -D -P -E gerrit2
- createb --username = postgres -E UTF-8 -O gerrit2 reviewdb
- अब, होस्ट पर वापस लौटें, यदि अलग है, तो जेरिट के लिए और जेरिट की तैनाती के लिए 3 निर्देशिका बनाएं
- जिरिट के लिए एक बेस इंस्टाल डायरेक्टरी बनाएँ, अधिमानतः युद्ध परिनियोजन सामग्री के लिए एक संस्करणबद्ध निर्देशिका
- Tomcat के लिए एक उपनिर्देशिका बनाएँ
- स्कीमा और कॉन्फ़िगरेशन को लागू करने के लिए एक कॉन्फ़िगरेशन निर्देशिका बनाएं
- सामग्री इस तरह दिखनी चाहिए:
- Gerrit
- Http://tomcat.apache.org/download-60.cgi से टॉमकट डाउनलोड करें
- नोट: अधिकांश लिनक्स वितरणों को यह उनके अपडेट मैनेजरों से उपलब्ध होगा। उदाहरण: Ubuntu पर Synaptic का उपयोग करें
- अपने tomcat को tomcat निर्देशिका में स्थापित करें
- से नवीनतम gerrit.war डाउनलोड
http://code.google.com/p/gerrit/downloads/list ।
- बेस जेरेट डायरेक्टरी में फाइल कॉपी करें
- युद्ध फ़ाइल को gerrit-XX उपनिर्देशिका में निकालें
- सीडी को गेरिट बेस डायरेक्टरी और रन
java -jar gerrit-2.4-rc0.war
init -d config
- इस कॉन्फ़िगरेशन में LDAP के लिए एक्स्ट्रा कलाकार शामिल हैं और प्रॉक्सी के पीछे चल रहे हैं, यदि आवश्यक नहीं है तो इन विकल्पों को कॉन्फ़िगर न करें।
निष्पादित:
C:\your_path\gerrit>java -jar gerrit-2.4-rc0.war init -d config
*** Gerrit Code Review 2.4-rc0
***
Create 'C:\your_path\gitserver\gerrit\config' [Y/n]? Y
*** Git Repositories
***
Location of Git repositories [git]: C:\your_path\gitserver\repository\ha
*** SQL Database
***
Database server type [H2/?]: postgresql
Server hostname [localhost]: database.corp.local
Server port [(POSTGRESQL default)]:
Database name [reviewdb]:
Database username [Administrator]: gerrit2
gerrit2's password :
confirm password :
*** User Authentication
***
Authentication method [OPENID/?]: LDAP
LDAP server [ldap://localhost]: ldaps://ldap.corp.local:
636
LDAP username : CN=Administrator,CN=Users,DC=corp,DC=local
CN=Administrator,CN=Users,DC=corp,DC=local's password :
confirm password :
Account BaseDN [DC=corp,DC=local:636]: CN=Users,DC=corp,DC=l
ocal
Group BaseDN [CN=Users,DC=corp,DC=local]:
*** Email Delivery
***
SMTP server hostname [localhost]: smtp.corporation.com
SMTP server port [(default)]: 465
SMTP encryption [NONE/?]: SSL
SMTP username [Administrator]: build@corporation.com
build@corporation.com's password :
confirm password :
*** Container Process
***
Run as [Administrator]:
Java runtime [C:\Program Files\Java\jre6]:
Copy gerrit.war to C:\your_path\gitserver\gerrit\config\bin\gerrit.war [Y/n]?
Copying gerrit.war to C:\your_path\gitserver\gerrit\config\bin\gerrit.war
*** SSH Daemon
***
Listen on address [*]:
Listen on port [29418]:
Gerrit Code Review is not shipped with Bouncy Castle Crypto v144
If available, Gerrit can take advantage of features
in the library, but will also function without it.
Download and install it now [Y/n]? n
Generating SSH host key ... rsa(simple)... done
*** HTTP Daemon
***
Behind reverse proxy [y/N]?
Use SSL (https://) [y/N]?
Listen on address [*]:
Listen on port [8080]:
Initialized C:\your_path\gitserver\gerrit\config
Automatic startup not supported on Win32.
- सर्वर के रूप में जेरिट को स्थापित करने के बारे में चिंता न करें, हम बाद में इसे कॉन्फ़िगर करेंगे
- Config \ etc \ gerrit.config संपादित करें
- जेरिट सेक्शन के तहत, conicalWebUrl = http://review.corporation.com/ के लिए एक सेटिंग जोड़ें
- यदि आपकी परियोजनाएं पारंपरिक प्रोजेक्ट.गीत प्रारूप का पालन नहीं करती हैं, तो निम्न अनुभाग जोड़ें:
- फ़ाइल लोकेटन जोड़ें और संबद्ध गुणों के साथ अपने gitweb सर्वर पर url डालें
gerrit.config अपडेट:
[gitweb]
cgi = C:\\path to msysgit\\Git\\share\\gitweb\\gitweb.cgi
url = https://gitweb.corporation.com
type = custom
project = ?p=${project};a=summary
revision = ?p=${project};a=commit;h=${commit}
branch = ?p=${project};a=shortlog;h=${branch}
filehistory = ?p=${project};a=history;hb=${branch};f=${file}
- यदि आप सेवा करने के लिए http / https का उपयोग कर रहे हैं, तो निम्नलिखित जोड़ें:
gerrit.config अपडेट:
[download]
scheme = http
- यदि आप सक्रिय निर्देशिका के साथ LDAP का उपयोग कर रहे हैं, तो आपको AD का समर्थन करने के लिए अपनी सेटिंग्स को अतिरिक्त सेटिंग्स जोड़ना होगा:
gerrit.config अपडेट:
[ldap]
sslVerify = true
server = ldaps://ldap.corp.local:636
username = CN=Administrator,CN=Users,DC=corp,DC=local
accountBase = CN=Users,DC=corp,DC=local
accountPattern = (&(objectClass=person)(sAMAccountName=${username}))
accountFullName = displayName
accountEmailAddress = mail
accountSshUserName = sAMAccountName
groupBase = CN=Users,DC=corp,DC=local
groupMemberPattern = (sAMAccountName=${username})
groupName = cn
- Bouncy Castles की नवीनतम रिलीज को http: //www.b Councilycastle.org/latest_releases.html से डाउनलोड करें
- कॉपी bcmail-jdk15on-147.jar, bcpg-jdk15on-147.jar, bcpkix-jdk15on-147.jar, bcprov-jdk15on-147.jar, bcprov-ext-jdk15on-147.jar से gerrit-XX_BB जानकारी \ lib
- Server.xml संपादित करें। अपने gerrit परिनियोजन को सर्वर के होस्ट सेक्शन में जोड़ें। xml: (नोट: Tomcat 7 के लिए, server.xml के बजाय, आपको reference.xml को संपादित करना पड़ सकता है। संदर्भ: http : //tomcat.apache.org-tomcat- 7.0-doc / jndi-datasource-example-howto.html # MySQL_DBCP_Example )
server.xml:
<Server port="8006" shutdown="SHUTDOWN">
<Service name="Catalina">
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true">
<Context path="" docBase="C:\your_path\gitserver\gerrit\gerrit-2.4" debug="0" reloadable="false">
<Resource
name="jdbc/ReviewDb"
type="javax.sql.DataSource"
username="gerrit2"
driverClassName="org.postgresql.Driver"
password="secret"
url="dbc:postgresql://yourPsqlServer:5432/reviewdb"
/>
</Context>
</Host>
</Engine>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"/>
<Connector port="8011" protocol="AJP/1.3" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
disableUploadTimeout="true" enableLookups="false"
acceptCount="100" URIEncoding="UTF-8" />
</Service>
</Server>
जब तक आप Apache HTTP सर्वर के साथ समीप आने का इरादा रखते हैं, आपको AJP कनेक्टर की आवश्यकता नहीं होती है। मैं इसका उपयोग SSL एन्क्रिप्शन को ऑफलोड करने और प्रमाण पत्र प्रबंधित करने के लिए करता हूं। जरूरत न हो तो बस इसे हटा दें। यदि आप स्टैंडअलोन चलाने का इरादा रखते हैं तो अपने HTTP कनेक्टर पोर्ट को 80 में बदलना सुनिश्चित करें।
ऊपर कॉन्फ़िगरेशन पोस्टग्रेज के साथ उपयोग के लिए है। यदि आप MySQL का उपयोग कर रहे हैं, तो आपको MySQL के लिए निम्नलिखित के साथ संसाधन को बदलना होगा:
server.xml:
<Resource
name="jdbc/ReviewDb"
type="javax.sql.DataSource"
username="gerrit2"
driverClassName="org.gjt.mm.mysql.Driver"
password="secret"
url="jdbc:mysql://yourMsqlServer/reviewdb?autoReconnect=true"
/>
इस बिंदु पर, अब आप एक सेवा के रूप में जेरिट को कॉन्फ़िगर करने और समीक्षा प्रणाली को ऑनलाइन लाने के लिए तैयार हैं।
- पहले, सर्विस के रूप में रनिंग गेरिट के लिए टॉमकैट सेटिंग्स को ट्वीक करें
- गोटो टॉमकैट / बिन और एडिट सर्विस.बाट
Jvm विकल्प nt सेवा के लिए अलग से सेट किए गए हैं। Nt सेवा को स्थापित करने से पहले आपको अपनी service.bat फ़ाइल को संशोधित करना होगा। यह फ़ाइल अन्य स्टार्टअप के साथ टॉमकैट / बिन डायरेक्टरी में रहती है। निम्न अनुभाग तक स्क्रॉल करें:
"%EXECUTABLE%" //US//%SERVICE_NAME% \++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" \--JvmMs 128 \--JvmMx 256
निम्नलिखित से मिलान करने के लिए इस पंक्ति को संशोधित करें:
"%EXECUTABLE%" //US//%SERVICE_NAME% \++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" \++JvmOptions="-XX:MaxPermSize=256m" \++JvmOptions="-XX:+CMSClassUnloadingEnabled" \++JvmOptions="-XX:+CMSPermGenSweepingEnabled" \--JvmMs 512 \--JvmMx 1024
प्रारंभिक मेमोरी, jvmM, को निश्चित रूप से 512Mb के लिए gerrit और विस्तारित, JvmMx के लिए 1024Mb पर सेट किया जाना चाहिए।
अब आप खिड़कियों के नीचे एक सेवा के रूप में जेरिट को तैनात करने के लिए तैयार हैं। बस निम्नलिखित निष्पादित करें:
C:\your_path\gitserver\gerrit\tomcat\bin>service install gerrit
Installing the service 'gerrit' ...
Using CATALINA_HOME: "C:\your_path\gitserver\gerrit\tomcat"
Using CATALINA_BASE: "C:\your_path\gitserver\gerrit\tomcat"
Using JAVA_HOME: "C:\Program Files\Java\jdk1.6.0_31"
Using JVM: "C:\Program Files\Java\jdk1.6.0_31\jre\bin\server\jvm.dl
l"
The service 'gerrit' has been installed.
C:\your_path\gitserver\gerrit\tomcat\bin>
अपना सर्वर मैनेजर गोटो और सर्विसेज नोड खोलें। जेरिट के लिए गुण खोलें और सुनिश्चित करें कि आपने स्टार्टअप प्रकार को स्वचालित पर सेट किया है:
डायलॉग लागू करें और बंद करें।
ठीक है ... हम अभी तक कर रहे हैं? दुर्भाग्य से नहीं, बस कुछ और कदम। वहाँ पर लटका हुआ।
अब आप सेवा शुरू करने के लिए तैयार हैं। बस जेरिट सेवा को हाइलाइट करें और बाईं ओर प्रारंभ विकल्प पर क्लिक करें।
टॉमकैट / लॉग डायरेक्टरी के तहत लॉग की समीक्षा करें। सुनिश्चित करें कि कोई बकाया त्रुटियां नहीं हैं। यदि आपको समस्या है, तो आप यहाँ या जेरिट मेलिंग सूची पर प्रश्न पूछ सकते हैं:
http://groups.google.com/group/repo-tiscuss
आपको अपने ब्राउज़र को गोटो करने में सक्षम होना चाहिए और अपने सर्वर के url को अभी Gerrit देखने के लिए दर्ज करना चाहिए: http://review.corporation.com:8080
आपको अपनी ssh सार्वजनिक कुंजी दर्ज करने के लिए प्रेरित किया जाएगा। यह केवल तभी आवश्यक है जब आप HTTP के बजाय ssh के माध्यम से Git / Gerrit का उपयोग करने का इरादा रखते हैं। मैं आगे बढ़ा और इसे स्थापित किया क्योंकि यह एक अच्छा विकल्प है।
SSH कॉन्फ़िगर करें
पहुँच के लिए एक ssh कुंजी बनाएँ:
प्रशासक @ सर्वर ~ / $ ssh-keygen -t rsa का परीक्षण करें
अपनी पसंद के ईमेल पते के साथ वेब इंटरफ़ेस के माध्यम से जेरिट में एक नया खाता पंजीकृत करें। किसी खाते पर साइन-इन और रजिस्टर करने वाला पहला उपयोगकर्ता स्वचालित रूप से पूरी तरह से विशेषाधिकार प्राप्त व्यवस्थापक समूह में रखा जाएगा, जो वेब और एसएसएच पर सर्वर प्रबंधन की अनुमति देता है। बाद में उपयोगकर्ताओं को स्वचालित रूप से पंजीकृत उपयोगकर्ताओं के रूप में पंजीकृत किया जाएगा।
एक बार अपने उपयोगकर्ता के रूप में साइन इन करने के बाद, आपको आरंभ करने के लिए एक छोटा सा विज़ार्ड मिल जाता है। विज़ार्ड आपको भरने में मदद करता है:
- वास्तविक नाम (गेरिट में दृश्य नाम)
- अपना ईमेल पंजीकृत करें (बाद में इसकी पुष्टि की जानी चाहिए)
- उपयोगकर्ता नाम जिसके साथ ssh + git पर जेरिट के साथ संवाद करना है, का चयन करें
सर्वर आपसे RSA सार्वजनिक कुंजी मांगेगा। यही वह कुंजी है जो हमने ऊपर उत्पन्न की है, और यह सुनिश्चित करने का समय है कि गेरिट हमारी नई कुंजी के बारे में जानता है और इसके द्वारा हमें पहचान सकता है।
user @ host: ~ $ cat .sh / id_rsa.pub
केवल पंजीकृत उपयोगकर्ताओं के लिए HTTP एक्सेस को कॉन्फ़िगर करें, जब तक कि आपका प्रोजेक्ट जनता के लिए खुला न हो:
एक HTTP पासवर्ड उत्पन्न करें
अपने स्वयं के लॉगिन को कॉन्फ़िगर करने के बावजूद, आपको अभी भी http / https के माध्यम से सर्वर के लिए जेरिट के लिए एक पासवर्ड जनरेट करना होगा। अपनी सेटिंग्स-> HTTP पासवर्ड कॉन्फ़िगरेशन पर जाएं और 'जनरेट पासवर्ड' पर क्लिक करें। Http (s) पर सभी git ऑपरेशंस के लिए इस पासवर्ड का उपयोग करें।
अब हम Gerrit को HTTP के माध्यम से टेस्ट कर सकते हैं। आपको उन प्रॉजेक्ट्स में क्लोन करने में सक्षम होना चाहिए जो आपके द्वारा Gerrit config में संदर्भित रिपॉजिटरी में मौजूद हैं।
क्लोन ऑपरेशन के साथ टेस्ट
Administrator@SERVER ~/test
$ git clone https://review.corporation.com/sandbox
अपने ssh खाते का परीक्षण करें
Administrator@SERVER~/test
$ ssh jhuntley@localhost -p 29418
**** Welcome to Gerrit Code Review ****
Hi Jason Huntley, you have successfully connected over SSH.
Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
git clone ssh://jhuntley@review.corporation.com:29418/REPOSITORY_NAME.g
it
Connection to localhost closed.
SSH के माध्यम से जेरिट से एक परियोजना का क्लोन:
Administrator@SERVER~/test
$ git clone ssh://jhuntley@127.0.0.1:29418/sandbox
Cloning into 'sandbox'...
remote: Counting objects: 183, done
remote: Finding sources: 100% (183/183)
remote: Total 183 (delta 0), reused 0 (delta 0)Receiving objects: 50% (92/183)
Receiving objects: 52% (96/183)
Receiving objects: 100% (183/183), 23.76 KiB, done.
यदि आपने अब तक हार नहीं मानी है, तो आप आराम कर सकते हैं, आपको अपने आप को एक काम करने वाले Gerrit कोड समीक्षा प्रणाली के साथ विंडोज 2008 सर्वर द्वारा होस्ट किया जाना चाहिए :) यह सेटअप के रूप में आम नहीं है और जैसा कि आप बता सकते हैं, सभी अतिरिक्त वारंट कदम। हालांकि, हम में से कुछ के पास सीमित संसाधन हैं और केवल वही प्रदान कर सकते हैं जो प्रदान किया गया है। मुझे उम्मीद है कि यह ट्यूटोरियल एक समान वातावरण में गेरिट को चलाने की कोशिश करने वालों की मदद करता है। Gerrit का उपयोग शुरू करने के लिए आपको अभी से तैयार होना चाहिए! का आनंद लें!
Gerrit का उपयोग करने के संबंध में अधिक जानकारी के लिए, कृपया Gerrit परियोजना के उपयोगकर्ता गाइड से परामर्श करें:
http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/index.html
IRC पर मदद के लिए शुक्रिया पियर्स !
आगामी संदर्भ के लिए
गेरिट प्रोजेक्ट के लिए ट्यूटोरियल को प्रलेखन में बदल दिया गया है। उन लोगों के लिए और एक अच्छे संदर्भ की आवश्यकता है। कृपया यहाँ पैच अनुरोध देखें:
https://gerrit-review.googlesource.com/#/c/37072