怎么可以在CENTOS 5.5上安装git?

如何在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 [~]# 

来源? 从回购? 最简单的方法是使用回购: sudo yum install git应该这样做。 如果git不是由主仓库提供的,那么可能首先需要首先设置EPEL等附加仓库。

如果你想从源代码安装,你可以尝试这些说明。 如果你安装了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 

**用你需要的pathreplace<>的部分。 确切的程序可能会有所不同,因为我没有从源代码编译git(例如,可能有一个configuration脚本)。 如果你不知道我在说什么,那么你可能想根据我的第一个build议从回购安装。

如果你使用的是CentOS,那么build立在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 

只是:

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

我已经尝试了这个问题的几个方法,他们都失败了我的CentOs,无论是因为错误的回购或丢失的文件。

这里是适用于我的方法(安装版本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

为了安装git

  1. 安装最后的epel-release

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

  1. 从存储库安装git

yum安装git

 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 

我相信这个问题即将死去,RHEL 5已经接近尾声,但现在的答案似乎已经变得更加简单了:

 sudo yum install epel-release sudo yum install git 

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

好吧,除此之外,还需要zlib。 zlib是CentOS的一部分,但你需要开发forms来获得zlib.h …注意,zlib开发的yum名称可能比ubuntu / debian上的apt-get有很大的不同,下面的实际工作与我的CentOS版本
特别是,你做的./configure上的git,然后尝试make,第一次构build失败,缺lesszlib.h

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

请参阅:www.centos.org/modules/newbb/viewtopic.php?topic_id=18506&forum=38以及:wiki.centos.org/AdditionalResources/Repositories/RPMForge

在我的情况下[作为根,或与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 …不是我最喜欢的select,但可以默认)…和git工作正常!

看来CentOS 5的回购消失了。 在这个问题中提到的大多数不再是在线的,似乎没有Git,或者有一个真正的老版本的Git。 以下是我用来从源代码构buildOpenSSL,IDN2,PCRE,cURL和Git的脚本。 git://https://协议都可用于克隆。

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

戴尔·安德森(Dale Anderson)使用RHEL回购软件的回答目前看起来不错,但是它是一个相当老的版本。 红帽提供Git版本1.8,而下面的脚本从源代码构build2.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 

编辑/etc/yum.repos.d/Centos*以便enabled = 0所有行都enabled = 1

这在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. 构buildGit

     ./configure make make install 

只是在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

 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 

刚刚安装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. 可以select安装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