Как установить последнюю версию git на CentOS 7.x/6.x

Я использовал обычные:

yum install git

Он не установил последнюю версию git на CentOS 6. Как я могу обновить последнюю версию git для CentOS 6? Решение может быть применимо к более новым версиям CentOS, таким как CentOS 7.

Ответ 1

Вы можете использовать репозиторий WANDisco CentOS для установки Git 2.x: для CentOS 6, для CentOS 7

  1. Установите репозиторий WANDisco:

    yum install http://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm
    - or -
    yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm
    - or -
    yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
    
  2. Установите последнюю версию Git 2.x:

    yum install git
    
  3. Проверьте версию Git, которая была установлена:

    git --version
    

По состоянию на 16 июля 2019 года последняя доступная версия от WANDisco - 2.22.0.

Ответ 2

Взглянув на блог здесь, я нашел решение в одном из комментариев. Убедитесь, что репозиторий rpmforge добавлен в вашу CentOS yum и просто запустите текущую команду:

yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git

Если у вас уже установлено git, то используйте:

yum --disablerepo=base,updates --enablerepo=rpmforge-extras update git

Связанный вопрос (ы):

Обновление примечаний:

Благодаря Anthony Hatzopoulos, для git v1.8x вам нужно будет использовать git18, как в:

yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git18 

Примечание: обновление 2:

Также благодаря @Axlrod для нижеприведенного подсказки и @Hiphip для обратной связи:

Измените файл rpmforge.repo, чтобы включить rpmforge-extras, yum update git. В противном случае он жаловался на проблемы с зависимостью.

Уведомление об обновлении 3:

Установка определенной версии git означает 2.x Я нашел это красивое и простое в использовании руководство по загрузке источника git и его компиляции (и установите его). Если принятый ответ не дает вам нужную версию, попробуйте выполнить следующие инструкции:

http://tecadmin.net/install-git-2-0-on-centos-rhel-fedora/

(И вставлен/переформатирован из исходного источника в случае, если он будет удален позже)

Шаг 1: Установка необходимых пакетов

Во-первых, нам нужно убедиться, что в вашей системе были установлены необходимые пакеты. Используйте следующую команду для установки необходимых пакетов перед компиляцией git source.

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install  gcc perl-ExtUtils-MakeMaker

Шаг 2: Удалите старый git RPM

Теперь удалите любую предыдущую установку git через файл RPM или диспетчер пакетов Yum. Если ваша старая версия также скомпилирована через источник, пропустите этот шаг.

# yum remove git

Шаг 3: Загрузить и скомпилировать git Источник

Загрузите исходный код git из ядра git или просто используйте следующую команду для загрузки git 2.0.4.

# cd /usr/src
# wget https://www.kernel.org/pub/software/scm/git/git-2.0.4.tar.gz
# tar xzf git-2.0.4.tar.gz

После загрузки и извлечения исходного кода git используйте следующую команду для компиляции исходного кода.

# cd git-2.0.4
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
#
# echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc
#  or
# echo 'export PATH=$PATH:/usr/local/git/bin' > /etc/profile.d/git.sh
#
# source /etc/bashrc

СОВЕТ 1: Обновлен метод добавления скомпилированного каталога git bin в bashrc. Поскольку echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc использовал "вместо '', он расширил текущее значение сеанса для $PATH вместо того, чтобы хранить его как переменную, и может отрицательно повлиять на всю систему. Как минимум, он должен использовать" вместо" и должен быть отдельным script в /etc/profile.d/

СОВЕТ 2 (@DJB): /usr/local/git/bin до $PATH, поскольку более старая версия git уже была на $PATH: export PATH=/usr/local/git/bin:$PATH

Шаг 4. Проверьте git Версия

По завершении вышеуказанных шагов вы успешно установите git в свою систему. Используйте следующую команду для проверки git version

# git --version

git version 2.0.4

Я также хотел добавить, что руководство "Начало работы" на веб-сайте git также содержит инструкции по загрузке и компиляции:

http://git-scm.com/book/en/v2/Getting-Started-Installing-Git

Ответ 3

Я нашел это красивое и простое руководство о том, как загрузить исходный код GIT и скомпилировать его (и установить). Если принятый ответ не дает нужную вам версию, попробуйте следующие инструкции:

http://tecadmin.net/install-git-2-0-on-centos-rhel-fedora/

(И вставленный/переформатированный сверху источник в случае, если он будет удален позже)

Шаг 1: Установите необходимые пакеты

Во-первых, нам нужно убедиться, что мы установили необходимые пакеты в вашей системе. Используйте следующую команду для установки необходимых пакетов перед компиляцией исходного кода Git.

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install  gcc perl-ExtUtils-MakeMaker

Шаг 2: Удалите старый Git RPM

Теперь удалите все предыдущие установки Git через RPM файл или менеджер пакетов Yum. Если ваша старая версия также скомпилирована через исходный код, пропустите этот шаг.

# yum remove git

Шаг 3: Загрузите и скомпилируйте источник Git

Загрузите исходный код git из ядра git или просто используйте следующую команду для загрузки Git 2.5.3.

# cd /usr/src
# wget https://www.kernel.org/pub/software/scm/git/git-2.5.3.tar.gz
# tar xzf git-2.5.3.tar.gz

После загрузки и распаковки исходного кода Git используйте следующую команду для компиляции исходного кода.

# cd git-2.5.3
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
# echo 'pathmunge /usr/local/git/bin/' > /etc/profile.d/git.sh 
# chmod +x /etc/profile.d/git.sh
# source /etc/bashrc

Шаг 4. Проверьте версию Git

Выполнив вышеуказанные действия, вы успешно установили Git в своей системе. Используйте следующую команду, чтобы проверить версию git

# git --version

git version 2.5.3

Я также хотел добавить, что руководство "Приступая к работе" на веб-сайте GIT также содержит инструкции о том, как загрузить и скомпилировать его самостоятельно:

http://git-scm.com/book/en/v2/Getting-Started-Installing-Git

Ответ 4

Rackspace поддерживает репозиторий ius, который содержит достаточно актуальный git, но сначала необходимо удалить стандартный git.

Инструкция CentOS 7:

$ sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
$ sudo yum erase git
$ sudo yum install epel-release 
$ sudo yum install git2u

Инструкция CentOS 6:

$ sudo yum install https://centos6.iuscommunity.org/ius-release.rpm
$ sudo yum erase git
$ sudo yum install epel-release
$ sudo yum install git2u

Ответ 5

Мое личное предпочтение заключается в создании пакетов rpm для CentOS при установке нестандартного программного обеспечения и замене распределенных компонентов. Для этого я рекомендую использовать Mock для создания чистой среды сборки.

Процедура такова:

  • Получите исходные RPMS или подходящий файл SPEC и исходный tarball. В этом случае можно найти исходные RPM-пакеты для git2X для CentOS-6 по адресу: http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/. Также доступны пакеты для других выпусков CentOS.

  • Установите необходимое программное обеспечение для поддержки:

    yum install epel-release  # you need this for mock
    yum install rpm-build
    yum install redhat-rpm-config
    yum install rpmdevtools
    yum install mock
    
  • Добавьте учетную запись пользователя rpm build (не создавайте как root или как реальный пользователь) проблемы безопасности будет возвращаться, чтобы укусить вас).

    sudo adduser builder --home-dir /home/builder \
    --create-home --user-group --groups mock \
    --shell /bin/bash --comment "rpm package builder"
    
  • Далее нам нужна среда сборки.

    su -l builder
    rpmdev-setuptree
    

    Это создает следующую структуру каталогов:

    ~
    └── rpmbuild
        ├── BUILD
        ├── RPMS
        ├── SOURCES
        ├── SPECS
        └── SRPMS
    
  • Мы используем подготовленные SRPMS, поэтому для этого случая можно игнорировать tarballs SOURCES, и мы можем перейти непосредственно к SRPMS.

    wget http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/git2u-2.5.3-1.ius.centos6.src.rpm \
    -O ~/rpmbuild/SRPMS/git2u-2.5.3-1.ius.centos6.src.rpm
    
  • Настроить mock (как root)

    cd /etc/mock
    rm default.cfg
    ln -s epel-6-x86_64.cfg default.cfg
    vim default.cfg
    

    Отключите репозиции beta. Включите репозитории base и update.

  • Инициализировать дерево сборки (/var/lib/mock по умолчанию)

    mock --init
    
  • Если мы строим SOURCES, тогда мы будем использовать файл SPEC и использовать mock --buildsrpm . . .. Но в этом случае мы переходим непосредственно к шагу двоичной сборки:

    mock --no-clean --rebuild ~/rpmbuild/SRPMS/git2u-2.5.3-1.ius.centos6.src.rpm
    

    Это приведет к разрешению зависимостей сборки и загрузит их (около 95 или около того пакетов) в чистый корень сборки. Затем он извлечет источники и построит двоичный файл из предоставленного SRPM и оставьте его в /var/lib/mock/epel-6-x86_64/result; или в любом настраиваемом корневом расположении и архитектуре, которые вы предоставили. Это займет много времени. В этом пакете много чего; в частности документации.

  • Если все идет хорошо, тогда вы должны получить костюм RPM-пакетов, подходящий для установки вместо дистрибутивной версии. Это то, с чем я столкнулся:

    ll /var/lib/mock/epel-6-x86_64/result
    total 34996
    -rw-rw-r--. 1 byrnejb mock   448455 Oct 30 10:09 build.log
    -rw-rw-r--. 1 byrnejb mock    52464 Oct 30 10:09 emacs-git2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    47228 Oct 30 10:09 emacs-git2u-el-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock  8474478 Oct 30 09:57 git2u-2.5.3-1.ius.el6.src.rpm
    -rw-rw-r--. 1 byrnejb mock  8877584 Oct 30 10:09 git2u-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock    27284 Oct 30 10:09 git2u-all-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    27800 Oct 30 10:09 git2u-bzr-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   112564 Oct 30 10:09 git2u-cvs-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   436176 Oct 30 10:09 git2u-daemon-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock 15858600 Oct 30 10:09 git2u-debuginfo-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock    60556 Oct 30 10:09 git2u-email-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   274888 Oct 30 10:09 git2u-gui-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    79176 Oct 30 10:09 git2u-p4-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   483132 Oct 30 10:09 git2u-svn-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock   173732 Oct 30 10:09 gitk2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   115692 Oct 30 10:09 gitweb2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    57196 Oct 30 10:09 perl-Git2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    89900 Oct 30 10:09 perl-Git2u-SVN-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   101026 Oct 30 10:09 root.log
    -rw-rw-r--. 1 byrnejb mock      980 Oct 30 10:09 state.log
    
  • Установите с помощью yum или rpm.

    Вам потребуется git2u-2.5.3-1.ius.el6.x86_64.rpm как минимум и такие дополнительные пакеты поддержки, которые требуются (perl-Git2u-2.5.3-1.ius.el6.noarch.rpm) или вы хотите.

    Эта сборка имеет циклическую зависимость: git2u-2.5.3-1.ius.el6.x86_64.rpm зависит от perl-Git2u-2.5.3-1.ius.el6.noarch.rpm и perl-Git2u-2.5.3-1.ius.el6.noarch.rpm зависит от git2u-2.5.3-1.ius.el6.x86_64.rpm. Прямая установка с rpm приведет к сбою.

    Есть два способа борьбы с ним:

    • Установите оба параметра одновременно через yum:

      yum localinstall \
        git2u-2.5.3-1.ius.el6.x86_64.rpm \
        perl-Git2u-2.5.3-1.ius.el6.noarch.rpm`
      
    • Настройка локального репозитория yum.

      Я включаю в себя мой LocalFile.repo файл ниже, так как он содержит инструкции о том, как это сделать, и одновременно предоставляет необходимый файл репо.

cat /etc/yum.repos.d/LocalFile.repo
# LocalFile.repo
#
#  This repo is used with a local filesystem repo.
#
# To use this repo place the rpm package in /root/RPMS/yum.repo/Packages.
# Then run: createrepo --database --update /root/RPMS/yum.repo.
#
# To use:
#  yum --enablerepo=localfile [command]
#  
# or to use only ONLY this repo, do this:
#
#  yum --disablerepo=\* --enablerepo=localfile [command]

[localfile]
baseurl=file:///root/RPMS/yum.repo
name=CentOS-$releasever - Local Filesystem repo

# Before persistently enabling this repo see the priority note below.
enabled=0
gpgcheck=0

# When this repo is enabled all packages in repos with priority>5
# will not be updated even when they have a more recent version.
# Be careful with this.
priority=5

Вам также может потребоваться вручную предварительно установить дополнительные пакеты зависимостей, такие как perl-TermReadKey, доступные из обычных репозиториев.

Ответ 6

Чтобы создать и установить современный Git на CentOS 6:

yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
export GIT_VERSION=2.6.4
mkdir /root/git
cd /root/git
wget "https://www.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.gz"
tar xvzf "git-${GIT_VERSION}.tar.gz"
cd git-${GIT_VERSION}
make prefix=/usr/local all
make prefix=/usr/local install
yum remove -y git
git --version # should be GIT_VERSION

Ответ 7

как говорит мерзавец:

RHEL и производные обычно поставляются с более старыми версиями git. Вы можете загрузить tar-архив и выполнить сборку из исходного кода или использовать сторонний репозиторий, такой как IUS Community Project, для получения более новой версии git.

есть хороший учебник здесь. в моем случае (сервер Centos7) после установки пришлось выйти из системы и войти снова.

Ответ 8

Добавление здесь окольного ответа. Я пытался установить git на экземпляр RHEL 6.0 Amazon, и в итоге я спас меня... conda, как в Anaconda Python.

Я установил conda в командной строке из архивов (код, смоделированный после это):

wget http://repo.continuum.io/miniconda/Miniconda2-4.2.12-Linux-x86_64.sh -O ~/miniconda.sh
bash ~/miniconda.sh -b -p $HOME/miniconda
export PATH="$HOME/miniconda/bin:$PATH"

а затем запустил

conda install git

и была установлена ​​относительно новая версия git. Сегодня 12/26/2016, а версия 2.9.3.

Ответ 9

Сборка последней версии git на Centos 6/7

Подготовка системы к построению RPMS

  1. Установите epel:

    Для EL6 используйте:

    sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm  
    

    Для EL7 используйте:

    sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    
  2. Установите fedpkg:

    sudo yum install fedpkg
    
  3. Добавьте себя в групповой макет (вам может потребоваться повторно войти на сервер после этого изменения):

    sudo usermod -a -G mock $USER
    

Скачать git

  1. Скачать git источники:

    fedpkg clone -a git && cd git
    fedpkg sources
    
  2. Проверьте источники:

    sha512sum -c sources
    

Сборка об/мин

  1. Создать srmp. Используйте el6 для RHEL6, el7 для RHEL7.

    fedpkg --dist el7 srpm
    
  2. Сборка пакета в макете:

    mock -r epel-7-x86_64 git-2.16.0-1.el7.src.rpm
    
  3. Установите последнюю версию git rpm из /var/lib/mock/epel-7-x86_64/result/. Обратите внимание, что вам может понадобиться сначала удалить существующую версию git из вашей системы.

Эта инструкция основана на публикации в списке рассылки Тодда Цуллингера.

Ответ 10

Здесь мой метод установки git на centos 6.

sudo yum groupinstall "Development Tools"
sudo yum install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel curl-devel
sudo yum install wget
cd ~
wget -O git.zip https://github.com/git/git/archive/v2.7.2.zip
unzip git.zip
cd git-2.7.2
make configure
./configure --prefix=/usr/local
make all doc
sudo make install install-doc install-html

Ответ 11

Это может быть неважно. Это для людей, которые не хотят создавать последние git на хосте, пока они все еще могут получить последние git.

Я думаю, что большинству людей не нравится создавать последние git в CentOS, потому что зависимости заражают хост, и вы должны запускать множество команд. Поэтому у меня есть идея, которая создает git внутри контейнера Docker, а затем устанавливает исполняемый файл через mount тонера. После этого вы можете удалить изображение и контейнер.

Да, недостатком является то, что вы должны установить докер. Но наименьшие зависимости вводятся хосту, и вам не нужно устанавливать другое репозиционирование yum.

Вот мой репозиторий. https://github.com/wood1986/docker-library/tree/master/git

Ответ 12

Это может быть очень запутанным и опасным, чтобы заменить базовые хранилища восходящего потока дополнительными репозиториями без значительного тестирования и мысли. RPMforge, в частности, эффективно умирает и не получает обновлений.

Я лично публикую инструменты для построения git 2.4, завернутые как альтернативный пакет "git24", в https://github.com/nkadel/git24-srpm/. Не стесняйтесь обращаться к ним и откатывать их, если вы хотите, чтобы пакеты отличались от стандартных системных пакетов, так же как и пакеты "samba" и "samba4".