zoukankan      html  css  js  c++  java
  • Git服务器安装详解及安装遇到问题解决方案【转】

    转自:http://www.cnblogs.com/grimm/p/5368777.html

    git是一个不错的版本管理的工具。现在自己在搞一个简单的应用程序开发,想使用git来进行管理。在Google了配置文档后,还是受了N多的挫折。某些文档质量不高,浪费了好多时间......

    好,切入正题:

    安装必要的git工具

    #apt-get install git git-core

    centos linux 下载git

    # wget https://www.kernel.org/pub/software/scm/git/git-2.8.1.tar.gz

    备注:安装时可能会遇到若干问题:
      1.编译缺少lib,使用yum安装
      2.没有设置prefix,不知道安装到那里
      3.安装完成直接执行git无反应,需要建立软连接

      make prefix=/usr/local all doc
      make prefix=/usr/local install install-doc
     
      wget http://git-core.googlecode.com/files/git-1.7.10.tar.gz
      tar zxvf git-1.7.10.tar.gz
      cd git-1.7.10
      ./configure --prefix=/usr/local/git
      make
      make install
      git依赖zlib-devel,openssl-devel,perl,cpio,expat-devel,gettext-devel这些包,如果出错基本上也是这些包造成的。我在安装时出现了如下错误。
     
      出现错误一:
      usr/bin/perl Makefile.PL PREFIX='/usr/local/git' INSTALL_BASE='' --localedir='/usr/local/git/share/locale'
      Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5   /usr/share/perl5 .) at Makefile.PL line 3.
      BEGIN failed--compilation aborted at Makefile.PL line 3.
      make[1]: *** [perl.mak] Error 2
      make: *** [perl/perl.mak] Error 2
      执行:
        yum install perl-ExtUtils-MakeMaker package.
      行进安装
      出现错误二:
       /bin/sh: msgfmt: command not found
      yum install gettext-devel
      可解决!
       

    Git在make的时候报错:Can't locate ExtUtils/MakeMaker.pm in @INC

    解决方法如下:

    yum -y install perl-devel perl-CPAN

    git 需要perl来编译。然后重新make

    Git Make时出现:tclsh failed; using unoptimized loading

        MSGFMT    po/bg.msg make[1]: *** [po/bg.msg] 错误 127

    yum install tcl  build-essential tk gettext

    安装之后使用https操作git 出现 :fatal: Unable to find remote helper for 'https'

    yum install -y curl curl-devel

    然后重新安装 git

    安装之后 git --version 仍然是旧版本(1.7.12)

    git 安装时不使用--prefix指定安装目录,默认安装到/usr/local/bin/git ,需要把/usr/local/bin/git 复制或者ln到 /usr/bin/git

      为了省时间,你可以利用各distribution的包管理工具来一键安装。若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本。Git 的每个版本都在不断尝试改进用户体验,所以能通过源代码自己编译安  装最新版本就再好不过了。有些 Linux 版本自带的安装包更新起来并不及时,所以除非你在用最新的 distro 或者 backports,那么从源代码安装其实该算是最佳选择。
      Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命  令安装:
      0. Git安装前环境配置:
          $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
          $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev 
      1. Git下载源:
          http://git-scm.com/downloads(official website)
          http://code.google.com/p/git-core 
          https://github.com/git/git  (大陆的朋友建议使用后俩个源下载)
      2. 解压缩包并进入Git目录:
         $ sudo tar zxf git-1.8.0.tar.gz 
         $ cd git-1.8.0
      3. 编译源码:
         $ sudo make prefix=/usr/local/git all doc
         // 这里同时指定all和doc这两个目标,指定doc是为了安装git的帮助文档到man手册里面,只指定all的话,默认并不包含git的帮助文档,这样在man手册中就查不到git的帮助。
      *********************************************************************
      在编译all目标时,可能会报下面的错:
            /bin/sh: curl-config: not found
            fatal error: openssl/ssl.h: No such file or directory
         这是因为git源码需要的一些开发包没有被安装。我是通过安装下面的包来解决这个问题的:
         $ sudo yum install libcurl4-openssl-dev
         网上有个方法是安装libssl-dev包,这个方法可以解决 fatal error: openssl/ssl.h: No such file or directory 的问题,但是/bin/sh: curl-config: not found问题还是存在,编译的时候还是编不过。在我的  机子上,安装libcurl4-openssl-dev能同时解决这两个问题,安装libcurl4-openssl-dev时,会自动安装libssl-dev包。
      在编译doc目标时,可能会报下面的错:
                /bin/sh: line 1: asciidoc: command not found
       这个包可以到这里下载并执行make(./configure ;make ;make install)常用方法安装http://sourceforge.net/projects/asciidoc
    /bin/sh: line 1: xmlto: command not found 
       xmlto这个包不太好找,不过有adam在,这些都是浮云(呵呵)。下载地址:https://fedorahosted.org/releases/x/m/xmlto/,安装方法同asciidoc。
    ************************************************************************
    4. 安装:
       $ sudo make prefix=/usr/local/git install install-doc
       // 这里同样,如果想要在man手册中看到git的帮助文档,需要额外安装,即上面的install-doc。如果只指定install目标的话,在man手册中是查不到git的相关命令帮助的。
    5. 查看新安装的git版本号:
       $ ./usr/local/git/bin/git --version
       git version 1.8.0
    6. 为了以后使用方便,我们这里做一个软连接:
       $ ln -s /usr/local/git/bin/* /usr/bin/
       
       
    =================================================
    极速安装git最新版(update 20131209):
    $ git clone git://git.kernel.org/pub/scm/git/git.git
    $ make prefix=/usr/local all        (编译)
    $ sudo make prefix=/usr/local install       (安装)
    =================================================

    安装好了以后,进行设置

    1. 创建一个git目录

    #mkdir /git

    #cd /git/

    #mkdir myproject

    2. 创建一个空的git仓库

    #git-init-db

    3. 创建工程的文件

    # echo "My test project" > test.txt


    * 此步很重要,如果要在远程clone这个project, 这个project必须是非空的,否则会失败。

    4. 使用git命令添加并提交新的文件

    #git-add test.txt

    #git-commit -m "Init"

    至此,本地的git 仓库就创建好了。想要在远程clone这个project,还需要使用git-daemon

    5. 安装git-daemon-run.  git-daemon-run实际是一个脚本管理工具,用来启动git-daemon.

    #apt-get install git-daemon

    6. 配置git-daemon-run

    #vi /etc/sv/git-daemon/run

    可以看到

    #!/bin/sh
    exec 2>&1
    echo 'git-daemon starting.'
    exec chpst -m64000000 /

      git-daemon --verbose --base-path=/var/cache /var/cache/git

    将最后一句的git-daemon修改为


      git-daemon --verbose --export-all --base-path=/git/

    * 这里,我加上了一个--export-all.看下man手册就可以知道,使用该选项后,在git仓库中就不必创建git-daemon-export-ok文件。如果不使用该选项,则在第4步还需要创建该文件,即

    #touch git-daemon-export-ok

    7.使用git-daemon-run工具重启git-daemon,干脆重启下系统

    8. 从client导出server(192.168.35.69)上的myproject

    git-clone git://192.168.35.69/myproject

  • 相关阅读:
    asp.net[web.config] httphandlers 与实现自由定义访问地址
    Web.config配置文件详解
    ASP.NET十分有用的页面间传值方法(转)
    web.config中authorization下的location中的path的设置 (转)
    基于FormsAuthentication的用户、角色身份认证(转)
    FormsAuthentication.RedirectFromLoginPage 登录
    php代码审计-下载站系统Simple Down v5.5.1 xss跨站漏洞分析
    创建二维码生成器
    更新自制入库价格(结账)
    常用的系统存储过程
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/7091285.html
Copyright © 2011-2022 走看看