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



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



yum install git


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

870   11  

11 ответов:

вы можете использовать хранилище CentOS WANDisco для установки 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
    

по состоянию на 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

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

спасибо Энтони 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 source.

# 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 source.

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

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

    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 из вашей системы.

эта инструкция основана на сообщение в списке рассылки от Todd Zullinger.

Это может быть неуместно. Это для людей, которые не хотят строить последний 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", различаются.

Comments

    Ничего не найдено.