如何在 CentOS 7.4 上從原始碼正確安裝 Git 2.17.1?
我想在 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-info
在Documentation/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