历经几天的摸索,趟过几趟坑之后,终于完成YouCompleteMe的安装配置。

今天同样是个不能忘记的日子,国耻日,勿忘国耻。(9.18)

服务器安装好,基本配置配置好后,开始安装。

=========================================================================================================================

一、检查服务器环境

1.1、uname -a

1.2、 cat /etc/redhat-release

1.3、 python -V

1.4、vi  --version

============================================================================================================================

二、安装软件

2.1、  yum 下载依赖包

yum -y install libXt-devel gtk2-devel

yum -y install python-devel ruby ruby-devel perl perl-devel perl-ExtUtils-Embed

yum -y install ncurses-devel  zlib-devel bzip2-devel openssl-devel  sqlite-devel readline-devel tk-devel

yum -y install gcc gcc-c++ make automake

yum -y install ctags

yum -y  install yum-utils

yum-builddep -y llvm clang

yum -y install epel-release

yum install python-pip

pip install distribute

2.2 下载软件包

2.2.1 、cmake 3.1.2

wget -c https://cmake.org/files/v3.12/cmake-3.12.2.tar.gz

2.2.2、 vim8.1

wget -c ftp://ftp.vim.org/pub/vim/unix/vim-8.1.tar.bz2  或者

git clone https://github.com/vim/vim.git

2.2.3 、 python 3.6.2

wget -c https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

==============================================================================================================================================================

三、安装软件

3.1 安装cmake3.1.2

tar zxvf cmake-3.12.2.tar.gz

cd cmake-3.12.2

./bootstrap

gmake -j3  (j3表示开3个线程,具体情况可自己调整)

make install

------------------------------------------------------------------------------------------

3.2 安装python3.6.2

xz -d Python-3.6.2.tar.xz

tar xvf Python-3.6.2.tar

cd Python-3.6.2

./configure  --enable-shared --prefix=/usr/local/python

make;make install

备份 python2.7的软连接

mv /usr/bin/python /usr/bin/python.bak

ln -s /usr/local/python/bin/python3 /usr/bin/python

ln -s /usr/local/python/bin/pip3 /usr/bin/pip3

查看版本

python -V

报错

解决方法:

cp libpython3.6m.so.1.0 /usr/lib

cp libpython3.6m.so.1.0 /usr/lib64

cp libpython3.6m.so.1.0 /usr/local/lib

cp libpython3.6m.so.1.0 /usr/local/lib64

更改配置文件

vi  /usr/bin/yum                 --------------------最开头的路径里更改python为python2

vi /usr/libexec/urlgrabber-ext-down  --------同上

----------------------------------------------------------------------------------------------------------------------------------------------------

3.3 安装vim8.1

本篇vim8 用git安装

安装之前,卸载系统自带的vi

yum  remove vi

git clone https://github.com/vim/vim.git

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如果从vim官网下载的安装包

需要先下载 bzip2

yum -y install bzip2

bunzip2 vim-8.1.tar.bz2  更改文件压缩方式

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开始安装

cd  /soft/vim/src

./configure --with-features=huge --enable-python3interp --enable-multibyte --enable-cscope --with-python3-config-dir=/usr/local/python/lib/python3.6/config-3.6m-x86_64-linux-gnu --prefix=/usr/local/vim8

make

make install

ln -s /usr/local/vim8/bin/vim /usr/bin/vim

安装完毕后,查看vim 版本信息

vim  --version

可以看到vim版本升级到81,同时支持的python 为  -python  +python3

===============================================================================================================================================================

四 安装插件

4.1 安装 vbundle

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

在根目录下创建 .vimrc文件

cd

touch .vimrc

编辑 .vimrc

先填写以下内容

注意要加上

source $VIMRUNTIME/vimrc_example.vim

网上很多步骤这里没有加上这句,打开vim会报错

再次打开vim

vim

:pluginList

可以看到插件列表

安装插件

:PluginInstall

安装成功后,会显示DONE!

--------------------------------------------------------------------------------------------------------------------------------

4.1 下载 YouCompleteMe

这里我采用git下载的方式安装,没有通过在Plugin列表里安装

git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe

下载后

在 .vimrc里加上

然后再打开 vim 你会发现报错啦

这就是我之前的日志里,遇到的坑

别着急,先把YouCompleteMe安装完

4.2 安装YouCompleteMe

cd .vim/bundle/YouCompleteMe/

./install.sh --clang-complete

会提示错误

根据提示,输入

git submodule update --init --recursive

等待git去下载其他相关文件

安装完成

最后一个安装完成

再次执行 ./install.sh --clang-complete

这里要看网络是不是给力了。。。。。根据报错提示

下载的

https://dl.bintray.com/micbou/libclang/libclang-6.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.bz2

会放在

/root/.vim/bundle/YouCompleteMe/third_party/ycmd/clang_archives 目录下

我试着从其他服务器上把这个文件拷贝过来

把文件放入相应的目录,再次执行,可以正常安装了,并安装完成

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

五、解决vim报错问题

只需要重新安装 vim8,但是重新安装vim8需要更改configure参数

./configure --with-features=huge --enable-python3interp --enable-pythoninterp --with-python-config-dir=/usr/lib64/python2.7/config --enable-rubyinterp --with-python3-config-dir=/usr/local/python/lib/python3.6/config-3.6m-x86_64-linux-gnu/ --enable-multibyte --enable-cscope --prefix=/usr/local/vim8

重点是  --enable-pythoninterp --with-python-config-dir=/usr/lib64/python2.7/config  要让vim也支持python2.7

然后make; make install之后

vim --version

此时可以看到 支持的python是  +python /dyn  +python3 /dyn

动态支持了。

再次打开vim 会发现不再报错了

编辑python文件 会发现自动补全的功能实现了。

六、编辑.vimrc 打造适合自己习惯的vim编辑器。

网上有很多这样的模板,可按照自己的需求来编辑。

至于我之前折腾的安装 libclang,完全是不清楚vim为什么报错,youcompleteme不正常运行时瞎折腾的。

安装libclang是为了补全C家族的语言。我不会C,自然就不需要安装了。要安装的话,可参考之前写的日志。

至此youcomplete告一段落。折腾了快一个礼拜,总算安装成功。

主要是vim的报错困扰了我好长时间,而且没有错误提示,通过不断的摸索总结出来。

面对困难不要放弃,就算最后没解决,但你明白了过程,也是有收获的。

学以致用十三-----Centos7.2+python3+YouCompleteMe成功历程的更多相关文章

  1. 学以致用十一-----centos7.2+python3+YouCompleteMe走过的坑

    目的,安装YouCompleteMe 插件 参考的资料 https://blog.csdn.net/zs376957686/article/details/77833953 https://www.c ...

  2. 学以致用十-----centos7.2+python3.6+vim8.1+YouCompleteMe

    趟过了之前的坑后,再来安装YouCompleteMe 一.安装依赖包 yum install libXt-devel gtk2-devel yum -y install python-devel ru ...

  3. 学以致用六---Centos7.2+python3.6.2+django2.1.1 --搭建一个网站

    目的,创建django project,开始django web之旅 一.创建一个project    在opt目录下创建一个project [root@gxc opt]# django-amdin. ...

  4. 学以致用七---Centos7.2+python3.6.2+django2.1.1 --搭建一个网站(补充)

    补充:上一节出现的报错提示 可在settings.py 里,改成 ‘*’  ,这样所有的主机都可以访问了. 打开网页 注意红色框出来的 hello 是和 urls.py里的hello对应 urls.p ...

  5. CentOS7 安装Python3,开发SocketIO 客户端

    CentOS7安装Python3,开发SocketIO 客户端 参考:https://blog.csdn.net/lovefengruoqing/article/details/79284573 步骤 ...

  6. CentOS7+ anaconda3 + Python-3.6 + tensorflow-cpu-1.5安装和配置

    CentOS7+ anaconda3 + Python-3.6 + tensorflow-cpu-1.5安装和配置 ========================================== ...

  7. centos7下python3与python2共存并且开启py3虚拟环境

    因为下载视频需要用到python3环境,今天在我的win上安装下载工具死活安装不上去,在大盘鸡上一下就安装成功了...可能在win上不兼容吧...无奈只能在大盘鸡上进行折腾了,顺便几个笔记 由于大盘鸡 ...

  8. Linux(4)- centos7安装python3、Linux下安装、配置virtualenv、确保开发环境的一致性、虚拟环境之virtualenvwrapper、vim

    一.centos7安装python3 1.下载python3的源码包 下载地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz cd ...

  9. CentOS7 安装Python3.6.8

    CentOS7 安装Python3.6.8 1. 安装依赖环境 yum -y groupinstall "Development tools" yum -y install zli ...

随机推荐

  1. JD_M案例知识点(移动端)

    # JD_M案例知识点 基础布局+顶部通栏+顶部轮播图+导航栏 知识点 base.css ::before,::after 伪元素 统一设置文字 sans-serif 移动端 的默认字体 font-f ...

  2. sqlserver数据库的备份与还原——完整备份与还原

    sqlserver提供四种数据库备份方式 完整备份:备份整个数据库的所有内容包括书屋和日志 差异备份:只备份上次完整备份后更高的数据部分 事务日志备份:只备份事务日志里的内容 文件或文件组备份:只备份 ...

  3. vue2.0跨域携带cookie和IE兼容

    /*vue-resource为了跨域获取到cookie做的操作*/ 1vue-resource跨域问题Vue.http.interceptors.push(function(request, next ...

  4. Quartus11中新建工程

    最近在使用CycloneII的开发板,但是高版本的Quartus不支持II系列的开发,于是只能用Q11了.好久没玩FPGA了,新建工程的过程中遇到了一些问题,这里把这些问题记下了以便以后查看. Qua ...

  5. BZOJ1084或洛谷2331 [SCOI2005]最大子矩阵

    BZOJ原题链接 洛谷原题链接 注意该题的子矩阵可以是空矩阵,即可以不选,答案的下界为\(0\). 设\(f[i][j][k]\)表示前\(i\)行选择了\(j\)个子矩阵,选择的方式为\(k\)时的 ...

  6. BZOJ1059或洛谷1129 [ZJOI2007]矩阵游戏

    BZOJ原题链接 洛谷原题链接 通过手算几组例子后,很容易发现,同一列的\(1\)永远在这一列,且这些\(1\)有且仅有一个能产生贡献,行同理. 所以我们可以只考虑交换列,使得每一行都能匹配一个\(1 ...

  7. 设计师都爱用的UI标注软件有哪些?

    UI标注软件现在是设计师(UI.PM.前端等)必备的一款软件.设计稿是UI设计师日常工作中的产出物之一,当然,做出了高保真设计稿并不意味着你的工作结束了,因为你还得与下游的开发工程师进行对接. 我们经 ...

  8. Minimum Size Subarray Sum LT209

    Given an array of n positive integers and a positive integer s, find the minimal length of a contigu ...

  9. spring converter-message 规则

    spring 判断返回值使用哪个 converter 时,会执行两次converter 循环.. 第一次会根据 返回类型(converter的support方法) 和 mediaType 遍历所有co ...

  10. 对象回收过程?线程池执行过程? map原理?集合类关系?synchronized 和 volatile ? 同一个类的方法事务传播控制还有作用吗?java 锁

    1.  对象回收过程? 可达性分析算法: 如果一个对象从 GC Roots 不可达时,则证明此对象不可用. 通过一系列称为GC ROOTS的对象作为起点,从这些起点往下搜索,搜索走过的路径 称为引用链 ...