git 克隆遠(yuǎn)程倉庫時默認(rèn)使用 gnutls,正常情況下沒有任何問題。當(dāng)使用 gitlab 時,如果把 gitlab 放在代理后面(如:放在 nginx 后面),則可能會出問題。例如報錯:文章來源:http://www.zghlxwxcb.cn/news/detail-605924.htmlgnutls_handshake() failed: Handshake failed
。此時可以通過自己編譯使用 OpenSSL 的 git 來解決這個問題。
上面的問題已經(jīng)確定,報錯是因?yàn)?nginx 配置 SSL 時允許的加密算法和 git 客戶端使用的加密算法不一致導(dǎo)致。低版本 git 客戶端可能會使用 RC4-SHA
算法,但由于這個算法本身強(qiáng)度不夠,一般 nginx 配置中都不會使用 RC4-SHA
。文章來源地址http://www.zghlxwxcb.cn/news/detail-605924.html
環(huán)境準(zhǔn)備
apt install -y build-essential
apt install -y libcurl4-openssl-dev
# 安裝其他編譯依賴
apt-get build-dep git
編譯 git
# 克隆源代碼
git clone git@github.com:git/git.git
cd git
# (可選)刪除老版本 git
apt remove git*
make configure
# 指定要安裝到的位置
./configure --prefix=/usr
# 編譯源代碼和文檔。如果不需要文檔,則刪除 doc
make all doc
# 安裝到指定位置。如果不需要文檔,則刪除 install-doc
make install install-doc
到了這里,關(guān)于Debian 11 編譯安裝 git 2.42.0(基于 OpenSSL)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!