G.y*_*.yx 1 git vim ssh vundle
设置vimrc之后,我准备通过vundle 安装vim插件。
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
Plugin 'valloric/youcompleteme'
call vundle#end()
Run Code Online (Sandbox Code Playgroud)
然后我输入:PluginInstall并得到错误
2 [2018-09-27 10:47:17] Plugin valloric/youcompleteme | 18 " line enables syntax highlighting by default.
3 [2018-09-27 10:47:17] $ git clone --recursive 'https://github.com/valloric/youcompleteme.git' '/roo| 19 syntax on;
t/.vim/bundle/youcompleteme' | 20 if has("syntax")
4 [2018-09-27 10:47:17] > Cloning into '/root/.vim/bundle/youcompleteme'... | 21 syntax on
5 [2018-09-27 10:47:17] > error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was| 22 endif
non-properly terminated.
Run Code Online (Sandbox Code Playgroud)
然后我进入目录~/.vim/bundle并执行
git clone --recursive 'https://github.com/valloric/youcompleteme.git
Run Code Online (Sandbox Code Playgroud)
并得到这个
Cloning into '~/.vim/bundle/youcompleteme'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 34431 (delta 4), reused 8 (delta 1), pack-reused 34416
Receiving objects: 100% (34431/34431), 32.58 MiB | 2.37 MiB/s, done.
error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.
Resolving deltas: 100% (12305/12305), done.
Run Code Online (Sandbox Code Playgroud)
就像这样说,尽管出现了错误,但似乎插件已下载。但youcompleteme实际上找不到目录。
我也尝试
git clone --recursive 'git@github.com:Valloric/YouCompleteMe.git' '~/.vim/bundle/youcompleteme'
Run Code Online (Sandbox Code Playgroud)
并得到这个
Cloning into '~/.vim/bundle/youcompleteme'...
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)
那么如何解决呢?
小智 9
这是执行此操作的更新方法。我在 Win10 上的 WSL2 上使用 Ubuntu 20.04。
sudo apt remove git -y
sudo apt update && sudo apt upgrade
DEBIAN_FRONTEND=noninteractive
sudo apt install build-essential autoconf dh-autoreconf libcurl4-openssl-dev \
tcl-dev gettext asciidoc docbook2x install-info \
libexpat1-dev libz-dev -y
wget https://raw.githubusercontent.com/paul-nelson-baker/git-openssl-shellscript/master/compile-git-with-openssl.sh .
./compile-git-with-openssl.sh -skiptests
Run Code Online (Sandbox Code Playgroud)
重新编译并安装git终于解决了,步骤如下:
sudo apt-get install build-essential fakeroot dpkg-dev -y
sudo apt-get build-dep git -y
sudo apt-get install libcurl4-openssl-dev -y
cd ~
mkdir source-git
cd source-git/
apt-get source git
cd git-2.*.*/
sed -i -- 's/libcurl4-gnutls-dev/libcurl4-openssl-dev/' ./debian/control
sed -i -- '/TEST\s*=\s*test/d' ./debian/rules
dpkg-buildpackage -rfakeroot -b -uc -us
sudo dpkg -i ../git_*ubuntu*.deb
Run Code Online (Sandbox Code Playgroud)
并且不可以使用-y,-y仅用于跳过输入y。结果是:
Cloning into 'syntastic'...
remote: Enumerating objects: 27, done.
remote: Counting objects: 100% (27/27), done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 18671 (delta 9), reused 16 (delta 5), pack-reused 18644
Receiving objects: 100% (18671/18671), 4.26 MiB | 701.00 KiB/s, done.
Resolving deltas: 100% (10572/10572), done.
Checking connectivity... done.
Run Code Online (Sandbox Code Playgroud)
对于在Windows 10 wsl2上可能遇到以下问题的任何人,可以通过以下参考进行修复:
fakeroot, while creating message channels: Function not implemented
This may be due to a lack of SYSV IPC support.
Run Code Online (Sandbox Code Playgroud)
https://github.com/microsoft/WSL/issues/2465#issuecomment-377583291
sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp
Run Code Online (Sandbox Code Playgroud)