2017/03/01

【Ubuntu】Vimをビルドする手順

Ubuntuで最新VIMをビルドするまでの手順をメモ
Rubyオプションとluaオプション、Lua拡張も使用(Python、Python3、Perlも)

(1)依存パッケージをインストールする


ソースに依存するパッケージを全てインストールするので全部で1GB程度必要だった。(インストールされたものは後述

●sources.listを編集。
※deb-srcの前にあるコメントを外して保存。
sudo vi /etc/apt/sources.list

●依存パッケージのインストール
※luajitはbuild-depでもインストールされないので追加が必要。
sudo apt-get update
sudo apt-get build-dep vim
sudo apt-get install luajit libluajit-5.1

(2)ソースをgitからダウンロード


●ホームディレクトリのGitReposにソースをダウンロード
cd ~
mkdir GitRepos
cd GitRepos
git clone https://github.com/vim/vim.git

(3)ソースをビルド


●vim/srcに移動
cd vim/src

●以下のコマンドを実行し各種オプションを設定する。
./configure --prefix=/usr/local \
--with-features=huge \
--enable-multibyte \
--enable-perlinterp \
--enable-pythoninterp \
--enable-python3interp \
--enable-rubyinterp \
--enable-luainterp \
--with-luajit \
--enable-fail-if-missing

●makeしてインストールする。
make
sudo make install

(4)バージョン確認


再起動後バージョン確認すると反映される。
vim --version


以上



(補足1)GUIなし(CUIのみ)でビルドしたい場合


何故かwith GUI gtk2でビルドされてしまうので、without GUIのままが良い場合は./configureを実行する時に「--disable-gui」を追加する。
「+X11」も有効になるのでX11 forwardingを使っている状態でVIMだけ使っていても、クライアント側でXming等が起動していないと
unable to connect to forwarded X server: Network error: Connection refused
というメッセージが表示されるようになる。(X11と連携するようになってしまう。)
気になるときは「--without-x」も追加すると「-X11」となる。
./configure --prefix=/usr/local \
--with-features=huge \
--enable-multibyte \
--enable-perlinterp \
--enable-pythoninterp \
--enable-python3interp \
--enable-rubyinterp \
--enable-luainterp \
--disable-gui \
--with-luajit \
--without-x \
--enable-fail-if-missing


(補足2)build-depでインストールされた依存パッケージ


debhelper dh-strip-nondeterminism{a} docbook-dsssl{a} docbook-utils
docbook-xml fonts-lato{a} fonts-lmodern{a} fonts-texgyre{a}
gconf-service{a} gconf-service-backend{a} gconf2{a} gconf2-common{a}
ghostscript gir1.2-atk-1.0{a} gir1.2-atspi-2.0{a} gir1.2-freedesktop{a}
gir1.2-gconf-2.0{a} gir1.2-gdkpixbuf-2.0{a} gir1.2-gnomekeyring-1.0{a}
gir1.2-gtk-2.0{a} gir1.2-gtk-3.0{a} gir1.2-pango-1.0{a} gsfonts{a}
icu-devtools{a} intltool-debian{a} jadetex{a} javascript-common{a}
libacl1-dev libarchive-zip-perl{a} libart-2.0-2{a} libart-2.0-dev{a}
libatk-bridge2.0-dev{a} libatk1.0-dev{a} libatspi2.0-dev{a}
libattr1-dev{a} libauthen-sasl-perl{a} libavahi-client-dev{a}
libavahi-common-dev{a} libavahi-glib-dev{a} libavahi-glib1{a}
libbonobo2-0{a} libbonobo2-common{a} libbonobo2-dev{a} libbonoboui2-0{a}
libbonoboui2-common{a} libbonoboui2-dev{a}
libcairo-script-interpreter2{a} libcairo2-dev{a} libcanberra-dev{a}
libcupsfilters1{a} libcupsimage2{a} libdbus-1-dev{a} libegl1-mesa-dev{a}
libepoxy-dev{a} libfile-basedir-perl{a} libfile-desktopentry-perl{a}
libfile-homedir-perl{a} libfile-listing-perl{a} libfile-mimeinfo-perl{a}
libfile-stripnondeterminism-perl{a} libfile-which-perl{a}
libfont-afm-perl{a} libfontconfig1-dev{a} libgail-common{a}
libgail-dev{a} libgail18{a} libgconf-2-4{a} libgconf2-dev{a}
libgconf2-doc{a} libgdk-pixbuf2.0-dev{a} libglade2-0{a} libglib2.0-bin{a}
libglib2.0-dev{a} libgmp-dev{a} libgmpxx4ldbl{a} libgnome-2-0{a}
libgnome-keyring-common{a} libgnome-keyring-dev{a} libgnome-keyring0{a}
libgnome2-0{a} libgnome2-bin{a} libgnome2-common{a} libgnome2-dev{a}
libgnomecanvas2-0{a} libgnomecanvas2-common{a} libgnomecanvas2-dev{a}
libgnomeui-0{a} libgnomeui-common{a} libgnomeui-dev libgnomevfs2-0{a}
libgnomevfs2-common{a} libgnomevfs2-dev{a} libgnutls-dev{a}
libgnutlsxx28{a} libgs9{a} libgs9-common{a} libgtk-3-dev libgtk2.0-dev
libharfbuzz-dev{a} libharfbuzz-gobject0{a} libhtml-form-perl{a}
libhtml-format-perl{a} libhtml-tree-perl{a} libhttp-cookies-perl{a}
libhttp-daemon-perl{a} libhttp-negotiate-perl{a} libice-dev{a}
libicu-dev{a} libidl-2-0{a} libidl-dev{a} libidn11-dev{a} libijs-0.35{a}
libio-socket-ssl-perl{a} libipc-system-simple-perl{a} libjbig2dec0{a}
libjs-jquery{a} libkpathsea6{a} libltdl-dev{a} liblua5.2-dev
liblwp-protocol-https-perl{a} libmail-sendmail-perl{a}
libmailtools-perl{a} libmirclient-dev{a} libmircommon-dev{a}
libmircookie-dev{a} libmircookie2{a} libnet-dbus-perl{a}
libnet-http-perl{a} libnet-smtp-ssl-perl{a} libnet-ssleay-perl{a}
liborbit-2-0{a} liborbit2{a} liborbit2-dev{a} libosp5{a} libostyle1c2{a}
libp11-kit-dev{a} libpango1.0-dev{a} libpangoxft-1.0-0{a}
libpaper-utils{a} libpaper1{a} libpcre3-dev{a} libpcre32-3{a}
libpcrecpp0v5{a} libperl-dev libpixman-1-dev{a} libpoppler-glib8{a}
libpoppler58{a} libpopt-dev{a} libpotrace0{a} libprotobuf-dev{a}
libptexenc1{a} libpython-dev{a} libpython-stdlib{a} libpython2.7{a}
libpython2.7-dev{a} libpython2.7-minimal{a} libpython2.7-stdlib{a}
libpython3-dev{a} libpython3.5-dev{a} libreadline-dev{a}
libreadline6-dev{a} libruby2.3{a} libselinux1-dev libsepol1-dev{a}
libsgmls-perl{a} libsm-dev{a} libsp1c2{a} libsynctex1{a}
libsys-hostname-long-perl{a} libtasn1-6-dev{a} libtasn1-doc{a}
libtcl8.6{a} libtexlua52{a} libtexluajit2{a} libtie-ixhash-perl{a}
libtinfo-dev libtk8.6{a} libtool{a} libtool-bin{a} libwayland-dev{a}
libwww-perl{a} libwww-robotrules-perl{a} libx11-protocol-perl{a}
libxaw7-dev libxcb-shm0-dev{a} libxcomposite-dev{a} libxcursor-dev{a}
libxft-dev{a} libxi-dev{a} libxinerama-dev{a} libxkbcommon-dev{a}
libxml-parser-perl{a} libxml-twig-perl{a} libxml-xpathengine-perl{a}
libxml2-dev{a} libxml2-utils{a} libxmu-dev{a} libxmu-headers{a}
libxpm-dev libxrandr-dev{a} libxrender-dev{a} libxt-dev libxtst-dev{a}
libyaml-0-2{a} libyaml-tiny-perl{a} libzzip-0-13{a} lmodern{a} lua5.2
lynx{a} lynx-common{a} nettle-dev{a} openjade{a} orbit2{a} pdf2svg
pkg-config{a} po-debconf{a} poppler-data{a} prosper{a} ps2eps{a}
python{a} python-dev python-minimal{a} python2.7{a} python2.7-dev{a}
python2.7-minimal{a} python3-dev python3.5-dev{a} rake{a} ruby ruby-dev
ruby-did-you-mean{a} ruby-minitest{a} ruby-net-telnet{a}
ruby-power-assert{a} ruby-test-unit{a} ruby2.3{a} ruby2.3-dev{a}
rubygems-integration{a} sgml-data{a} sgmlspl{a} sp{a} t1utils{a} tcl{a}
tcl-dev tcl8.6{a} tcl8.6-dev{a} tex-common{a} tex-gyre{a} texlive-base{a}
texlive-binaries{a} texlive-extra-utils{a} texlive-font-utils{a}
texlive-fonts-recommended{a} texlive-fonts-recommended-doc{a}
texlive-generic-recommended{a} texlive-latex-base{a}
texlive-latex-base-doc{a} texlive-latex-recommended{a}
texlive-latex-recommended-doc{a} texlive-pictures{a}
texlive-pictures-doc{a} texlive-pstricks{a} texlive-pstricks-doc{a}
tipa{a} tk{a} tk8.6{a} unzip{a} x11-xserver-utils{a}
x11proto-composite-dev{a} x11proto-randr-dev{a} x11proto-record-dev{a}
x11proto-render-dev{a} x11proto-xinerama-dev{a} xdg-utils{a} xterm{a}
zip{a}
スポンサーサイト