Jak zainstalować najnowszą wersję git na CentOS 7.x / 6.x

Użyłem zwykłej:

yum install git

Nie zainstalował najnowszej wersji git na moim CentOS 6. Jak mogę zaktualizować git do najnowszej wersji dla CentOS 6? Rozwiązanie może mieć zastosowanie do nowszych wersji CentOS, takich jak CentOS 7.

Author: A-B-B, 2014-02-17

11 answers

Możesz użyć repozytorium CentOS WANDisco do zainstalowania Git 2.x: for CentOS 6 , for CentOS 7

  1. Zainstaluj pakiet WANDisco repo:

    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. Zainstaluj najnowszą wersję Git 2.x:

    yum install git
    
  3. Zweryfikuj zainstalowaną wersję Git:

    git --version
    
[[3]}od 18 sierpnia. 2017, najnowsza dostępna wersja z WANDisco to 2.14.1.
 197
Author: Joseph Leedy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-21 13:12:35

Przeglądając blog tutaj znalazłem rozwiązanie w jednym z komentarzy. Upewnij się, że masz repozytorium rpmforge dodane do Twojego CentOS yum i po prostu uruchom polecenie flowing:

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

Jeśli masz już zainstalowany git to Użyj:

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

Podobne pytanie(y):

  1. problemy podczas aktualizacji git do najnowszej wersji na CentOS 6.4

Uwaga aktualizacja:

Dzięki Anthony Hatzopoulos, dla git v1.8x będziesz musiał użyj git18 jak w:

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

Uwaga aktualizacja 2:

Dzięki @Axlrod za poniższą podpowiedź i @Hiphip za opinię:]}

Zmień plik rpmforge.repo na rpmforge-extras na włączony, yum update git. W przeciwnym razie skarżył się na problemy z zależnościami.

Uwaga aktualizacja 3:

Instalacja konkretnej wersji git say 2.x Znalazłem ten miły i łatwy do naśladowania poradnik Jak pobrać źródło Gita i skompilować go samodzielnie(i zainstalować). Jeśli zaakceptowana odpowiedź nie daje wersji, którą chcesz, spróbuj następujące instrukcje:

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

W 2007 roku został wybrany do Izby Gmin jako reprezentant kraju.]}

Krok 1: Zainstaluj Wymagane Pakiety

Najpierw musimy się upewnić, że zainstalowaliśmy wymagane pakiety w Twoim systemie. Użyj następującego polecenia, aby zainstalować wymagane pakiety przed kompilacją Git źródło.

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

Krok 2: Odinstaluj Stary Git RPM

Teraz usuń wszystkie wcześniejsze instalacje Git poprzez plik RPM lub menedżera pakietów Yum. Jeśli twoja starsza wersja jest również skompilowana przez źródło, pomiń ten krok.

# yum remove git

Krok 3: Pobierz i skompiluj źródło Git

Pobierz kod źródłowy git z jądra git lub po prostu użyj następującego polecenia, aby pobrać 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

Po pobraniu i rozpakowaniu kodu źródłowego Git, użyj wykonujemy polecenie kompilacji kodu źródłowego.

# 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

Podpowiedź 1: Zaktualizowana metoda dodawania skompilowanego katalogu git bin do bashrc. Ponieważ echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc użyło ""zamiast", rozszerzyłoby to wartość bieżącej sesji o $PATH zamiast zachować ją jako zmienną i mogłoby niekorzystnie wpłynąć na cały system. W tym celu należy użyć "zamiast" i tak naprawdę powinien to być osobny skrypt w /etc/profile.d/

HINT 2 (@DJB): /usr/local/git/bin przed $PATH, ponieważ starsza wersja git był już na $PATH: export PATH=/usr/local/git/bin:$PATH

Punkt 4. Sprawdź Wersję Git

Po wykonaniu powyższych kroków, pomyślnie zainstalowałeś Git w swoim systemie. Użyj następującego polecenia, aby sprawdzić wersję git

# git --version

git version 2.0.4

Chciałem również dodać, że poradnik "Jak zacząć" na stronie GIT zawiera również instrukcje jak pobrać i skompilować go samodzielnie: {21]}

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

 124
Author: AmirHd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:31

Znalazłem ten miły i łatwy do naśladowania poradnik Jak pobrać źródło Gita i skompilować go samodzielnie(i zainstalować). Jeśli zaakceptowana odpowiedź nie daje żądanej wersji, spróbuj wykonać następujące instrukcje:

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

(i wklejony / sformatowany z powyższego źródła w przypadku, gdy zostanie usunięty później)

Krok 1: Zainstaluj Wymagane Pakiety

Po pierwsze musimy upewnić się, że mamy zainstalowane wymagane pakiety w systemie. Użyj następującego polecenia, aby zainstalować wymagane pakiety przed kompilacją Git source.

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

Krok 2: Odinstaluj Stary Git RPM

Teraz usuń wszystkie wcześniejsze instalacje Git poprzez plik RPM lub menedżera pakietów Yum. Jeśli twoja starsza wersja jest również skompilowana przez źródło, pomiń ten krok.

# yum remove git

Krok 3: Pobierz i skompiluj źródło Git

Pobierz kod źródłowy git z jądra git lub po prostu użyj następującego polecenie do pobrania 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

Po pobraniu i rozpakowaniu kodu źródłowego Git, Użyj następującego polecenia do skompilowania kodu źródłowego.

# 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

Punkt 4. Sprawdź Wersję Git

Po wykonaniu powyższych kroków, pomyślnie zainstalowałeś Git w swoim systemie. Użyj następującego polecenia, aby sprawdzić wersję git

# git --version

git version 2.5.3

Chciałem również dodać, że poradnik "wprowadzenie" na stronie GIT zawiera również instrukcje jak go pobrać i skompilować yourself:

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

 73
Author: Pytry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-03 16:46:02

Rackspace utrzymuje ius repozytorium , które zawiera w miarę aktualny git, ale stock git musi być najpierw usunięty.

Instrukcje 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 instrukcje:

$ sudo yum install https://centos6.iuscommunity.org/ius-release.rpm
$ sudo yum erase git
$ sudo yum install epel-release
$ sudo yum install git2u
 60
Author: Mark Visser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-25 15:16:33

Moją osobistą preferencją jest tworzenie pakietów rpm dla CentOS podczas instalowania niestandardowego oprogramowania i zastępowania rozproszonych komponentów. W tym celu polecam użycie Mocka do stworzenia czystego środowiska budowania.

Procedura jest:

  1. Uzyskaj źródłowe RPMS lub odpowiedni plik SPEC i nieskazitelny źródłowy tarball. W tym przypadku moĹźna znaleĹşÄ ‡ ĹşrĂłdĹ ' owe pakiety RPM dla git2X dla CentOS-6 pod adresem: http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/. Pakiety dla innych wydań CentOS są również dostępny.

  2. Zainstaluj niezbędne oprogramowanie wspierające:

    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. Dodaj konto użytkownika rpm build (nie buduj jako root ani jako prawdziwy użytkownik - problemy z bezpieczeństwem wrócą, by cię ugryźć ).

    sudo adduser builder --home-dir /home/builder \
    --create-home --user-group --groups mock \
    --shell /bin/bash --comment "rpm package builder"
    
  4. Następnie potrzebujemy środowiska budowania.

    su -l builder
    rpmdev-setuptree
    

    Tworzy to następującą strukturę katalogów:

    ~
    └── rpmbuild
        ├── BUILD
        ├── RPMS
        ├── SOURCES
        ├── SPECS
        └── SRPMS
    
  5. Używamy przygotowanego SRPMS więc źródła tarballs mogą być ignorowane dla tego case i możemy przejść bezpośrednio do 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. Konfiguracja mock (jako root)

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

    Wyłącz repo beta. Włącz operacje repozytorium base i update.

  7. W tym celu należy utworzyć drzewo kompilacji (domyślnie/var/lib / mock).]}
    mock --init
    
  8. Gdybyśmy budowali ze źródeł, To właśnie tutaj użylibyśmy pliku SPEC i użylibyśmy mock --buildsrpm . . .. Ale w tym przypadku przechodzimy bezpośrednio do kroku budowania binarnego:

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

    To rozwiąże kompilację zależności i pobrać je (około 95 pakietów) do czystego katalogu głównego. Następnie wyodrębni źródła i zbuduje plik binarny z dostarczonego SRPM i pozostawi go w /var/lib/mock/epel-6-x86_64/result; lub w dowolnej niestandardowej lokalizacji roota i architekturze, którą podałeś. To zajmie dużo czasu. Jest wiele do tego pakietu; szczególnie dokumentacji.

  9. Jeśli wszystko pójdzie dobrze, powinieneś skończyć z pakietami rpm nadającymi się do instalacji w miejsce wersji distro. Tak właśnie skończyłem:

    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. Zainstaluj za pomocą yum lub rpm.

    Będziesz wymagał git2u-2.5.3-1.ius.el6.x86_64.rpm co najmniej i takich dodatkowych pakietów wsparcia, jakich wymaga (perl-Git2u-2.5.3-1.ius.el6.noarch.rpm) lub chcesz.

    Ta budowa ma cykliczną zależność: git2u-2.5.3-1.ius.el6.x86_64.rpm depends on perl-Git2u-2.5.3-1.ius.el6.noarch.rpm i perl-Git2u-2.5.3-1.ius.el6.noarch.rpm depends on git2u-2.5.3-1.ius.el6.x86_64.rpm. Prosta instalacja z rpm zakończy się niepowodzeniem.

    Są dwa sposoby radzenia sobie z tym:

    • Zainstalować oba w tym samym czasie poprzez mniam:

      yum localinstall \
        git2u-2.5.3-1.ius.el6.x86_64.rpm \
        perl-Git2u-2.5.3-1.ius.el6.noarch.rpm`
      
    • Ustaw lokalny repo yum.

      Załączam mój plik LocalFile.repo poniżej, ponieważ zawiera instrukcje, jak to zrobić i jednocześnie dostarcza niezbędny plik 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

Może być również wymagane ręczne preinstalowanie dodatkowych pakietów zależności, takich jak perl-TermReadKey dostępnych ze zwykłych repozytoriów.

 9
Author: James B. Byrne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-07 17:37:05

Aby zbudować i zainstalować nowoczesny Git na 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
 5
Author: Joe Goggins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-16 18:17:19

Dodaję tutaj rondo odpowiedzi. Miałem problemy z zainstalowaniem Gita na instancji Amazon RHEL 6.0, A to, co skończyło się ratowaniem mnie, to ... conda, jak Ana Conda Python.

Zainstalowałem conda w wierszu poleceń z archiwum (kod wzorowany na to):

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"

And then ran

conda install git

I zainstalowano relatywnie najnowszą wersję git. Dzisiaj jest 26/12/2016, a wersja jest 2.9.3.

 3
Author: Ben Ogorek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-26 22:39:04

Oto moja metoda instalacji git na 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
 1
Author: Dylan Pearson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-08 19:13:01

Zbuduj najnowszą wersję git na Centos 6/7

Przygotowanie systemu do budowy rpm

  1. Zainstaluj epel:

    Dla EL6, użycie:

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

    Dla EL7, użyj:

    sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    
  2. Zainstaluj fedpkg:

    sudo yum install fedpkg
    
  3. W tym celu należy skontaktować się z Działem obsługi klienta pod adresem .]}
    sudo usermod -a -G mock $USER
    

Pobierz git

  1. Pobierz git źródła:

    fedpkg clone -a git && cd git
    fedpkg sources
    
  2. Zweryfikuj źródła:

    sha512sum -c sources
    

Build rpm

  1. Utwórz srmp. Użyj el6 dla RHEL6, el7 dla RHEL7.

    fedpkg --dist el7 srpm
    
  2. Zbuduj pakiet w mocku:

    mock -r epel-7-x86_64 git-2.16.0-1.el7.src.rpm
    
  3. Zainstaluj najnowszą wersję git rpm z /var/lib/mock/epel-7-x86_64/result/. Uwaga, być może będziesz musiał najpierw odinstalować istniejącą wersję Gita z twojego systemu.

Ta instrukcja jest oparta na liście dyskusyjnej posta autorstwa Todda Zullinger .

 1
Author: sashk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-09 14:38:01

To może być nieistotne. Jest to dla ludzi, którzy nie chcą budować najnowszego git na hosta, tymczasem nadal mogą uzyskać najnowszy git.

Myślę, że większość ludzi nie lubi budować najnowszego Gita na CentOS, ponieważ zależności będą zanieczyszczać hosta i trzeba uruchomić wiele komend. Dlatego mam pomysł, który buduje git wewnątrz kontenera Dockera, a następnie instaluje plik wykonywalny poprzez Docker volume mount. Następnie możesz usunąć obraz i Pojemnik.

Tak, minusem jest to, że musisz zainstalować Dockera. Ale najmniejsze zależności są wprowadzane do hosta i nie trzeba instalować innych yum repo.

Oto moje repozytorium. https://github.com/wood1986/docker-library/tree/master/git

 0
Author: WooD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-03 23:08:59

Może być bardzo mylące i niebezpieczne zastąpienie repozytoriów bazowych upstream repozytoriami dodatkowymi bez konieczności przeprowadzania znacznych testów i przemyśleń. RPMforge, w szczególności, jest skutecznie goribund i nie otrzymuje aktualizacji.

Osobiście publikuję narzędzia do budowania git 2.4, opakowane jako alternatywnie nazwany pakiet "git24", w https://github.com/nkadel/git24-srpm / . Jeśli chcesz, aby Pakiety wyróżniały się od standardowego systemu Pakiety, podobnie jak pakiety "samba" i "samba4" są zróżnicowane.

 -3
Author: Nico Kadel-Garcia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-07 20:14:08