没有root权限的情况下安装vim
Problem
最近工作中遇到个问题,就是开发是在服务器上,没有desktop没有UI的那种,想来想去也就只能用vim了。
但是服务器上的vim版本比较低,一些插件都安装不了。想更新vim呢,又没有root权限,不能直接升级软件包。
看来只能走源码编译这条路了。但是还有个问题,就是vim编译所需的环境,也得源码编译。
好在找到了一篇博客,详细介绍了这个方法,我就引用过来,做个记录了。
原文:Install vim without sudo access
Solution
1. 下载 ncurses 源码并编译安装
这是编译vim所必需的。
先下载源码:
$ wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.2.tar.gz
这里下载的是6.2版本,实际上可能已经又更新的版本发布了,可以去 http://ftp.gnu.org/pub/gnu/ncurses/ 这里查看一下。
然后解包,进入源码目录。
tar -xvf ncurses-6.1.tar.gz
cd ncurses-6.1
接下来编译。由于我没有root权限,因此需要将这个软件包安装在自己的用户目录下。所以用configure
来指定安装目录。
$ ./configure --prefix=$HOME/usr/local
$ make -j
$ make install
2. 新增库路径
我们需要把刚才的用户目录下的安装路径,添加到系统环境变量中,否则编译vim时将找不到刚刚安装好的ncurses。
用任意编辑器打开~/.bashrc
,然后添加如下语句:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/usr/local/lib
使之生效:
$ source ~/.bashrc
3. 下载 vim 源码并编译安装
首先下载(需要安装有 git):
$ git clone https://github.com/vim/vim.git
然后进入源码目录,先配置(configure
)再编译安装。注意在configure
的时候需要指定依赖库目录和编译好之后的安装目录:
$ cd vim
$ LDFLAGS=-L$HOME/usr/local/lib ./configure --prefix=$HOME/usr/local
$ make -j
$ make install
4. 替换系统vim
虽然此时vim已经编译安装了,但是系统的vim依然还在。我们需要指定一下使用vim的时候,到底用的是哪个vim。
在~/.bashrc
中添加如下语句:
export PATH=\$PATH:\$HOME/usr/local/bin
alias vi=vim
使其生效:
$ source ~/.bashrc
到这里就已经安装好vim了。可以通过which vim
指令来确定自己用的是哪个vim。
Enjoy!