研究室のサーバーに入っているVimにはrubyとかlua等のオプションがついていなかったので、ソースからコンパイルすることにした。
ソースからコンパイルする方法は様々な所で紹介されていると思うが、意外なところで躓いたので備忘録として残しておくことにする。
前提
- インストールディレクトリは
$HOME/local
- ユーザーは名は
hoge
- ソースを展開するディレクトリは
$HOME/tools
Vimをインストール(失敗)
cd ~/tools
git clone https://github.com/vim/vim.git
cd vim
./configure \
--with-features=huge \
--enable-multibyte \
--enable-rubyinterp \
--enable-pythoninterp \
--enable-perlinterp \
--enable-luainterp \
--enable-gui=gtk2 \
--enable-cscope \
--prefix /home/hoge/local
configure
の途中で
configure: error: cannot compute sizeof (off_t)
というエラーが!!! 前にローカルのPCではこんなエラーが出なかったぞ!と思いぐぐってみるとlibiconvが必要なようで研究室のサーバーにはそれが入っていなかった...なのでlibiconvをインストールした。
libiconvのインストール
cd ~/tools
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar -xvzf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/home/hoge/local
make -jX # Xは使用するコア数で置き換える
make install
Vimのコンパイル(成功)
コンパイルする前にlibiconvのパスを通す必要がある。
zshを使っているなら.zshrcにbashを使っているなら.bashrcに
export LD_RUN_PATH=/home/hoge/local/lib
を追加して
source ~/.zshrc # bash使っているなら ~/.bashrc
を実行し、
./configure \
--with-features=huge \
--enable-multibyte \
--enable-rubyinterp \
--enable-pythoninterp \
--enable-perlinterp \
--enable-luainterp \
--enable-gui=gtk2 \
--enable-cscope \
--prefix /home/hoge/local
make -jX
make install
でOK。もしくは、./configure
の前にLD_RUN_PATH=/home/hoge/local/lib
と書いてもOK。
configureのオプションは好みに応じて変えてください。
最後に
なんでlibiconv入ってないんだ...