Git Server 安装指南

tm_open 12年前
     <p style="text-align:center;margin:0cm 0cm 0pt;" class="MsoNormal" align="center"><b style="mso-bidi-font-weight:normal;"><span style="font-family:Verdana;font-size:15pt;" lang="EN-US">Git Server Installation Guide       <!--?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /-->       <o:p></o:p></span></b></p>    <p style="margin:0cm 0cm 0pt;" class="MsoPlainText"><b style="mso-bidi-font-weight:normal;"><span style="mso-bidi-font-family:宋体;mso-hansi-font-family:宋体;" lang="EN-US"><span style="font-family:宋体;"><span style="font-size:small;">Time:2012-02-06         <o:p></o:p></span></span></span></b></p>    <p style="margin:0cm 0cm 0pt;" class="MsoPlainText"><b style="mso-bidi-font-weight:normal;"><span style="mso-bidi-font-family:宋体;mso-hansi-font-family:宋体;" lang="EN-US"><span style="font-family:宋体;"><span style="font-size:small;">Author: peter<span style="mso-spacerun:yes;">   </span>tianmin         <o:p></o:p></span></span></span></b></p>    <p style="margin:0cm 0cm 0pt;" class="MsoPlainText"><b style="mso-bidi-font-weight:normal;"><span style="mso-bidi-font-family:宋体;mso-hansi-font-family:宋体;" lang="EN-US">       <o:p>        <span style="font-family:宋体;font-size:small;"> </span>       </o:p></span></b></p>    <p style="margin:0cm 0cm 0pt;" class="MsoPlainText"><span style="font-family:宋体;"><span style="font-size:small;"><b style="mso-bidi-font-weight:normal;"><span style="mso-bidi-font-family:宋体;mso-hansi-font-family:宋体;" lang="EN-US">System Environment:</span></b><span style="mso-bidi-font-family:宋体;mso-hansi-font-family:宋体;" lang="EN-US">        <o:p></o:p></span></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoPlainText"><b style="mso-bidi-font-weight:normal;"><span style="mso-bidi-font-family:宋体;mso-hansi-font-family:宋体;" lang="EN-US"><span style="font-family:宋体;"><span style="font-size:small;">OS: Linux(ubuntu)         <o:p></o:p></span></span></span></b></p>    <p style="margin:0cm 0cm 0pt;" class="MsoPlainText"><b style="mso-bidi-font-weight:normal;"><span style="mso-bidi-font-family:宋体;mso-hansi-font-family:宋体;" lang="EN-US"><span style="font-family:宋体;"><span style="font-size:small;">User: ghl         <o:p></o:p></span></span></span></b></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">1. Install git, openSSH, python setuptools       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ sudo apt-get install git-core       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ sudo apt-get install openssh-server       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ sudo apt-get install openssh-client       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ sudo apt-get install python-setuptools       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">2.Add a new user with name “git” (manage user)       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ sudo adduser -m git       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ sudo passwd git       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-size:small;"><span style="font-family:Verdana;" lang="EN-US">3. </span><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">Generate Key</span><span style="font-family:Verdana;" lang="EN-US">       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ ssh-keygen -t rsa       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-size:small;"><span style="font-family:Verdana;" lang="EN-US">4. </span><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">Install </span><span style="font-family:Verdana;" lang="EN-US">gitosis       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ cd ~/src       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ git clone git://eagain.net/gitosis.git       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ cd gitosis       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ python setup.py install       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><i style="mso-bidi-font-style:normal;"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">Comments: gitosis is the administration tool for configuring git user rights.        <o:p></o:p></span></span></i></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">5. Init gitosis       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ sudo -H -u git gitosis-init < ~/.ssh/id_rsa.pub       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-size:small;"><span style="font-family:Verdana;" lang="EN-US">6. Modify post-update</span><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US"> file</span><span style="font-family:Verdana;" lang="EN-US">       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">7. clone gitosis       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-size:small;"><span style="font-family:Verdana;" lang="EN-US">$ git clone git@</span><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">127.0.0.1</span><span style="font-family:Verdana;" lang="EN-US">:gitosis-admin.git       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ cd gitosis-admin       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-size:small;"><span style="font-family:Verdana;" lang="EN-US">8. Manage by gitosis and </span><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">Finished       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US"><span style="font-size:small;">8.a How to add user for git server access?       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 21pt;" class="MsoNormal"><span style="font-size:small;"><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">Collect the pulic key file to </span><span style="font-family:Verdana;" lang="EN-US">gitosis-admin</span><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">/keydir for each user(id_rsa.pub),       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 21pt;" class="MsoNormal"><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US"><span style="font-size:small;">And rename the id_rsa.pub to username.pub for each user.       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ cp “path”/”username.pub” ./keydir       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US"><span style="font-size:small;">8.b How to configure the rights for each project/user?       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">$ vi gitosis.conf       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">[gitosis]       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">[group gitosis-admin]       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">writable = gitosis-admin       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">members = ghl       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">[group foo-write]       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">writable = foo       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">members = ghl john       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">[group foo-read]       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">readonly = foo       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt 31.5pt;mso-para-margin-left:3.0gd;" class="MsoNormal"><span style="font-family:Verdana;" lang="EN-US"><span style="font-size:small;">members = rose       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-size:small;"><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">$ commit </span><span style="mso-ascii-font-family:Verdana;" lang="EN-US"><span style="font-family:Calibri;">–</span></span><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">am </span><span style="mso-ascii-font-family:Verdana;" lang="EN-US"><span style="font-family:Calibri;">”</span></span><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">your comments</span><span style="font-family:Calibri;"><span style="mso-ascii-font-family:Verdana;" lang="EN-US">”</span><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">        <o:p></o:p></span></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US"><span style="font-size:small;">$ git push       <o:p></o:p></span></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US">      <o:p>       <span style="font-size:small;"> </span>      </o:p></span></p>    <p style="margin:0cm 0cm 0pt;" class="MsoNormal"><span style="font-family:Verdana;mso-hansi-font-family:Calibri;" lang="EN-US"><span style="font-size:small;">Finish!       <o:p></o:p></span></span></p>