这是一篇中文日志。
我要修改我的Fedora15节点上的vim配置,使用Vundle和YouCompleteMe.
下面是我在EL6/7上都使用的vimrc
https://github.com/asmca/zvimd/blob/master/new/vimrc
下载到~/.vimrc
然后, 安装Vundle
|
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim |
然后进入Vim界面, :VundleInstall
很重要的一点是Fc15已经很旧了,而且我又是一个重度RPM爱好者。 所以就有了下面的步骤
1) vim 版本过旧
当前版本是: vim-enhanced-7.3.315-1.fc15.x86_64
以下插件不兼容
UltiSnips requires Vim >= 7.4
YouCompleteMe unavailable: requires Vim 7.3.584+
索性选择较新的版本7.4.5
https://kojipkgs.fedoraproject.org//packages/vim/7.4.5/1.fc20/src/vim-7.4.5-1.fc20.src.rpm
然后
|
yum-builddep vim-7.4.5-1.fc20.src.rpm rpmbuild --rebuil vim-7.4.5-1.fc20.src.rpm rpm -Uvh vim-common-7.4.5-1.fc15.x86_64.rpm vim-enhanced-7.4.5-1.fc15.x86_64.rpm \ vim-filesystem-7.4.5-1.fc15.x86_64.rpm vim-minimal-7.4.5-1.fc15.x86_64.rpm \ vim-X11-7.4.5-1.fc15.x86_64.rpm |
就正常升级了vim包, 而且近期的使用基本都没问题了。
2). YouCompleteMe可以直接安装即可, 但如果用–system-libclang 系统自带的clang版本就过旧了。
下载源包:
https://kojipkgs.fedoraproject.org//packages/llvm/3.4.2/3.el6/src/llvm-3.4.2-3.el6.src.rpm
需要修改一下spec包, 将lldb和gold去掉(因为这个rpm包里没有对应的源码)
|
%bcond_with gold %bcond_with lldb |
然后rpm -bb llvm.spec
就能得到对应的rpm包
|
Wrote: /root/rpmbuild/RPMS/x86_64/llvm-3.4.2-3.fc15.x86_64.rpm Wrote: /root/rpmbuild/RPMS/x86_64/llvm-devel-3.4.2-3.fc15.x86_64.rpm Wrote: /root/rpmbuild/RPMS/noarch/llvm-doc-3.4.2-3.fc15.noarch.rpm Wrote: /root/rpmbuild/RPMS/x86_64/llvm-libs-3.4.2-3.fc15.x86_64.rpm Wrote: /root/rpmbuild/RPMS/x86_64/llvm-static-3.4.2-3.fc15.x86_64.rpm Wrote: /root/rpmbuild/RPMS/x86_64/clang-3.4.2-3.fc15.x86_64.rpm Wrote: /root/rpmbuild/RPMS/x86_64/clang-devel-3.4.2-3.fc15.x86_64.rpm Wrote: /root/rpmbuild/RPMS/noarch/clang-analyzer-3.4.2-3.fc15.noarch.rpm Wrote: /root/rpmbuild/RPMS/x86_64/llvm-ocaml-3.4.2-3.fc15.x86_64.rpm Wrote: /root/rpmbuild/RPMS/x86_64/llvm-ocaml-devel-3.4.2-3.fc15.x86_64.rpm Wrote: /root/rpmbuild/RPMS/noarch/llvm-ocaml-doc-3.4.2-3.fc15.noarch.rpm Wrote: /root/rpmbuild/RPMS/x86_64/llvm-debuginfo-3.4.2-3.fc15.x86_64.rpm |
安装时候可能会遇到类似下面的错误
|
libLLVM-2.8.so is needed by (installed) mesa-dri-drivers-7.11.2-1.fc15.i686 |
其实不用太关心, 我们只需要强制升级 clang 和llvm.x64相关的包。
|
rpm -ivh clang-3.4.2-3.fc15.x86_64.rpm llvm-3.4.2-3.fc15.x86_64.rpm \ llvm-libs-3.4.2-3.fc15.x86_64.rpm --nodeps |
然后对于相关的包,攺一下链接
|
/usr/lib64/llvm> ln -s libLLVM-3.4.so libLLVM-2.8.so |
升级完clang包,然后进入YouCompleteMe目录安装,
|
./install.sh --clang-completer --system-libclang |
3). CMake版本问题
CMake Error at CMakeLists.txt:28 (cmake_minimum_required):
CMake 2.8.11 or higher is required. You are running version 2.8.5
这个问题的话: 从这里下载RPM包
https://kojipkgs.fedoraproject.org//packages/cmake/2.8.12.2/2.fc21/src/cmake-2.8.12.2-2.fc21.src.rpm
因为我不用emacs,所以我修改了spec文件,将emacs相关的依赖删除了。
否则可以用
yum-builddep cmake-2.8.12.2-2.fc21.src.rpm来自己解决依赖
rpmbuild -bb cmake.spec 然后安装cmake包。
|
~> rpm -qa| grep cmake cmake-2.8.12.2-2.fc15.x86_64 |
4) 至于boost, 如果使用到的话,我建议可以升级系统自带的boost包。版本过低。
https://kojipkgs.fedoraproject.org//packages/boost/1.57.0/8.fc23/src/boost-1.57.0-8.fc23.src.rpm
修改一下spec, 去除python3和mpich ,编译顺利
会发现旧的包有依赖
|
libboost_serialization-mt.so.1.46.0()(64bit) is needed by (installed) compiz-0.9.4-1.fc15.x86_64 libboost_serialization-mt.so.1.46.0()(64bit) is needed by (installed) libcompizconfig-0.9.4-1.fc15.x86_64 libboost_serialization-mt.so.1.46.0()(64bit) is needed by (installed) compiz-plugins-main-0.9.4-1.fc15.x86_64 libboost_serialization-mt.so.1.46.0()(64bit) is needed by (installed) compiz-gtk-0.9.4-1.fc15.x86_64 |
就强制升级
|
rpm -Uvh boost-random-1.57.0-8.fc15.x86_64.rpm boost-thread-1.57.0-8.fc15.x86_64.rpm \ boost-graph-1.57.0-8.fc15.x86_64.rpm boost-system-1.57.0-8.fc15.x86_64.rpm \ boost-date-time-1.57.0-8.fc15.x86_64.rpm boost-signals-1.57.0-8.fc15.x86_64.rpm \ boost-wave-1.57.0-8.fc15.x86_64.rpm boost-filesystem-1.57.0-8.fc15.x86_64.rpm \ boost-program-options-1.57.0-8.fc15.x86_64.rpm boost-regex-1.57.0-8.fc15.x86_64.rpm \ boost-iostreams-1.57.0-8.fc15.x86_64.rpm boost-devel-1.57.0-8.fc15.x86_64.rpm \ boost-serialization-1.57.0-8.fc15.x86_64.rpm boost-test-1.57.0-8.fc15.x86_64.rpm \ boost-1.57.0-8.fc15.x86_64.rpm boost-python-1.57.0-8.fc15.x86_64.rpm \ boost-atomic-1.57.0-8.fc15.x86_64.rpm boost-chrono-1.57.0-8.fc15.x86_64.rpm \ boost-context-1.57.0-8.fc15.x86_64.rpm boost-coroutine-1.57.0-8.fc15.x86_64.rpm \ boost-locale-1.57.0-8.fc15.x86_64.rpm boost-log-1.57.0-8.fc15.x86_64.rpm \ boost-math-1.57.0-8.fc15.x86_64.rpm boost-timer-1.57.0-8.fc15.x86_64.rpm \ boost-container-1.57.0-8.fc15.x86_64.rpm \ --nodeps |
然后就可以用 下面语句编译 YouCompleteMe
|
./install.sh --clang-completer --system-libclang --system-boost |