Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

libiconvをインストールしてからVimをソースからコンパイルする

More than 5 years have passed since last update.

研究室のサーバーに入っている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入ってないんだ...

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away