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!