LoginSignup
13
12

More than 5 years have passed since last update.

Vim8.0をBash on Ubuntu On Windowsでビルドした

Posted at

概要

なんとなく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
 (ログは省略)

無事ビルドできました :clap:

(参考)デフォルトで入っていた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ライフを! :smile:

13
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12