如何在CENTOS 5.5上安装git?


72

如何在CENTOS 5.5计算机上安装git?我尝试从yum安装它,但得到了msg的关注。

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

1
在更高版本的CentOS上,使用标准的'yum install git'似乎很好。
Jahmic

百胜安装git-core也可以。
亚历山大·伯德

Answers:


42

从源头上?来自回购?最简单的方法是使用回购协议: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

**<>用所需的路径替换其中包含的部分。确切的过程可能会略有不同,因为我个人还没有从源代码编译git(例如,可能有一个配置脚本)。如果您不知道我在说什么,那么您可能希望按照我的第一个建议从存储库中进行安装。


11
我试图从yum安装它,但是它说“没有可用的软件包git”
Prakash 2010年

9
@Prakash:看起来git不在标准的CentOS存储库中。您可以从源代码安装,也可以在计算机上设置EPEL存储库:fedoraproject.org/wiki/EPEL。另外,如果您需要更多帮助,则可能要考虑在Superuser / Serverfault上询问此问题。
eldarerathis

1
@Rimian:我知道链接也可以安装git和gitweb,但是它的重点是gitosis,它是不可维护的,被gitolite完全取代了。
卡斯卡贝尔2012年

9
sudo yum install epel-release并且sudo yum install git在Red Hat上也很出色。(RHEL)。
杰西(Jess)2013年

1
@Jess非常有用,简单的答案。谢谢。建议您将此发布为答案,因为它是直接且不复杂的。
octopusgrabbus

135

如果您使用的是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

1
这确实很好,但是dl.fedoraproject.org版本对于某些用户来说可能是一个更好的选择(对我来说,我与此软件包的perl SVN集成工具产生了奇怪的冲突,因此必须改用Fedora版本)。
伊恩·柯林斯

6
这也包括GUI工具和许多依赖项。您可以yum install git用来仅获取基本安装。
pfrenssen 2012年

2
我不想做出添加新回购协议的承诺,所以我只是在网上浏览了http://repo.webtatic.com/yum/centos/5/并挑选了我需要的RPM文件。
MarkHu 2012年

1
只是要说一个谢谢你的好答案的评论-确实有帮助
Simon Courtenage 2012年

5
我只需要最后一行。哪里yum install git没用,yum install --disableexcludes=main git-all有。谢谢。
djskinner 2013年

34

只是:

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

7
请注意,“ download.fedora.redhat.com”现在是“ dl.fedoraproject.org”,但这仍然有效。
伊恩·柯林斯

1
这个答案比从源代码构建要好得多。使用yum持续管理软件包要容易得多。
约书亚·戴维斯

工作正常(Centos 5.9)
chrisjlee

除了上面的2条命令之外,我还必须执行“ sudo yum install git”来获取git二进制文件。我使用
centOS

25

我从这个问题中尝试了几种方法,但由于错误的存储库或丢失的文件,它们在我的CentO上都失败了。

这是对我有效的方法(安装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


没有一种可靠的方式将源代码中的内容配置为软件包吗?
亨里克(Henrik)

您是要创建一个新软件包吗?我想你可以一直做下去,是:stackoverflow.com/questions/880227/...
Datageek

1
我遇到了同样的麻烦,也不得不使用这种方法。为了便于搜索,这是我尝试通过webtatic或EPEL软件包方法安装时遇到的一些错误:“缺少依赖项:git-1.7.7.3-1.w5.x86_64软件包需要perl(Error)(webtatic)” ,“缺少依赖项:软件包git-1.7.7.3-1.w5.x86_64(webtatic)需要perl-Git = 1.7.7.3-1.w5”。使用此答案中指定的方法进行安装时没有错误。
jlpp 2012年

我使用下载版本1.7.12做到了这一点,它无法git clone一个https url,表示不支持https。根据对该答案的评论,它使用dl.fedoraproject.org从用户SCL尝试了另一个答案,并且效果很好。
simbo1905 2012年


10

我敢肯定,随着RHEL 5寿命即将结束,这个问题即将消失,但是答案现在似乎变得简单得多:

sudo yum install epel-release
sudo yum install git

为我安装了全新的CentOS 5.11。


6
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

1

好的,除此之外,您还需要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来格式化答案。为其他人编辑更容易。
努法尔·易卜拉欣

2
git在rpmforge中,因此您要做的就是将rpmforge添加到存储库列表中并安装:dag.wieers.com/rpm/FAQ.php#B => add rpmforge => yum install git-all(就是这样)
迈克尔,

^到目前为止,这似乎是最好的解决方案
Caterham

1

看来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

1

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


1
这个终于在2019
MikeC

1

只需按照以下说明安装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


0

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


0

这在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
    


1
它与现有答案有何不同?
Datageek

我相信您需要使用配置Git--with-openssl--with-curl获取HTTPS帮助器。否则,agit clone https://github.com/...将失败。
jww

0
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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.