TL;DR
OSはLinux Mint(Cinnamon)
依存するパッケージをインストールして
sudo apt-get install git gettext libncurses5-dev libacl1-dev libgpm-dev \
libxmu-dev libgnomeui-dev libxpm-dev \
libperl-dev python-dev python3-dev ruby-dev luajit libluajit-5.1
次にgit
でvim
のリポジトリを引っ張っておく
git clone git@github.com:vim/vim.git ~/.local/src/vim
更新用のシェルスクリプトを書いて
$HOME/.cron/vim-okkake.sh
#/usr/bin/env bashset -e
cd${HOME}/.local/src/vim
git pull
./configure --with-features=huge --enable-gui=gnome2 \
--enable-perlinterp --enable-pythoninterp \
--enable-python3interp --enable-rubyinterp \
--enable-luainterp --with-luajit \
--enable-fail-if-missing \
--prefix=${HOME}/.local
make
make install
crontab -e
で以下を追記(1日1回行う設定)
0 0 * * * $HOME/.cron/vim-okkake.sh 2>> $HOME/.cron/vim-okkake.log
$HOME/.local/bin
にパスを通しておくと
vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 21 2016 00:00:10)
適用済パッチ: 1-5
Compiled by foo@bar
Huge 版 without GUI. 機能の一覧 有効(+)/無効(-)
+acl +file_in_path +mouse_sgr +tag_old_static
+arabic +find_in_path -mouse_sysmouse -tag_any_white
+autocmd +float +mouse_urxvt -tcl
-balloon_eval +folding +mouse_xterm +termguicolors
-browse -footer +multi_byte +terminfo
++builtin_terms +fork() +multi_lang +termresponse
+byte_offset +gettext -mzscheme +textobjects
+channel -hangul_input +netbeans_intg +timers
+cindent +iconv +num64 +title
-clientserver +insert_expand +packages -toolbar
-clipboard +job +path_extra +user_commands
+cmdline_compl +jumplist +perl +vertsplit
+cmdline_hist +keymap +persistent_undo +virtualedit
+cmdline_info +lambda +postscript +visual
+comments +langmap +printer +visualextra
+conceal +libcall +profile +viminfo
+cryptv +linebreak +python/dyn +vreplace
+cscope +lispindent +python3/dyn +wildignore
+cursorbind +listcmds +quickfix +wildmenu
+cursorshape +localmap +reltime +windows
+dialog_con +lua +rightleft +writebackup
+diff +menu +ruby -X11
+digraphs +mksession +scrollbind -xfontset
-dnd +modify_fname +signs -xim
-ebcdic +mouse +smartindent -xpm
+emacs_tags -mouseshape +startuptime -xsmp
+eval +mouse_dec +statusline -xterm_clipboard
+ex_extra +mouse_gpm -sun_workshop -xterm_save
+extra_search -mouse_jsbterm +syntax
+farsi +mouse_netterm +tag_binary
システム vimrc: "$VIM/vimrc"
ユーザー vimrc: "$HOME/.vimrc"
第2ユーザー vimrc: "~/.vim/vimrc"
ユーザー exrc: "$HOME/.exrc"
デフォルトファイル: "$VIMRUNTIME/defaults.vim"
省略時の $VIM: "/home/foo/.local/share/vim"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
リンク: gcc -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E -L/usr/local/lib -Wl,--as-needed -o vim -lm -ltinfo -lnsl -lacl -lattr -lgpm -ldl -L/usr/lib/x86_64-linux-gnu -lluajit-5.1 -Wl,-E -fstack-protector-strong -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu/perl/5.22/CORE -lperl -ldl -lm -lpthread -lcrypt -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm
以上
動機
Vimのバージョンをcronで毎日上げ続け、最新のパッチを確認し続ける日々を送ってきました。そして、今日も夜11時のcronでバージョンが上がりました。新しいメジャーバージョン、8.0でした。
(Vim 8.0 リリース! - プログラムモグモグより引用)
- Vim 8.0を使ってみたかった
- どうせ使うなら最新の物を使おう
以下試行錯誤の記録
とりあえず標準でbuild出来るか確かめる
git@github.com:vim/vim.git
cd vim
./configure
エラー
configure: loading cache auto/config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/home/foo/.local/src/vim/src':
configure: error: C compiler cannot create executables
See `config.log' for more details
config.log
どこに生成されたんだ?
http://vim-jp.org/docs/build_linux.html
を読んで以下をインストール
sudo apt-get install git gettext libncurses5-dev
libacl1-dev libgpm-dev
./configure
する.
./configure
動いた
インストール場所の設定をしていなかった
./configure --prefix=${HOME}/.local
PATHにも追加しておく
export PATH="$HOME/.local/bin:$PATH"
make install
して
make install
動いた
vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 152016 19:32:29)適用済パッチ: 1-5
Compiled by foo@bar
Huge 版 without GUI. 機能の一覧 有効(+)/無効(-)
+acl +file_in_path +mouse_sgr +tag_old_static
+arabic +find_in_path -mouse_sysmouse -tag_any_white
+autocmd +float +mouse_urxvt -tcl
-balloon_eval +folding +mouse_xterm +termguicolors
-browse -footer +multi_byte +terminfo
++builtin_terms +fork() +multi_lang +termresponse
+byte_offset +gettext -mzscheme +textobjects
+channel -hangul_input +netbeans_intg +timers
+cindent +iconv +num64 +title
-clientserver +insert_expand +packages -toolbar
-clipboard +job +path_extra +user_commands
+cmdline_compl +jumplist -perl +vertsplit
+cmdline_hist +keymap +persistent_undo +virtualedit
+cmdline_info +lambda +postscript +visual
+comments +langmap +printer +visualextra
+conceal +libcall +profile +viminfo
+cryptv +linebreak -python +vreplace
+cscope +lispindent -python3 +wildignore
+cursorbind +listcmds +quickfix +wildmenu
+cursorshape +localmap +reltime +windows
+dialog_con -lua +rightleft +writebackup
+diff +menu -ruby -X11
+digraphs +mksession +scrollbind -xfontset
-dnd +modify_fname +signs -xim
-ebcdic +mouse +smartindent -xpm
+emacs_tags -mouseshape +startuptime -xsmp
+eval +mouse_dec +statusline -xterm_clipboard
+ex_extra +mouse_gpm -sun_workshop -xterm_save
+extra_search -mouse_jsbterm +syntax
+farsi +mouse_netterm +tag_binary
システム vimrc: "$VIM/vimrc"ユーザー vimrc: "$HOME/.vimrc"第2ユーザー vimrc: "~/.vim/vimrc"ユーザー exrc: "$HOME/.exrc"デフォルトファイル: "$VIMRUNTIME/defaults.vim"省略時の $VIM: "/home/foo/.local/share/vim"コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1リンク: gcc -L/usr/local/lib -Wl,--as-needed -o vim -lm -ltinfo -lnsl -lacl -lattr -lgpm -ldl
この状態だとluaとかの機能が有効になっていない.
上のリンクに有った(表記上の)全てを入れてみよう.
luajitの方が速いらしいのでそっちを優先した形.
sudo apt install libxmu-dev libgnomeui-dev libxpm-dev \
libperl-dev python-dev python3-dev ruby-dev luajit libluajit-5.1
./configure --with-features=huge --enable-gui=gnome2 \
--enable-perlinterp --enable-pythoninterp \
--enable-python3interp --enable-rubyinterp \
--enable-luainterp --with-luajit \
--enable-fail-if-missing \
--prefix=${HOME}/.local
vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 162016 16:08:51)適用済パッチ: 1-5
Compiled by foo@bar
Huge 版 without GUI. 機能の一覧 有効(+)/無効(-)
+acl +file_in_path +mouse_sgr +tag_old_static
+arabic +find_in_path -mouse_sysmouse -tag_any_white
+autocmd +float +mouse_urxvt -tcl
-balloon_eval +folding +mouse_xterm +termguicolors
-browse -footer +multi_byte +terminfo
++builtin_terms +fork() +multi_lang +termresponse
+byte_offset +gettext -mzscheme +textobjects
+channel -hangul_input +netbeans_intg +timers
+cindent +iconv +num64 +title
-clientserver +insert_expand +packages -toolbar
-clipboard +job +path_extra +user_commands
+cmdline_compl +jumplist +perl +vertsplit
+cmdline_hist +keymap +persistent_undo +virtualedit
+cmdline_info +lambda +postscript +visual
+comments +langmap +printer +visualextra
+conceal +libcall +profile +viminfo
+cryptv +linebreak +python/dyn +vreplace
+cscope +lispindent +python3/dyn +wildignore
+cursorbind +listcmds +quickfix +wildmenu
+cursorshape +localmap +reltime +windows
+dialog_con +lua +rightleft +writebackup
+diff +menu +ruby -X11
+digraphs +mksession +scrollbind -xfontset
-dnd +modify_fname +signs -xim
-ebcdic +mouse +smartindent -xpm
+emacs_tags -mouseshape +startuptime -xsmp
+eval +mouse_dec +statusline -xterm_clipboard
+ex_extra +mouse_gpm -sun_workshop -xterm_save
+extra_search -mouse_jsbterm +syntax
+farsi +mouse_netterm +tag_binary
システム vimrc: "$VIM/vimrc"ユーザー vimrc: "$HOME/.vimrc"第2ユーザー vimrc: "~/.vim/vimrc"ユーザー exrc: "$HOME/.exrc"デフォルトファイル: "$VIMRUNTIME/defaults.vim"省略時の $VIM: "/home/foo/.local/share/vim"コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1リンク: gcc -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E -L/usr/local/lib -Wl,--as-needed -o vim -lm -ltinfo -lnsl -lacl -lattr -lgpm -ldl -L/usr/lib/x86_64-linux-gnu -lluajit-5.1 -Wl,-E -fstack-protector-strong -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu/perl/5.22/CORE -lperl -ldl -lm -lpthread -lcrypt -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm
lua等有効になってるけどgvimが生成されていないぞ(結局わからなかった)
更新用のスクリプトを書いて.
$HOME/.cron/vim-okkake.sh
#/usr/bin/env bashset -e
cd${HOME}/.local/src/vim
git pull
./configure --with-features=huge --enable-gui=gnome2 \
--enable-perlinterp --enable-pythoninterp \
--enable-python3interp --enable-rubyinterp \
--enable-luainterp --with-luajit \
--enable-fail-if-missing \
--prefix=${HOME}/.local
make
make install
crontab -e
で追記
0 0 * * * $HOME/.cron/vim-okkake.sh 2>> $HOME/.cron/vim-okkake.log
終わり