Как можно установить git на CENTOS 5.5?

Как я могу установить git на машину CENTOS 5.5? Я попытался установить его из 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 [~]#

person Prakash    schedule 23.09.2010    source источник
comment
В более поздних версиях CentOS использование стандартного yum install git, похоже, работает нормально.   -  person Jahmic    schedule 21.08.2013
comment
yum install git-core также работает.   -  person Alexander Bird    schedule 19.06.2014


Ответы (12)


Из источника? Из репозиториев? Самый простой способ - использовать репозитории: sudo yum install git должен это сделать. Сначала может потребоваться настроить дополнительное репо, такое как EPEL, если git не предоставляется основным репо.

Если вы хотите установить из исходного кода, вы можете попробовать эти инструкции. Если у вас установлен 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 из исходников (например, может быть скрипт конфигурации). Если вы не понимаете, о чем я говорю, вы можете просто установить из репозитория в соответствии с моим первым предложением.

person eldarerathis    schedule 23.09.2010
comment
Я попытался установить его из yum, но он говорит, что пакет git недоступен - person Prakash; 23.09.2010
comment
@Prakash: Похоже, git нет в стандартных репозиториях CentOS. Вы можете установить его из исходного кода или настроить репозиторий EPEL на своем компьютере: fedoraproject.org/wiki/EPEL. Кроме того, вы можете подумать о том, чтобы задать этот вопрос о Superuser / Serverfault, если вам нужна дополнительная помощь. - person eldarerathis; 23.09.2010
comment
@Rimian: Я знаю, что по этой ссылке также удается установить git и gitweb, но она сосредоточена на gitosis, который не поддерживается и полностью заменяется gitolite. - person Cascabel; 02.02.2012
comment
Это даже выдаст ошибку при попытке git init. Как мне удалить это ?! - person PinoyStackOverflower; 18.07.2012
comment
@ElsonSolano: yum remove git. Дополнительную информацию см. В документации по yum CentOS. - person eldarerathis; 18.07.2012
comment
sudo yum install epel-release и sudo yum install git также отлично работают с Red Hat. (RHEL). - person Jess; 03.12.2013
comment
@Jess Очень полезный, простой ответ. Спасибо. Предлагаю вам опубликовать это в качестве ответа, потому что это было прямо и несложно. - person octopusgrabbus; 11.02.2016
comment
make (possibly a ./configure before this) - Вы издеваетесь ??? Вы знаете, сколько вещей может пойти не так из-за проблем с PCRE, cURL, OpenSSL и другими зависимыми библиотеками. Git незаметно проглатывает свои ошибки конфигурации. Ваш первый клон выйдет из строя по непонятной причине. После нескольких сборок Git из исходных кодов я теперь ищу версию, управляемую пакетами. - person jww; 26.01.2017

Если вы используете 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
person rjzii    schedule 30.11.2011
comment
@ coure2011 - Кажется, я могу получить к нему доступ через свой браузер, какую именно ошибку вы получаете? - person rjzii; 02.02.2012
comment
Это действительно хорошо, но версия dl.fedoraproject.org может быть лучшим вариантом для некоторых (для меня у меня был странный конфликт с инструментом интеграции perl SVN с этим пакетом, поэтому пришлось использовать версию Fedora). - person Iain Collins; 30.03.2012
comment
Это также включает инструменты графического интерфейса и множество зависимостей. Вы можете использовать yum install git, чтобы получить только базовую установку. - person pfrenssen; 04.05.2012
comment
Вот ссылка на инструкции webtatic: webtatic.com/packages/git17 - person Collin Anderson; 18.06.2012
comment
Я не хотел брать на себя обязательство добавлять новое репо, поэтому просто просмотрел веб-страницу http://repo.webtatic.com/yum/centos/5/ и тщательно отобрал нужные мне файлы RPM. - person MarkHu; 21.06.2012
comment
Я получаю эту сводку ошибок, следуя этой инструкции: elsonsolano.com/screenshot/2012-07- 18_1555.png - person PinoyStackOverflower; 18.07.2012
comment
@ElsonSolano: обратите внимание на дескрипторы x86_64 и i386 на пакетах. Вы пытаетесь установить несовместимые архитектуры (выглядит как 64-битная в 32-битной среде). Я бы проверил вашу конфигурацию Webtatic, если вы используете это репо. - person eldarerathis; 18.07.2012
comment
просто комментарий, чтобы поблагодарить за отличный ответ - это действительно помогло - person Simon Courtenage; 15.11.2012
comment
Мне нужна была только последняя строчка. Где yum install git не работал, yum install --disableexcludes=main git-all работал. Спасибо. - person djskinner; 16.01.2013
comment
То же самое, мне нужно было только yum install --disableexcludes=main git-all - person joshua.paling; 22.08.2013
comment
Это должен быть выбранный ответ - person Atif; 05.12.2013
comment
Подтверждено, вторая строка выполняет свою работу. - person Zsolt Szilagyi; 06.03.2014
comment
Линк мертв. - person Cinder Biscuits; 27.09.2020

Просто:

sudo rpm -Uvh https://archives.fedoraproject.org/pub/archive/epel/5/i386/epel-release-5-4.noarch.rpm
sudo yum install git-core
person Santiago Corredoira    schedule 02.02.2012
comment
Обратите внимание, что download.fedora.redhat.com теперь называется dl.fedoraproject.org, но это все еще работает. - person Iain Collins; 30.03.2012
comment
Этот ответ намного лучше, чем сборка из исходников. С yum намного проще управлять пакетами на постоянной основе. - person Joshua Davis; 21.11.2012
comment
Работает нормально (Centos 5.9) - person chrisjlee; 31.07.2013
comment
В дополнение к двум приведенным выше командам мне пришлось выполнить sudo yum install git, чтобы получить двоичный файл git. Я использую CentOS 5.9 - person user674669; 10.07.2014

Я пробовал несколько методов из этого вопроса, и все они потерпели неудачу на моих 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

person Datageek    schedule 12.12.2011
comment
нет ли надежного способа настроить что-то из исходного кода в виде пакета? - person Henrik; 22.12.2011
comment
Вы хотите создать новый пакет? Думаю, вы всегда можете это сделать, да: stackoverflow.com/questions/880227/ - person Datageek; 22.12.2011
comment
У меня была такая же проблема, и мне тоже пришлось использовать этот подход. Для удобства поиска вот некоторые из ошибок, с которыми я столкнулся при попытке установить с помощью пакета webtatic или EPEL: Отсутствует зависимость: perl (Ошибка) требуется для пакета git-1.7.7.3-1.w5.x86_64 (webtatic), Отсутствует Зависимость: perl-Git = 1.7.7.3-1.w5 требуется для пакета git-1.7.7.3-1.w5.x86_64 (webtatic). Никаких ошибок при установке с использованием метода, указанного в этом ответе. - person jlpp; 15.04.2012
comment
Я сделал это, используя загрузку версии 1.7.12, и он не смог git клонировать URL-адрес https, говоря, что https не поддерживается. он попробовал другой ответ от пользователя SCL, используя dl.fedoraproject.org в соответствии с комментарием к этому ответу, и он работал хорошо. - person simbo1905; 11.10.2012

Для установки git

  1. установить последний epel-релиз

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

  1. Установить git из репозитория

ням установить git

person pondoklukman    schedule 09.11.2012
comment
Git 1.8 устарел. Приведенный ниже сценарий предоставляет версию 2.12, которая является последней на момент написания этой статьи. - person jww; 28.03.2017

Я уверен, что этот вопрос вот-вот умрет сейчас, когда RHEL 5 подходит к концу, но ответ, похоже, теперь стал намного проще:

sudo yum install epel-release
sudo yum install git

работал у меня на новой установке CentOS 5.11.

person Dale Anderson    schedule 17.05.2016

Похоже, репозитории для CentOS 5 исчезают. Большинство из упомянутых в этом вопросе больше не в сети, похоже, не имеют Git или имеют действительно старую версию Git. Ниже приведен сценарий, который я использую для сборки OpenSSL, IDN2, PCRE, cURL и Git из исходников. Оба протокола git:// и https:// будут доступны для клонирования.

Со временем названия архивов нужно будет обновить. Например, на момент написания этой статьи openssl-1.0.2k.tar.gz является последней версией, доступной в семействе 1.0.2.

Ответ Дейла Андерсона с использованием репозиториев 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
person jww    schedule 28.03.2017

Просто обновите это для 2017 года и позже, поскольку CentOS 5 достигла EOL, а URL-адрес для EPEL изменился:

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

person GrandmasterB    schedule 03.05.2017
comment
Это тот, который наконец-то сработал для меня в декабре 2019 года. - person MikeC; 31.12.2019

Просто установил 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 замените x86_64 на i386 в URL-адресе на шаге 1.

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

person user1326493    schedule 31.10.2017

Отредактируйте /etc/yum.repos.d/Centos* так, чтобы во всех строках с enabled = 0 вместо enabled = 1.

person Meredith    schedule 10.09.2014

Это сработало для меня на 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
    

person Bgg    schedule 14.01.2012
comment
Чем он отличается от существующих ответов? - person Datageek; 08.02.2012
comment
Я считаю, что вам нужно настроить Git с --with-openssl и --with-curl, чтобы получить помощников HTTPS. В противном случае git clone https://github.com/... выйдет из строя. - person jww; 28.03.2017

person    schedule
comment
Вы можете отформатировать свой ответ, используя Markdown, а не напрямую HTML. Другим проще редактировать. - person Noufal Ibrahim; 14.05.2011
comment
git находится в rpmforge, поэтому все, что вам нужно сделать, это добавить rpmforge в свой список репозиториев и установить: dag.wieers.com/rpm/FAQ.php#B =› добавить rpmforge = ›yum install git-all (вот и все) - person michael; 26.10.2011
comment
^ Это похоже на лучшее решение - person Caterham; 14.12.2011