Vimの最新のパッチのバージョンがついに7.3.1000を超えました。
Vim7.4も近いですね。
しかし、Ubuntuのリポジトリに入っているvimは7.3.547と最新のものではありません。
今回、ソースからコンパイル&インストールまでしたのでその記録を残しておきます。
特にluaインターフェイスが大変でした・・・
一応、色々サポートという事でオプションは
+perl
+python
+ruby
+lua/dyn
+tcl
などをつけました。
Luaはいつもお世話になっているneocomplcacheでも使っているとのことで頑張りました。
手順は、基本的にvim-jpの説明に従いました。
他に下記のページを参考にさせていただきました。
http://d.hatena.ne.jp/h_east/20130409/p1
http://d.hatena.ne.jp/thinca/20100912/1284284839
http://yomi322.hateblo.jp/entry/2012/09/06/121958
下準備(ビルドに必要なパッケージのインストール)
Kubuntuでgnomeは使っていないのでGTK2版をいれます。
sudo apt-get install mercurial gettext libncurses5-dev libxmu-dev libgtk2.0-dev libperl-dev python-dev python3-dev ruby-dev tcl-dev
gnome版はlibgtk2.0-dev
の代わりにlibgnomeui-dev
を入れてください。
おそらく他にbuild-essential
とかも必要だと思いますが、すでに入れてありました。
他に、Lua対応として、
sudo apt-get install liblua5.1-0-dev liblua5.2-dev
が必要でした。
どちらか一方で良さそうですが、とりあえず両方いれました。
(後々おかしくなったのはこれが原因・・・?)
あと一応入っていなければluajitも。
sudo apt-get install luajit
ソースコード取得
Mercurialでcloneしてきます。
hg clone https://vim.googlecode.com/hg/ vim
私がcloneした時は7.3.1004でした。
コンパイル
以下のコマンドをvim/srcディレクトリで実行します。
pythonとluaのライブラリの場所が標準と異なるので指定しています。
./configure \
--with-features=huge \
--enable-multibyte \
--enable-gui=gtk2 \
--enable-perlinterp \
--enable-pythoninterp \
--with-python-config-dir=/usr/lib/python2.7/config \
--enable-rubyinterp \
--enable-tclinterp \
--enable-luainterp=dynamic \
--with-lua-prefix=/usr \
--enable-gpm \
--enable-cscope \
--enable-fontset \
--enable-fail-if-missing
gnome版は--enable-gui=gnome2
だそうです。
面倒だったのでvim-conf.sh
とか作って書いてから実行しました。
この時、/usr/include/lua
がないとかのエラーが出たので、無理やりですがシンボリックリンクで対応しました。
sudo ln -s /usr/include/lua5.1 /usr/include/lua
lua5.2の人はlua5.2をリンクすればコンパイルは通ると思います。
動作確認はしていません。
ここまで来たらvim/srcディレクトリでmake
します。
数分程度かかりました。
動作確認
vim/srcディレクトリにvimがあるので起動して、:version
できちんと目的のバージョンになっているか確認したほうがいいと思います。
ついでに+pythonや+lua/dynのオプションも確認できます。
オプションがついていても実行できない場合があるので、実際に動作させたほうが安全です。
:python print('Hello world')
:lua print("Hello world")
簡単な確認ですが、エラーがでなければ大丈夫だと思います。
私はluaインターフェイスの方で
ライブラリ liblua.so. が見つかりません。
とエラーが出てしまいました。
とりあえずliblua.so.
もリンクを作ってコンパイルしなおして対応しました。
sudo ln -s /usr/lib/x86_64-linux-gnu/liblua5.1.so /usr/lib/x86_64-linux-gnu/liblua.so.
lua関係のエラーがどう見てもバージョン絡みっぽいですね。
5.1だけをインストールした状態ならこんなことしなくてもうまくいったのかもしれません。
やり直す時は、vim/srcのディレクトリで make distclean
した後に./configure
からやり直しました。
インストール
大丈夫そうでしたら、
sudo make install
で置き換えれば完了です。
python2 と python3
Debian系ディストリでは、python2とpython3は同時に利用できないそうです。
http://vim-jp.org/tips/if_python.html
なのですが一応やるだけやってみました。
+python3用に./configure
に以下のオプションを追加しました。
--enable-python3interp --with-python3-config-dir=/usr/lib/python3.3/config
configディレクトリがなかったのですが、ipython3をインストールしたらconfigディレクトリも作られました。
python2の方でもipythonでインストールされるconfigディレクトリを読んでいるようです。 ここまでやれば、./configureとmakeは通りました。
しかし、結局+pythonと+python3を同時に有効にできませんでした。
両方入れてコンパイルすると両方+にはなるのでが、vim上で実行すると:py print('hello')
も:py3 print('hello')
もエラーで実行できませんでした。
追記
公開した直後ですが、7.3.970以降は新しい正規表現エンジンにバグが残っているみたいなので、969以下にしておいた方がいいかもしれません。
hg update v7-3-969
で7.3.969に切り替わります。
切り替えたら以後の手順は同じです。(未確認)
私は今のところ特に気になっていないので最新版を使っていますが・・・
0 件のコメント:
コメントを投稿