Como instalar corretamente o Git 2.17.1 da fonte no CentOS 7.4?

2

Eu instalo o mais recente git disponível hoje (git-2.17.1), no CentOS 7.4, porque alguns aplicativos estão reclamando por isso, e não apenas.

Estou tentando instalar o git-2.17.1 da fonte no CentOS 7.4 .

Estes são os procedimentos que experimentei:

  • Desinstalou o antigo git (apenas) usando:

    a) rpm -e --nodeps git

  • Baixou e extraiu o arquivo git-2.17.1.zip on /home/myusername/temp/

  • Alterado para o diretório do arquivo extraído, neste caso /home/myusername/temp/git-2.17.1/

  • Como superusuário, instalamos todas as dependências supostamente necessárias, usando:

    a) yum install docbook2X-0.8.8-17.el7.x86_64.rpm (depois de ter baixado este pacote)

    b) yum dh-autoreconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel asciidoc xmlto gengetopt autoconf libcurl-devel gcc kernel-headers debhelper intltool perl-Git po-debconf

  • Criado um symlink conforme instruído no site scm-git, usando:

    a) ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi

  • Como usuário normal, executei o seguinte:

  • ./configure CFLAGS='-I/usr/local/openssl/include' LDFLAGS='-L/usr/local/openssl/lib' --prefix=/usr/local/git --with-openssl=/usr/local/bin/openssl

  • make all doc info

  • E mais uma vez, como superusuário, correu o seguinte:

  • make install install-doc install-html install-info

O problema surge na última etapa, exibindo o seguinte:

install -m 644 git.info gitman.info /usr/local/git/share/info
if test -r /usr/local/git/share/info/dir; then \
  install-info --info-dir=/usr/local/git/share/info git.info ;\
  install-info --info-dir=/usr/local/git/share/info gitman.info ;\
else \
  echo "No directory found in /usr/local/git/share/info" >&2 ; \
fi
No directory found in /usr/local/git/share/info
mak
e[1]: Leaving directory '/home/myusername/temp/git-2.17.1/Documentation'

I successfully upgraded openssl version to the latest available today (openssl 1.1.0h).

    
por El_Dorado 13.06.2018 / 20:51

2 respostas

2

Isso não é erro, você pode verificar com echo $? depois de executar make install-info . Alvo install-info em Documentation/Makefile é assim:

install-info: info
    $(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
    $(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir)
    if test -r $(DESTDIR)$(infodir)/dir; then \
      $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\
      $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\
    else \
      echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
    fi

O programa chamado install cria páginas de informações corretamente /usr/local/git/share/info/ , você pode verificar:

$ ls -lh /usr/local/git/share/info/
total 2.3M
-rw-r--r-- 1 root root 218K Jun 13 21:46 git.info
-rw-r--r-- 1 root root 2.1M Jun 13 21:46 gitman.info

O install-info target foi introduzido no commit 4739809c e diz:

If the info target directory does not already contain a "dir" file, no directory entry is created.

Um arquivo chamado dir é uma parte do GNU texinfo mas não é obrigatório.

Observe também que, a menos que você tenha /usr/local/git/bin/ em seu $PATH , não é possível iniciar git simplesmente digitando git após instalá-lo da maneira como fez, é necessário fazer isso:

$ /usr/local/git/bin/git --version
git version 2.17.1
    
por 13.06.2018 / 21:54
0

How to correctly install Git 2.17.1 from source on CentOS 7

Provavelmente, compile os pacotes "2.17.1" e instale os pacotes necessários com o yum.

Pacote de fontes ftp://ftp.icm.edu.pl/vol/rzm6/linux-fedora/linux/updates/28/Everything/SRPMS/Packages/g/git-2.17.1-2.fc28.src. rpm

Configuração $HOME/rpms/

$ rpm -i git-2.17.1-2.fc28.src.rpm

# yum install libcurl-devel libsecret-devel pcre2-devel tk cvs cvsps \ 
httpd mod_dav_svn subversion subversion-perl perl-DBD-SQLite perl-CPAN

# cpan
cpan[1]> install IO::Pty
cpan[2]> install Test::More


$ cd rpms/SPECS/
$ rpmbuild -bb git.spec
.
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-all-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-core-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-core-doc-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-cvs-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-daemon-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-email-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/gitk-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/gitweb-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-gui-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-p4-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/perl-Git-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/perl-Git-SVN-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-subtree-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-svn-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-debuginfo-2.17.1-2.el7.x86_64.rpm

Os 16 pacotes link

    
por 13.06.2018 / 22:24