fedora17 で +lua/dyn なvimをビルドする
[2013/04/16 追記あり]
fedora17は64bit版です。
vimのソース取得
Vim from Mercurial : vim online を参考に引っ張って来ます。
私は ~/okome/vim に取得しました。
lua関連のパッケージのインストール
$ sudo yum install lua lua-devel
luaは既にインストールされているかも。
static linkさせたい場合は lua-static もインストールします。
$ sudo yum install lua-static
Vimのconfigure
毎回configureのオプションを指定するのは面倒くさいので以下のようなファイル(copt_lua.txt)を作成しときます。
luaに関係するのは最後の --enable-luainterp=dynamic ですね。dynamicをyesにするとstatic linkになります。
$ cd ~/okome $ cat copt_lua.txt --enable-multibyte --with-gnome --with-features=huge --enable-fail-if-missing --enable-luainterp=dynamic
$ cd vim $ ./configure `cat ../copt_lua.txt`
エラーが出たらエラーメッセージに従ってください。( rm src/auto/config.cache する等 )
$ make
動作確認
$ src/vim
:ver の表示に +lua/dyn が含まれていることを確認してください。
luaでHello world出力。
:lua print("Hello world.")
E370: Could not load library liblua.so.5.1 Lua library cannot be loaded.
およ!ライブラリがロード出来ないと怒られました。
[2013/04/16 追記]
Vim 7.3.897で正しいライブラリ名(liblua-5.1.so)を参照するようになったので以降の記事は古い情報です。
ライブラリの確認
$ cd /usr/lib64 $ ls -l liblua* -rwxr-xr-x. 1 root root 186176 1月 14 2012 liblua-5.1.so* lrwxrwxrwx. 1 root root 13 4月 9 23:18 liblua.so -> liblua-5.1.so*
あれ?微妙にライブラリ名が違う。。
Vimは liblua.so.5.1 をロードしようとしてるけど
実在するのは liblua-5.1.so ですねぇ。Vimのconfigure時に指定出来るのかな?
ええぃ!自分でシンボリックリンク作っちゃいましょう。
$ sudo ln -s liblua-5.1.so liblua.so.5.1 $ ls -l liblua* -rwxr-xr-x. 1 root root 186176 1月 14 2012 liblua-5.1.so* lrwxrwxrwx. 1 root root 13 4月 9 23:18 liblua.so -> liblua-5.1.so* lrwxrwxrwx. 1 root root 13 4月 10 00:47 liblua.so.5.1 -> liblua-5.1.so*
これでライブラリのロードは大丈夫。
動作確認 (2)
$ cd ~/okome/vim
$ src/vim
:lua print("Hello world.")
Vimのコマンドラインのところに Hello world. と表示されたら成功です。
後は楽しくluaりましょう。