Centos

如何在 CentOS 7.4 上從原始碼正確安裝 Git 2.17.1?

  • April 14, 2021

我想在 CentOS 7.4 上安裝最新可用的 git(git-2.17.1),因為一些應用程序正在抱怨它,而不僅僅是。

我正在嘗試在CentOS 7.4上從原始碼安裝git-2.17.1

這些是我嘗試過的方法:

  • 使用以下方法(僅)解除安裝了舊的 git:

一種)rpm -e --nodeps git

  • 下載並解壓git-2.17.1.zip文件/home/myusername/temp/
  • 更改為提取文件的目錄,在這種情況下/home/myusername/temp/git-2.17.1/
  • 作為超級使用者,安裝了所有可能需要的依賴項,使用:

a)yum install docbook2X-0.8.8-17.el7.x86_64.rpm(下載此包後)

b)yum install 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

  • 按照 git-scm 網站上的說明創建了一個符號連結,使用:

一種) ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi

  • 作為普通使用者,執行以下命令:
  • ./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
  • 同樣,作為超級使用者,執行以下命令:
  • make install install-doc install-html install-info

問題出現在最後一步,輸出以下內容:

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'

我成功地將 openssl 版本升級到了今天可用的最新版本(openssl 1.1.0h)。

這不是錯誤,您可以echo $?在執行後檢查它make install-info。目標install-infoDocumentation/Makefile 看起來像這樣:

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

正確命名的程序install在 中創建資訊頁面 /usr/local/git/share/info/,您可以檢查它:

$ 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

install-info目標是在送出中引入的,並4739809c說:

如果 info 目標目錄尚未包含“dir”文件,則不會創建目錄條目。

名為的文件dir是其中的一部分,GNU texinfo 但不是必需的。

還要注意,除非你有/usr/local/git/bin/你的,否則你$PATH不能像你一樣在安裝後git簡單地輸入git,你必須這樣做:

$ /usr/local/git/bin/git --version
git version 2.17.1

引用自:https://unix.stackexchange.com/questions/449634