Я использовал обычные:
yum install git
На моем CentOS 6 не была установлена последняя версия git. Как я могу обновиться до последней версии git для CentOS 6? Решение может быть применимо к более новым версиям CentOS, таким как CentOS 7.
Я использовал обычные:
yum install git
На моем CentOS 6 не была установлена последняя версия git. Как я могу обновиться до последней версии git для CentOS 6? Решение может быть применимо к более новым версиям CentOS, таким как CentOS 7.
Ответы:
Вы можете использовать CentOS-репозиторий WANDisco для установки 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
По состоянию на 02 марта 2020 года последняя доступная версия от WANDisco - 2.22.0 .
--disablerepo=base,updates
не работает для меня.
Взглянув на блог здесь, я нашел решение в одном из комментариев. Убедитесь, что вы rpmforge
добавили репозиторий в свой CentOS yum и просто выполните текущую команду:
yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git
Если у вас уже установлен git, используйте:
yum --disablerepo=base,updates --enablerepo=rpmforge-extras update git
Смежные вопросы:
Спасибо Энтони Хатзопулосу за то, git v1.8x
что вам нужно использовать git18 как в:
yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git18
Также спасибо @Axlrod за подсказку ниже и @Hiphip за отзыв:
Измените rpmforge.repo
файл , чтобы rpmforge-extras
на разрешенные,
yum update git
. В противном случае он жаловался на проблемы с зависимостями.
Устанавливая конкретную версию git скажем 2.x, я нашел это хорошее и простое в использовании руководство о том, как загрузить исходный код 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.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
git18
как вyum --disablerepo=base,updates --enablerepo=rpmforge-extras install git18
yum --disablerepo=base,updates --enablerepo=rpmforge-extras list | grep git
показывает только Git 1.7.12 для меня на Centos 6.6. Возможно, они удалили "git18"?
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
Can't locate ExtUtils/MakeMaker.pm in @INC
git-credential-libsecret
, что является самым безопасным средством os-native. для хранения учетных данных git, например, для http [s] URL. В настоящее время принятый ответ на момент написания ( stackoverflow.com/a/21820716/407170 ) не выполняет этих действий и требует от вас компиляции.
Я нашел это красивое и простое руководство о том, как загрузить исходный код 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
wget https://www.kernel.org/pub/software/scm/git/git-2.5.3.tar.gz
echo "export PATH=/usr/local/git/bin:$PATH" >> /etc/bashrc
а затем source /etc/bashrc
Лично я предпочитаю создавать пакеты rpm для CentOS при установке нестандартного программного обеспечения и замене распределенных компонентов. Для этого я рекомендую использовать Mock для создания чистой среды сборки.
Процедура такова:
Получите исходный RPMS или подходящий файл SPEC и исходный архив с исходным кодом. В этом случае можно найти источник 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
Добавление учетной записи пользователя мин сборки ( не строить , как корень или как реальный пользователь - вопросы безопасности будут возвращаться укусить вас ).
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, поэтому в этом случае тарболы 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
Настроить макет (как 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
доступные в обычных репозиториях.
Чтобы собрать и установить современный 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
RHEL и производные обычно поставляются с более старыми версиями git. Вы можете загрузить tar-архив и выполнить сборку из исходного кода или использовать стороннее хранилище, такое как IUS Community Project, для получения более новой версии git.
есть хороший учебник здесь . в моем случае (сервер Centos7) после установки пришлось выйти из системы и войти снова.
git
на Centos 6/7Установите 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 из вашей системы.
Эта инструкция основана на публикации в списке рассылки Тодда Цуллингера .
Добавление окольного ответа здесь. Я изо всех сил пытался установить git на экземпляр Amazon RHEL 6.0, и в итоге меня спасло ... conda, как в Ana 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. Сегодня 26.12.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
yum install libcurl-devel
.
Это может быть неуместно. Это для людей, которые не хотят создавать последний git на хосте, в то же время они могут получить последний git.
Я думаю, что большинство людей не любят создавать последние git на CentOS, потому что зависимости будут загрязнять хост, и вам придется запускать много команд. Поэтому у меня есть идея, которая заключается в сборке git внутри контейнера Docker и последующей установке исполняемого файла через монтирование тома docker. После этого вы можете удалить изображение и контейнер.
Да, недостатком является то, что вы должны установить докер. Но наименьшее количество зависимостей вводится хосту, и вам не нужно устанавливать другое репозиторий yum.
Вот мой репозиторий. https://github.com/wood1986/docker-library/tree/master/git
Если git уже установлен, сначала удалите старый git
sudo yum remove git*
Добавить репозиторий IUS CentOS 7
sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum -y install git2u-all
Теперь проверьте версию git после установки пакета git2u-all. Если на вашем компьютере установлен докер, то проблема с ius-release может создать проблему.
git --version
лото !!
Заменить вышестоящие базовые репозитории дополнительными репозиториями может быть очень запутанным и опасным без значительного тестирования и обдумывания. RPMforge, в частности, эффективно умирает и не получает обновлений.
Я лично публикую инструменты для сборки git 2.4, упакованные в альтернативный пакет git24, по адресу https://github.com/nkadel/git24-srpm/ . Не стесняйтесь обращаться к ним и разбирать их, если вы хотите, чтобы пакеты отличались от стандартных системных пакетов, так же как и пакеты "samba" и "samba4".