さくらインターネットのレンタルサーバーに Vim をインストール

さくらインターネットさんのレンタルサーバー(スタンダードプラン)に Vim をインストールしましたので、私自身の備忘録として作業の流れをまとめました。

なお、今回は Vim オフィシャルサイトのソースファイルではなく、GitHub からパッチ適用済みのソースファイルをダウンロードしてインストールています。

経緯

さくらインターネットさんのレンタルサーバー(スタンダードプラン)の OS は、FreeBSD です。サーバーのシェルにログインした状態で設定ファイルやテキストの編集を行う場合は vi(1) を使っています。ASCII 文字だけの編集であれば vi(1) でも構わないのですが、日本語の編集を行う場合には、シェルが日本語に対応しているとともに、vim(1) のような UTF-8マルチバイトに対応したエディタが必要になります。

サーバーのシェルにログインした状態で以下の様なコマンドを実行し、vim(1) がインストールされていることを確認できたのですが、メジャーバージョンがひとつ前のバージョンでした。日本語には対応しているようです。

$ which vim
/usr/local/bin/vim
 
$ /usr/local/bin/vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 15 2013 12:37:31)
適用済パッチ: 1-526, 528-779, 781-795, 797-872, 874-889   以下略

私はプログラミングの経験もコンパイルの経験もないのですが、せめてメジャーバージョンは現行のバージョン(本記事投稿時は、Vim 7.4)の vim(1) を使いたいため、ソースファイルから Vim をインストールすることに挑戦しました。

ソースファイルは GitHub から入手する

ネットで調べたところ、Vim のソースファイルは、以下の入手方法がありました。

  • Vim のオフィシャルサイトから入手
    • Vim 本体のソースファイルをダウンロード。
    • 本体のソースファイルに対するパッチファイルすべてをダウンロード。
    • この記事を投稿する時点で、Vim のソースファイルは vim-7.4.tar.bz2、パッチファイルの数は2,000個以上であり、パッチファイルのすべてを vim-7.4.tar.bz2 のソースファイルに適用する必要がある。
  • http://www.vim.org/git.php から入手
    • ソースファイルのダウンロードの場合は、アカウントを解説する必要はない。
    • Vim 本体のソースファイルにパッチがマージされた最新のソースファイルである。

また、レンタルサーバー(スタンダードプラン)の FreeBSD には、幸いな事に以下のように git(1) がインストールされていました。これは迷うことなく、ソースファイルは GitHub からダウンロードしてコンパイルするのが、時間と手間の節約につながります。

$ which git
/usr/local/bin/git

ソースファイルのダウンロードとコンパイル

インストール環境

OS
FreeBSD
アカウント
ユーザー(root 権限なし)
シェル
bash(1)
文字コード
ja.JP_UTF-8

バイナリと作業用のディレクトリの作成

一般的にホームディレクトリに local というディレクトリを作成し、そこにバイナリ用やソース用のディレクトリを作成するようです。

私の場合はホームディレクトリに local を作成していませんでしたので、まず local を作成し、その下に binsrc のディレクトリを作成しました。面倒でしたので、bash(1)ブレース展開も併用して以下のように、1行コマンドで作成しています。

$ cd ~
$ mkdir -p local/{bin,src}
 
$ ls -Al local
drwxr-xr-x  2 hogehoge  users  512  7月 17 14:06 bin
drwxr-xr-x  2 hogehoge  users  512  7月 17 14:06 src

ソースファイルは ~/local/src にダウンロードしますので、そのディレクトリに移動します。

$ cd ~/local/src

GitHub からソースファイルをダウンロード

git(1) でソースファイルをダウンロードする場合は、オプションの clone を使うらしいので、以下のようにして GitHub から vim(1) のソースファイルをダウンロードします。ダウンロードは、すぐに終わります(約30秒)。

$ git clone https://github.com/vim/vim.git
Cloning into 'vim'...
remote: Counting objects: 61370, done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 61370 (delta 7), reused 0 (delta 0), pack-reused 61353
Receiving objects: 100% (61370/61370), 52.59 MiB | 5.59 MiB/s, done.
Resolving deltas: 100% (51368/51368), done.
Checking connectivity... done.
 
$ ls -Al
drwxr-xr-x  9 hogehoge  users  512  7月 17 15:15 vim

vimsrc ディレクトリ (~/local/src/vim/src) に移動します。

$ cd vim/src
$ ls -Al

コンパイルの事前準備

ソースファイルをコンパイルする前に、congigure というシェルスクリプトを使用してコンパイルの前に必要な情報を収集するらしいです。congigure はシェルスクリプトのことが多いと思うのですが、以下のようにするとスクリプトなのかバイナリなのかが分かります。

$ file configure
configure: POSIX shell script, ASCII text executable

また、以下のようにすると、configure の引数を確認できます。

$ ./configure --help
--prefix=$HOME/local
$HOME/local の配下に必要なディレクトリを作成し、ファイルを配置する。
--enable-multibyte
マルチバイトの編集をサポートする。

私は、以下の様な引数で configure を実行しました。これも短時間で終わります(約10秒)。

$ ./configure --prefix=$HOME/local --enable-multibyte

Vim のコンパイルとインストール

以下のように make(1) を実行して、コンパイルとインストールを行います。2回の make(1) に掛かった時間は、1分位でした。

$ make
$ make install

今回はコンパイルが初めてでしたので、画面上にどのような情報が出力されるのかを確認するために make(1) を2回に分けて実行しましたが、ネットで確認した範囲では ‘make && make install‘ で実行している例がほとんどでした。

インストール後の確認

コンパイルとインストールが終わりましたので、~/local に移動します。ディレクトリ binvim(1) を始めとするバイナリがインストールされています。また、ディレクトリ share はインストールの過程で作成されたもので、そこにマニュアルページやドキュメント等がインストールされています。

必須ではありませんが、ディレクトリやファイルの配置状況を確認しておくと、自分の頭のなかでイメージしやすくなりますので、私は確認するようにしています。

$ cd ~/local
$ ls -Al
drwxr-xr-x  2 hogehoge  users  512  7月 17 15:15 bin
drwxr-xr-x  4 hogehoge  users  512  7月 17 15:15 share
drwxr-xr-x  3 hogehoge  users  512  7月 17 15:15 src
$ ls -Al bin
lrwxr-xr-x  1 hogehoge  users        3  7月 17 15:15 ex -> vim
lrwxr-xr-x  1 hogehoge  users        3  7月 17 15:15 rview -> vim
lrwxr-xr-x  1 hogehoge  users        3  7月 17 15:15 rvim -> vim
lrwxr-xr-x  1 hogehoge  users        3  7月 17 15:15 view -> vim
-rwxr-xr-x  1 hogehoge  users  2068160  7月 17 15:15 vim
lrwxr-xr-x  1 hogehoge  users        3  7月 17 15:15 vimdiff -> vim
-rwxr-xr-x  1 hogehoge  users     2084  7月 17 15:15 vimtutor
-rwxr-xr-x  1 hogehoge  users    16736  7月 17 15:15 xxd
$ ls -Al share
drwxr-xr-x  15 hogehoge  users  512  7月 17 15:15 man
drwxr-xr-x   3 hogehoge  users  512  7月 17 15:15 vim
$ ls -Al share/man/ja/man1
-rw-r--r--  1 hogehoge  users   1846  7月 17 15:15 evim.1
lrwxr-xr-x  1 hogehoge  users      5  7月 17 15:15 ex.1 -> vim.1
lrwxr-xr-x  1 hogehoge  users      5  7月 17 15:15 rview.1 -> vim.1
lrwxr-xr-x  1 hogehoge  users      5  7月 17 15:15 rvim.1 -> vim.1
lrwxr-xr-x  1 hogehoge  users      5  7月 17 15:15 view.1 -> vim.1
-rw-r--r--  1 hogehoge  users  20371  7月 17 15:15 vim.1
-rw-r--r--  1 hogehoge  users   1696  7月 17 15:15 vimdiff.1
-rw-r--r--  1 hogehoge  users   1691  7月 17 15:15 vimtutor.1
-rw-r--r--  1 hogehoge  users  12639  7月 17 15:15 xxd.1
$ ls -Al share/man/man1
-rw-r--r--  1 hogehoge  users   1370  7月 17 15:15 evim.1
lrwxr-xr-x  1 hogehoge  users      5  7月 17 15:15 ex.1 -> vim.1
lrwxr-xr-x  1 hogehoge  users      5  7月 17 15:15 rview.1 -> vim.1
lrwxr-xr-x  1 hogehoge  users      5  7月 17 15:15 rvim.1 -> vim.1
lrwxr-xr-x  1 hogehoge  users      5  7月 17 15:15 view.1 -> vim.1
-rw-r--r--  1 hogehoge  users  15017  7月 17 15:15 vim.1
-rw-r--r--  1 hogehoge  users   1276  7月 17 15:15 vimdiff.1
-rw-r--r--  1 hogehoge  users   1406  7月 17 15:15 vimtutor.1
-rw-r--r--  1 hogehoge  users  10403  7月 17 15:15 xxd.1
$ ls -Al share/vim/vim74
drwxr-xr-x   3 hogehoge  users   1024  7月 17 15:15 autoload
-rw-r--r--   1 hogehoge  users   1955  7月 17 15:15 bugreport.vim
drwxr-xr-x   2 hogehoge  users    512  7月 17 15:15 colors
drwxr-xr-x   2 hogehoge  users   1536  7月 17 15:15 compiler
-rw-r--r--   1 hogehoge  users    645  7月 17 15:15 delmenu.vim
drwxr-xr-x   2 hogehoge  users   3072  7月 17 15:15 doc
  以下、略

Vim ソースファイルの削除

Vim のソースファイルを削除する場合は、以下のようにします。’rm -rf *‘ でディレクトリごと綺麗に無くなります。

$ cd ~/local/src
$ ls -Al
drwxr-xr-x  9 hogehoge  users  512  7月 17 15:15 vim
 
$ rm -rf *
$ ls -l
total 0

ホームディレクトリに移動

ここで、ホームディレクトリに移動します。Vim のインストールの過程でディレクトリやファイルが作成されていないか確認しましたが、この時点では作成されていませんでした。

$ cd ~
$ ls -Al

インストールした Vim の情報を確認

~/local/binbash(1) の環境変数 PATH に設定していませんので、今の状態で vim(1) を起動する場合は、フルパスで指定する必要があります。以下のようにすると vim(1) のバージョン、コンパイル日、適応済みパッチの最終番号等が表示されます。

$ local/bin/vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jul 17 2016 15:15:33)
適用済パッチ: 1-2054
Compiled by USER@wwwNNNN.sakura.ne.jp
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+acl             +file_in_path    +mouse_sysmouse  -tag_any_white
+arabic          +find_in_path    +mouse_urxvt     -tcl
  中略
      システム vimrc: "$VIM/vimrc"
      ユーザー vimrc: "$HOME/.vimrc"
   第2ユーザー vimrc: "~/.vim/vimrc"
       ユーザー exrc: "$HOME/.exrc"
  以下、略

また、以下のようにすると vim(1) を起動する際の引数を確認できます。

$ local/bin/vim --help
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jul 17 2016 15:15:33)
 
使用法: vim [引数] [ファイル..]    あるファイルを編集する
  以下、略

vim(1) を起動してみる

ここで、vim(1) を起動してみます。

$ local/bin/vim
Sakura-Vim74-2016-0717_01

画面の中央付近に目を向けると、現在は Vi 互換モードになっています。Vim 推奨値にする場合はキーボードから :set nocp を入力し、Enter を押します。

Sakura-Vim74-2016-0717_02

テキストを何も入力していない状態で vim(1) を終了する場合は、キーボードから :q を入力し、Enter を押します。

Sakura-Vim74-2016-0717_03

先ほど vim(1):set nocp を入力しましたが、それに伴ってホームディレクトリに .viminfo という 設定ファイルが作成されています。

$ ls -Al
-rw-------   1 hogehoge  users       815  7月 17 16:05 .viminfo

bash(1) の設定ファイルの修正

Vim のインストールと起動確認が出来ましたので、bash(1) の設定ファイルを修正し、コマンド名だけで vim(1) を起動できるようにします。また、必要であれば alias の設定も行います。これらの修正は、次回ログインした時から有効になります。

$ local/bin/vim .profile
# PATH=$HOME/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin; export PATH
PATH=$HOME/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin; export PATH
 
# EDITOR=vi;         export EDITOR
EDITOR=vim;         export EDITOR
$ local/bin/vim .bashrc
# aliases
alias vi='vim'

2つのファイルの修正が終わったら、ログインし直します。

vimtutor(1)

Vim には vimtutor(1) という、画面の説明に従って vim(1) の基本操作を習得できるチュートリアルがあります。vim(1) を始めたばかりの方は、何度か起動して練習しては如何でしょうか。私も簡単な編集しかできませんので、時々画面を眺めて操作しています。

$ vimtutor

起動すると以下の様な画面が表示されます。

Sakura-Vim74-2016-0717_04

vimtutor(1) を終了する場合は、キーボードから以下のコマンドを入力します。

  • 画面に表示されているテキストに変更を加えていない場合は、:q を入力し、Enter
  • 画面に表示されているテキストに変更を加えた場合は、:q! を入力し、Enter

Vim に関する情報源

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です