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

я использовал обычный:

yum install git

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

11 ответов


вы можете использовать репозиторий CentOS WANDisco для установки Git 2.x: для CentOS 6, for 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
    

по состоянию на 18 августа. 2017, последняя доступная версия от WANDisco 2.14.1.


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

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

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

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

связанный с этим вопрос(ы):

  1. проблемы при обновлении git до последней версии на CentOS 6.4

Примечание. update:

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

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

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

также Спасибо @Axlrod за приведенную ниже подсказку и @Hiphip за обратную связь:

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

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

установка определенной версии git say 2.икс Я нашел это хорошее и простое в использовании руководство о том, как загрузить источник 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 file или Yum package manager. Если более старая версия также компилируется через source, пропустите этот шаг.

# yum remove git

шаг 3: скачать и скомпилировать Git Source

загрузите исходный код 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 вместо того, чтобы держать его в качестве переменной, и может негативно повлиять на всю систему. Как минимум, он должен использовать "вместо "" И действительно должен быть отдельным скриптом в /etc/profile.d/

ПОДСКАЗКА 2 (@DJB): /usr/local/git/bin до $PATH, так как более старая версия git уже была на $PATH:export PATH=/usr/local/git/bin:$PATH

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

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

# git --version

git version 2.0.4

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

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


я нашел это хорошее и простое в использовании руководство о том, как загрузить источник 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 file или Yum package manager. Если более старая версия также компилируется через source, пропустите этот шаг.

# 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


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

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

процедура:

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

  2. установить необходимое программное обеспечение:

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

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

    su -l builder
    rpmdev-setuptree
    

    это создает следующий каталог структура:

    ~
    └── rpmbuild
        ├── BUILD
        ├── RPMS
        ├── SOURCES
        ├── SPECS
        └── SRPMS
    
  5. мы используем подготовленную SRPMS, поэтому исходные tarballs можно игнорировать для этого случая, и мы можем перейти непосредственно к 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
    
  6. настроить макет (как root)

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

    отключить beta РЕПО. Включить base и update РЕПО.

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

    mock --init
    
  8. если бы мы были построение из источников, то это где мы будем использовать файл спецификации и использовать 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; или в любом пользовательском корневом местоположении сборки и архитектуре, которые вы предоставили. Это займет много времени. В этом пакете много всего, особенно документации.

  9. если все идет хорошо, то вы должны в конечном итоге костюм пакетов 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
    
  10. установить с помощью 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 доступно из обычных репозиториев.


для сборки и установки modern 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

добавление Окольного ответа здесь. Я изо всех сил пытался установить git на экземпляр RHEL 6.0 Amazon, и в итоге меня спасли ... стадион conda, как в Анастадион conda 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.


вот мой метод установки 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

построить последнюю версию git на Centos 6/7

подготовка системы к созданию РПМ

  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. добавьте себя в группу mock (после этого Вам может потребоваться повторно войти на сервер изменить):

    sudo usermod -a -G mock $USER
    

скачать git

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

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

    sha512sum -c sources
    

построить rpm

  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 мин у /var/lib/mock/epel-7-x86_64/result/. Обратите внимание, что сначала вам может потребоваться удалить существующую версию git из вашей системы.

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


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

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

да, недостатком является то, что вам нужно установить docker. Но наименьшие зависимости вводятся на хост, и вам не нужно устанавливать другое РЕПО yum.

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


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

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