CENTOS 5.5如何安装git?

Posted

技术标签:

【中文标题】CENTOS 5.5如何安装git?【英文标题】:How can git be installed on CENTOS 5.5? 【发布时间】: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 也可以。 【参考方案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:

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

    安装 Git# yum install git git-daemon

    检查# git --versiongit version 1.8.2.3

    可选择安装 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 上对我有用:

    安装依赖:

    yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel
    

    获取 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
    

    构建 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

    安装最后一个 epel 版本

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

    从存储库安装 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

【讨论】:

没有可靠的方法将源代码配置为包吗? 您的意思是创建一个新包吗?我想你总是可以这样做,是的:***.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(就是这样)跨度> ^ 这似乎是迄今为止最好的解决方案

以上是关于CENTOS 5.5如何安装git?的主要内容,如果未能解决你的问题,请参考以下文章

centos 5.5如何配置vnc,开启linux远程桌面教程

使用 YUM 在 Centos 5.5 上安装 Mono

centOS-5.5如何用命令行来安装软件包?

如何在CentOS 7中安装Git

如何在CentOS 7中安装Git

如何在CentOS 7中安装Git