Как установить последнюю версию 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
-
Установите репозиторий 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
-
Установите последнюю версию Git 2.x:
yum install git
-
Проверьте версию 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
-
Установите 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
-
Установите fedpkg
:
sudo yum install fedpkg
-
Добавьте себя в групповой макет (вам может потребоваться повторно войти на сервер после этого изменения):
sudo usermod -a -G mock $USER
Скачать git
-
Скачать git
источники:
fedpkg clone -a git && cd git
fedpkg sources
-
Проверьте источники:
sha512sum -c sources
Сборка об/мин
-
Создать srmp. Используйте el6
для RHEL6, el7
для RHEL7.
fedpkg --dist el7 srpm
-
Сборка пакета в макете:
mock -r epel-7-x86_64 git-2.16.0-1.el7.src.rpm
-
Установите последнюю версию 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".