概要
なんとなくBash on Ubuntu on Windowsを入れて、とりあえずVimを自前ビルドしたのでその作業メモです。
luaとか有効にしてます。(オプションは後述)
(Bash on Ubuntu on Windowsの入れ方とかは他記事におまかせするとします。)
環境
- Windows 10 Pro 64bit 1607
必要なパッケージのインストール
適当に指定しているので、もしかしたら不要なものも含まれているかもしれませんが...
ざくっと以下を実行。
$ sudo apt-get install git cpp gcc autoconf automake make lua5.2 luajit liblua5.2-0 liblua5.2-dev libperl5.18 libperl-dev python-dev python3-dev ruby ruby-dev tcl tcl-dev
パッケージリストを読み込んでいます... 完了%
依存関係ツリーを作成しています
状態情報を読み取っています... 完了%
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
libfreetype6 os-prober
これを削除するには 'apt-get autoremove' を利用してください。
以下の特別パッケージがインストールされます:
autotools-dev binutils build-essential cpp-4.8 dpkg-dev fakeroot g++ g++-4.8
gcc-4.8 git-man libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libasan0 libatomic1 libc-dev-bin libc6-dev
libcloog-isl4 libdpkg-perl liberror-perl libexpat1-dev libfakeroot
libfile-fcntllock-perl libgcc-4.8-dev libgmp10 libgomp1 libisl10 libitm1
libltdl-dev libltdl7 libluajit-5.1-common libmpc3 libmpfr4 libpython-dev
libpython2.7-dev libpython3-dev libpython3.4 libpython3.4-dev libquadmath0
libreadline-dev libreadline6-dev libruby1.9.1 libstdc++-4.8-dev libtcl8.6
libtinfo-dev libtool libtsan0 linux-libc-dev m4 manpages-dev pkg-config
python2.7-dev python3.4-dev ruby1.9.1 ruby1.9.1-dev tcl8.6 tcl8.6-dev
zlib1g-dev
提案パッケージ:
autoconf2.13 autoconf-archive gnu-standards autoconf-doc gettext
binutils-doc cpp-doc gcc-4.8-locales debian-keyring g++-multilib
g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg gcc-multilib automake1.9
flex bison gdb gcc-doc gcc-4.8-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg
libatomic1-dbg libasan0-dbg libtsan0-dbg libquadmath0-dbg git-daemon-run
git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch
git-bzr git-cvs git-mediawiki git-svn glibc-doc libtool-doc
libstdc++-4.8-doc automaken gfortran fortran95-compiler gcj-jdk make-doc ri
ruby1.9.1-examples ri1.9.1 graphviz ruby-switch tcl-doc tcl-tclreadline
tcl8.6-doc
以下のパッケージが新たにインストールされます:
autoconf automake autotools-dev binutils build-essential cpp cpp-4.8
dpkg-dev fakeroot g++ g++-4.8 gcc gcc-4.8 git git-man libalgorithm-diff-perl
libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan0 libatomic1
libc-dev-bin libc6-dev libcloog-isl4 libdpkg-perl liberror-perl
libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-4.8-dev libgmp10
libgomp1 libisl10 libitm1 libltdl-dev libltdl7 liblua5.2-0 liblua5.2-dev
libluajit-5.1-common libmpc3 libmpfr4 libperl-dev libperl5.18 libpython-dev
libpython2.7-dev libpython3-dev libpython3.4 libpython3.4-dev libquadmath0
libreadline-dev libreadline6-dev libruby1.9.1 libstdc++-4.8-dev libtcl8.6
libtinfo-dev libtool libtsan0 linux-libc-dev lua5.2 luajit m4 make
manpages-dev pkg-config python-dev python2.7-dev python3-dev python3.4-dev
ruby ruby-dev ruby1.9.1 ruby1.9.1-dev tcl tcl-dev tcl8.6 tcl8.6-dev
zlib1g-dev
アップグレード: 0 個、新規インストール: 76 個、削除: 0 個、保留: 0 個。
95.0 MB のアーカイブを取得する必要があります。
この操作後に追加で 256 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
(ログは省略)
githubからソースをclone
特に解説することもないですね。
$ cd /usr/local/src
$ sudo chmod a+w .
$ git clone https://github.com/vim/vim.git
configure && make && make install
いつも使ってるビルドオプションをそのまま指定しました。
--enable-fail-if-missing
を指定していると足りないパッケージがあるとエラーになるので便利です。(つい最近知りました...)
$ cd vim
$ ./configure --with-features=huge \
--disable-darwin \
--disable-selinux \
--enable-fail-if-missing \
--enable-luainterp \
--enable-perlinterp=dynamic \
--enable-pythoninterp \
--enable-python3interp \
--enable-tclinterp \
--enable-rubyinterp \
--enable-cscope \
--enable-multibyte \
--enable-xim \
--enable-fontset \
--with-compiledby=xxxkurosukexxx \
--enable-gui=no \
--prefix=/usr/local
(ログは省略)
$ make
(ログは省略)
$ sudo make install
(ログは省略)
無事ビルドできました
(参考)デフォルトで入っていたVim
$ vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:39:32)
適用済パッチ: 1-52
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by buildd@
Huge 版 without GUI. 機能の一覧 有効(+)/無効(-)
+acl +farsi +mouse_netterm +syntax
+arabic +file_in_path +mouse_sgr +tag_binary
+autocmd +find_in_path -mouse_sysmouse +tag_old_static
-balloon_eval +float +mouse_urxvt -tag_any_white
-browse +folding +mouse_xterm -tcl
++builtin_terms -footer +multi_byte +terminfo
+byte_offset +fork() +multi_lang +termresponse
+cindent +gettext -mzscheme +textobjects
-clientserver -hangul_input +netbeans_intg +title
-clipboard +iconv +path_extra -toolbar
+cmdline_compl +insert_expand -perl +user_commands
+cmdline_hist +jumplist +persistent_undo +vertsplit
+cmdline_info +keymap +postscript +virtualedit
+comments +langmap +printer +visual
+conceal +libcall +profile +visualextra
+cryptv +linebreak +python +viminfo
+cscope +lispindent -python3 +vreplace
+cursorbind +listcmds +quickfix +wildignore
+cursorshape +localmap +reltime +wildmenu
+dialog_con -lua +rightleft +windows
+diff +menu -ruby +writebackup
+digraphs +mksession +scrollbind -X11
-dnd +modify_fname +signs -xfontset
-ebcdic +mouse +smartindent -xim
+emacs_tags -mouseshape -sniff -xsmp
+eval +mouse_dec +startuptime -xterm_clipboard
+ex_extra +mouse_gpm +statusline -xterm_save
+extra_search -mouse_jsbterm -sun_workshop -xpm
システム vimrc: "$VIM/vimrc"
ユーザ vimrc: "$HOME/.vimrc"
第2ユーザ vimrc: "~/.vim/vimrc"
ユーザ exrc: "$HOME/.exrc"
省略時の $VIM: "/usr/share/vim"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
リンク: gcc -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -o vim -lm -ltinfo -lnsl -lselinux -lacl -lattr -lgpm -ldl -L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions
(参考)今回ビルドしたVim
$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 30 2016 14:48:00)
Included patches: 1-19
Compiled by xxxkurosukexxx
Huge version without GUI. Features included (+) or not (-):
+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/dyn +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
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
defaults file: "$VIMRUNTIME/defaults.vim"
fall-back for $VIM: "/usr/local/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -L/build/buildd/ruby1.9.1-1.9.3.484/debian/lib -rdynamic -Wl,-export-dynamic -Wl,-E -L/usr/local/lib -Wl,--as-needed -o vim -lm -ltinfo -lnsl -ldl -L/usr/lib -llua5.2 -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/perl/5.18/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-1.9.1 -lpthread -lrt -ldl -lcrypt -lm -L/usr/lib
こちらからは以上ですー。
良きVimライフを!