【问题标题】:How can git be installed on CENTOS 5.5?CENTOS 5.5如何安装git?
【发布时间】:2011-04-16 07:25:05
【问题描述】:

如何在 CENTOS 5.5 机器上安装 git? 我尝试从 yum 安装它,但得到以下消息。

root@host [~]# sudo yum install git
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: centos.mirrors.tds.net
 * base: mirror.ubiquityservers.com
 * extras: mirrors.serveraxis.net
 * updates: pubmirrors.reflected.net
addons                                                   |  951 B     00:00
base                                                     | 2.1 kB     00:00
extras                                                   | 2.1 kB     00:00
updates                                                  | 1.9 kB     00:00
Excluding Packages in global exclude list
Finished
Setting up Install Process
No package git available.
Nothing to do
root@host [~]#

【问题讨论】:

  • 在更高版本的 CentOS 上,使用标准的 'yum install git' 似乎工作得很好。
  • yum install git-core 也可以。

标签: git centos5


【解决方案1】:

只是:

sudo rpm -Uvh https://archives.fedoraproject.org/pub/archive/epel/5/i386/epel-release-5-4.noarch.rpm
sudo yum install git-core

【讨论】:

  • 请注意,“download.fedora.redhat.com”现在是“dl.fedoraproject.org”,但这仍然有效。
  • 这个答案比从源代码构建要好得多。使用 yum 持续管理软件包要容易得多。
  • 运行良好(Centos 5.9)
  • 除了上面的2个命令,我还得执行“sudo yum install git”来获取git二进制文件。我在 centOS 5.9
【解决方案2】:

刚刚使用以下说明安装了 git:

  1. 安装 EPEL V5
    #rpm -Uvh http://archives.fedoraproject.org/pub/archive/epel/5/x86_64/epel-release-5-4.noarch.rpm

  2. 安装 Git
    # yum install git git-daemon

  3. 检查
    # git --version
    git version 1.8.2.3

  4. 可选择安装 Git GUI
    # yum install git-gui

对于 i386,在第 1 步的 URL 中用 i386 替换 x86_64。

#rpm -Uvh http://archives.fedoraproject.org/pub/archive/epel/5/i386/epel-release-5-4.noarch.rpm

【讨论】:

    【解决方案3】:
    yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel
    
    Get the required version of GIT from https://www.kernel.org/pub/software/scm/git/ 
    
    wget https://www.kernel.org/pub/software/scm/git/{version.gz}
    
    tar -xzvf git-version.gz
    
    cd git-version
    
    ./configure
    
    make
    
    make install
    

    【讨论】:

      【解决方案4】:

      仅在 2017 年及以后更新此内容,因为 CentOS 5 已达到 EOL 并且 EPEL 的 URL 已更改:

      sudo rpm -Uvh http://archives.fedoraproject.org/pub/archive/epel/5/x86_64/epel-release-5-4.noarch.rpm
      sudo yum install git
      

      这会让你得到 git 1.8.2.3

      【讨论】:

      • 这个终于在 2019 年 12 月为我工作了
      【解决方案5】:

      看起来 CentOS 5 的存储库正在消失。这个问题中提到的大多数都不再在线,似乎没有Git,或者有一个非常旧的Git版本。下面是我用来从源代码构建 OpenSSL、IDN2、PCRE、cURL 和 Git 的脚本。 git://https:// 协议都可用于克隆。

      随着时间的推移,档案的名称将需要更新。例如,在撰写本文时,openssl-1.0.2k.tar.gz 是 1.0.2 系列中的最新版本。

      Dale Anderson 使用 RHEL 存储库的答案目前看起来不错,但它是一个相当旧的版本。 Red Hat 提供 Git 1.8 版本,而下面的脚本从源代码构建 2.12。


      #!/usr/bin/env bash
      
      # OpenSSL installs into lib64/, while cURL installs into lib/
      INSTALL_ROOT=/usr/local
      INSTALL_LIB32="$INSTALL_ROOT/lib"
      INSTALL_LIB64="$INSTALL_ROOT/lib64"
      
      OPENSSL_TAR=openssl-1.0.2k.tar.gz
      OPENSSL_DIR=openssl-1.0.2k
      
      ZLIB_TAR=zlib-1.2.11.tar.gz
      ZLIB_DIR=zlib-1.2.11
      
      UNISTR_TAR=libunistring-0.9.7.tar.gz
      UNISTR_DIR=libunistring-0.9.7
      
      IDN2_TAR=libidn2-0.16.tar.gz
      IDN2_DIR=libidn2-0.16
      
      PCRE_TAR=pcre2-10.23.tar.gz
      PCRE_DIR=pcre2-10.23
      
      CURL_TAR=curl-7.53.1.tar.gz
      CURL_DIR=curl-7.53.1
      
      GIT_TAR=v2.12.2.tar.gz
      GIT_DIR=git-2.12.2
      
      ###############################################################################
      
      # I don't like doing this, but...
      read -s -p "Please enter password for sudo: " SUDO_PASSWWORD
      
      ###############################################################################
      
      echo
      echo "********** zLib **********"
      
      wget "http://www.zlib.net/$ZLIB_TAR" -O "$ZLIB_TAR"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to download zLib"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      rm -rf "$ZLIB_DIR" &>/dev/null
      tar -xzf "$ZLIB_TAR"
      cd "$ZLIB_DIR"
      
      LIBS="-ldl -lpthread" ./configure --enable-shared --libdir="$INSTALL_LIB64"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to configure zLib"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      make -j 4
      
      if [ "$?" -ne "0" ]; then
          echo "Failed to build zLib"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      echo "$SUDO_PASSWWORD" | sudo -S make install
      
      cd ..
      
      ###############################################################################
      
      echo
      echo "********** Unistring **********"
      
      # https://savannah.gnu.org/bugs/?func=detailitem&item_id=26786
      wget "https://ftp.gnu.org/gnu/libunistring/$UNISTR_TAR" --no-check-certificate -O "$UNISTR_TAR"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to download IDN"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      rm -rf "$UNISTR_DIR" &>/dev/null
      tar -xzf "$UNISTR_TAR"
      cd "$UNISTR_DIR"
      
      LIBS="-ldl -lpthread" ./configure --enable-shared --libdir="$INSTALL_LIB64"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to configure IDN"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      make -j 4
      
      if [ "$?" -ne "0" ]; then
          echo "Failed to build IDN"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      echo "$SUDO_PASSWWORD" | sudo -S make install
      
      cd ..
      
      ###############################################################################
      
      echo
      echo "********** IDN **********"
      
      # https://savannah.gnu.org/bugs/?func=detailitem&item_id=26786
      wget "https://alpha.gnu.org/gnu/libidn/$IDN2_TAR" --no-check-certificate -O "$IDN2_TAR"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to download IDN"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      rm -rf "$IDN2_DIR" &>/dev/null
      tar -xzf "$IDN2_TAR"
      cd "$IDN2_DIR"
      
      LIBS="-ldl -lpthread" ./configure --enable-shared --libdir="$INSTALL_LIB64"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to configure IDN"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      make -j 4
      
      if [ "$?" -ne "0" ]; then
          echo "Failed to build IDN"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      echo "$SUDO_PASSWWORD" | sudo -S make install
      
      cd ..
      
      ###############################################################################
      
      echo
      echo "********** OpenSSL **********"
      
      wget "https://www.openssl.org/source/$OPENSSL_TAR" -O "$OPENSSL_TAR"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to download OpenSSL"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      rm -rf "$OPENSSL_DIR" &>/dev/null
      tar -xzf "$OPENSSL_TAR"
      cd "$OPENSSL_DIR"
      
      # OpenSSL and enable-ec_nistp_64_gcc_12 option
      IS_X86_64=$(uname -m 2>&1 | egrep -i -c "(amd64|x86_64)")
      
      CONFIG=./config
      CONFIG_FLAGS=(no-ssl2 no-ssl3 no-comp shared "-Wl,-rpath,$INSTALL_LIB64" --prefix="$INSTALL_ROOT" --openssldir="$INSTALL_ROOT")
      if [[ "$IS_X86_64" -eq "1" ]]; then
          CONFIG_FLAGS+=("enable-ec_nistp_64_gcc_128")
      fi
      
      "$CONFIG" "${CONFIG_FLAGS[@]}"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to configure OpenSSL"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      make depend
      make -j 4
      
      if [ "$?" -ne "0" ]; then
          echo "Failed to build OpenSSL"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      echo "$SUDO_PASSWWORD" | sudo -S make install_sw
      
      cd ..
      
      ###############################################################################
      
      echo
      echo "********** PCRE **********"
      
      # https://savannah.gnu.org/bugs/?func=detailitem&item_id=26786
      wget "https://ftp.pcre.org/pub/pcre//$PCRE_TAR" --no-check-certificate -O "$PCRE_TAR"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to download PCRE"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      rm -rf "$PCRE_DIR" &>/dev/null
      tar -xzf "$PCRE_TAR"
      cd "$PCRE_DIR"
      
      make configure
      CPPFLAGS="-I$INSTALL_ROOT/include" LDFLAGS="-Wl,-rpath,$INSTALL_LIB64 -L$INSTALL_LIB64" \
          LIBS="-lidn2 -lz -ldl -lpthread" ./configure --enable-shared --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 \
          --enable-unicode-properties --enable-pcregrep-libz --prefix="$INSTALL_ROOT" --libdir="$INSTALL_LIB64"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to configure PCRE"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      make all -j 4
      
      if [ "$?" -ne "0" ]; then
          echo "Failed to build PCRE"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      echo "$SUDO_PASSWWORD" | sudo -S make install
      
      cd ..
      
      ###############################################################################
      
      echo
      echo "********** cURL **********"
      
      # https://savannah.gnu.org/bugs/?func=detailitem&item_id=26786
      wget "https://curl.haxx.se/download/$CURL_TAR" --no-check-certificate -O "$CURL_TAR"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to download cURL"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      rm -rf "$CURL_DIR" &>/dev/null
      tar -xzf "$CURL_TAR"
      cd "$CURL_DIR"
      
      CPPFLAGS="-I$INSTALL_ROOT/include" LDFLAGS="-Wl,-rpath,$INSTALL_LIB64 -L$INSTALL_LIB64" \
          LIBS="-lidn2 -lssl -lcrypto -lz -ldl -lpthread" \
          ./configure --enable-shared --with-ssl="$INSTALL_ROOT" --with-libidn2="$INSTALL_ROOT" --libdir="$INSTALL_LIB64"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to configure cURL"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      make -j 4
      
      if [ "$?" -ne "0" ]; then
          echo "Failed to build cURL"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      echo "$SUDO_PASSWWORD" | sudo -S make install
      
      cd ..
      
      ###############################################################################
      
      echo
      echo "********** Git **********"
      
      wget "https://github.com/git/git/archive/$GIT_TAR" -O "$GIT_TAR"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to download Git"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      rm -rf "$GIT_DIR" &>/dev/null
      tar -xzf "$GIT_TAR"
      cd "$GIT_DIR"
      
      make configure
      CPPFLAGS="-I$INSTALL_ROOT/include" LDFLAGS="-Wl,-rpath,$INSTALL_LIB64,-rpath,$INSTALL_LIB32 -L$INSTALL_LIB64 -L$INSTALL_LIB32" \
          LIBS="-lidn2 -lssl -lcrypto -lz -ldl -lpthread" ./configure --with-openssl --with-curl --with-libpcre --prefix="$INSTALL_ROOT"
      
      if [[ "$?" -ne "0" ]]; then
          echo "Failed to configure Git"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      make all -j 4
      
      if [ "$?" -ne "0" ]; then
          echo "Failed to build Git"
          [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
      fi
      
      MAKE=make
      MAKE_FLAGS=(install)
      if [[ ! -z `which asciidoc 2>/dev/null | grep -v 'no asciidoc'` ]]; then
          if [[ ! -z `which xmlto 2>/dev/null | grep -v 'no xmlto'` ]]; then
              MAKE_FLAGS+=("install-doc" "install-html" "install-info")
          fi
      fi
      
      echo "$SUDO_PASSWWORD" | sudo -S "$MAKE" "${MAKE_FLAGS[@]}"
      
      cd ..
      
      ###############################################################################
      
      echo
      echo "********** Cleanup **********"
      
      rm -rf "$OPENSSL_TAR  $OPENSSL_DIR  $UNISTR_TAR  $UNISTR_DIR  $CURL_TAR  $CURL_DIR"
      rm -rf "$PCRE_TAR $PCRE_DIR $ZLIB_TAR $ZLIB_DIR $IDN2_TAR $IDN2_DIR $GIT_TAR $GIT_DIR"
      
      [[ "$0" = "$BASH_SOURCE" ]] && exit 0 || return 0
      

      【讨论】:

        【解决方案6】:

        这在 CentOS 上对我有用:

        1. 安装依赖:

          yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel
          
        2. 获取 Git

          cd /usr/local/src
          wget http://code.google.com/p/git-core/downloads/detail?name=git-1.7.8.3.tar.gz
          tar xvzf git-1.7.8.3.tar.gz
          cd git-1.7.8.3
          
        3. 构建 Git

          ./configure
          make
          make install
          

        【讨论】:

        • 它与现有答案有何不同?
        • 我相信您需要使用--with-openssl--with-curl 配置Git 以获得HTTPS 帮助程序。否则,git clone https://github.com/... 将失败。
        【解决方案7】:

        我确信这个问题在 RHEL 5 即将结束生命周期后即将消失,但现在答案似乎变得简单了很多:

        sudo yum install epel-release
        sudo yum install git
        

        在全新安装的 CentOS 5.11 上为我工作。

        【讨论】:

          【解决方案8】:

          编辑/etc/yum.repos.d/Centos*,使所有具有enabled = 0 的行改为具有enabled = 1

          【讨论】:

            【解决方案9】:

            用于安装 git

            1. 安装最后一个 epel 版本

            rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

            1. 从存储库安装 git

            yum 安装 git

            【讨论】:

            • Git 1.8 有点老了。下面的脚本提供了 2.12,这是撰写本文时的最新版本。
            【解决方案10】:
            yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel gcc
            wget http://git-core.googlecode.com/files/git-1.7.11.4.tar.gz
            tar zxvf git-1.7.11.4.tar.gz 
            cd git-1.7.11.4
            ./configure 
            make
            make install
            

            【讨论】:

              【解决方案11】:

              如果您使用的是 CentOS,内置的yum 存储库似乎没有包含git,因此,您需要向系统添加一个额外的存储库。对于我的服务器,我发现Webtatic 存储库似乎是最新的,git 的安装将如下所示:

              # Add the repository
              rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm
              
              # Install the latest version of git
              yum install --enablerepo=webtatic git-all
              

              要解决Missing Dependency: perl(Git) 错误:

              yum install --enablerepo=webtatic --disableexcludes=main  git-all
              

              【讨论】:

              • 这真的很好,但 dl.fedoraproject.org 版本对某些人来说可能是一个更好的选择(对我来说,我与带有这个包的 perl SVN 集成工具有一个奇怪的冲突,所以不得不使用Fedora 版本)。
              • 这还包括 GUI 工具和许多依赖项。您可以使用yum install git 仅获取基本安装。
              • 我不想承诺添加新的 repo,所以我只是浏览了http://repo.webtatic.com/yum/centos/5/ 并挑选了我需要的 RPM 文件。
              • 只是一个评论,感谢您的出色回答 - 这真的很有帮助
              • 我只需要最后一行。在yum install git 不起作用的地方,yum install --disableexcludes=main git-all 起作用了。谢谢。
              【解决方案12】:

              来源?从回购?最简单的方法是使用 repos:sudo yum install git 应该这样做。如果主仓库未提供 git,则可能需要先设置一个额外的仓库,例如 EPEL

              如果您想从源代码安装,您可以尝试these 说明。如果你安装了yum-utils,它实际上也比这更容易**:

              sudo yum build-dep git
              wget http://kernel.org/pub/software/scm/git/<latest-git-source>.tar.gz
              tar -xvjf <latest-git>.tar.gz
              cd <git>
              make (possibly a ./configure before this)
              sudo make install
              

              **用您需要的路径替换&lt;&gt; 中的部分。确切的过程可能会略有不同,因为我个人没有从源代码编译 git(例如,可能有一个配置脚本)。如果您不知道我在说什么,那么您可能只想按照我的第一个建议从 repo 安装。

              【讨论】:

              • 我尝试从 yum 安装它,但它显示“没有可用的包 git”
              • @Prakash:看起来 git 不在标准的 CentOS 存储库中。您可以从源代码安装或在您的机器上设置 EPEL 存储库:fedoraproject.org/wiki/EPEL。此外,如果您需要更多帮助,您可能需要考虑在 Superuser/Serverfault 上提出这个问题。
              • @Rimian:我知道这个链接也可以安装 git 和 gitweb,但它的重点是 gitosis,它没有维护,完全被 gitolite 取代。
              • sudo yum install epel-releasesudo yum install git 在 Red Hat 上也能很好地工作。 (RHEL)。
              • @Jess 非常有用,简单的答案。谢谢。建议您将其发布为答案,因为它直接且不复杂。
              【解决方案13】:

              我从这个问题尝试了几种方法,但它们都在我的 CentO 上失败了,要么是因为错误的 repos 要么是缺少文件。

              这是适合我的方法(安装 1.7.8 版时):

                  yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel
                  wget http://git-core.googlecode.com/files/git-1.7.8.tar.gz
                  tar -xzvf ./git-1.7.8.tar.gz
                  cd ./git-1.7.8
                  ./configure
                  make
                  make install 
              

              您可能想从这里下载不同的版本: http://code.google.com/p/git-core/downloads/list

              【讨论】:

              • 没有可靠的方法将源代码配置为包吗?
              • 您的意思是创建一个新包吗?我想你总是可以这样做,是的:stackoverflow.com/questions/880227/…
              • 我遇到了同样的麻烦,也不得不使用这种方法。对于可搜索性,以下是我在尝试通过 webtatic 或 EPEL 包方法安装时遇到的一些错误:“缺少依赖项:包 git-1.7.7.3-1.w5.x86_64 (webtatic) 需要 perl(Error)” ,“缺少依赖关系:包 git-1.7.7.3-1.w5.x86_64 (webtatic) 需要 perl-Git = 1.7.7.3-1.w5”。使用此答案中指定的方法安装时没有错误。
              • 我使用下载版本 1.7.12 进行了此操作,但它无法 git 克隆 https url 说不支持 https。根据对该答案的评论,它使用 dl.fedoraproject.org 尝试了用户 SCL 的另一个答案,并且效果很好。
              【解决方案14】:

              好吧,还有更多,你需要 zlib。 zlib 是 CentOS 的一部分,但是你需要开发表格来获取 zlib.h ... 注意 zlib 开发的 yum 名称 可能与 ubuntu/debian 上的 apt-get 完全不同,接下来的实际工作 与我的 CentOS 版本
              特别是,您在 git 上执行 ./configure,然后尝试 make,第一次构建失败,缺少 zlib.h

              我使用了两步程序来解决这个问题 a) 为我的 CentOS 版本获得了 RPMFORGE

              看: www.centos.org/modules/newbb/viewtopic.php?topic_id=18506&forum=38 和这个: wiki.centos.org/AdditionalResources/Repositories/RPMForge

              在我的情况下[作为 root,或使用 sudo]

              $ wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
              $ rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm
              $ rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm
              ## Note: the RPM for rpmforge is small (like 12.3K) but don't let that fool
              ## you; it augments yum the next time you use yum
              ## [this is the name that YUM found] (still root or sudo)
              $ yum install zlib-devel.x86_64
              ## and finally in the source directory for git (still root or sudo):
              $ ./configure (this worked before, but I ran it again to be sure)
              $ make
              $ make install
              

              (此安装默认将其放在/usr/local/bin/git 中...不是我最喜欢的选择,但默认情况下可以)...并且 git 工作正常!

              【讨论】:

              • 您可以使用 Markdown 而不是直接使用 HTML 来格式化您的答案。为他人编辑更容易。
              • git 在 rpmforge 中,所以您只需将 rpmforge 添加到您的存储库列表并安装:dag.wieers.com/rpm/FAQ.php#B => 添加 rpmforge => yum install git-all(就是这样)跨度>
              • ^ 这似乎是迄今为止最好的解决方案
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-03-27
              • 2011-07-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-03-25
              • 2015-04-13
              相关资源
              最近更新 更多