よろしい、ならばエディタ戦争だ 1

諸君、私はVIMが好きだ

ゼロから始めると言ったので、ほんとうにゼロから始める。 具体的には、エディタの準備など開発環境の整備からだ。 マイルストーンとしてCMSを作ると言ったが、 CMSを作るために環境を作るのが本当の第1歩だろう。

エディタはVIM以外に考慮する必要はない。 Emacsとかいう腱鞘炎になりそうなエディタは試す必要もないのだ。 使い慣れたエディタが一番だよね。 ついでに設定ファイルも見直そう。

さて筆者の開発環境だが、幸か不幸かUbuntu (Linux), Windows 10 (Win), Mac (OS X)を使っている。 開発用端末を固定してしまえばいいんだけど、できれば全部使いたい。しかも共通方法で。

ということは、docker ですね。

dockerでカプセル化されたあらゆるvimが好きだ

環境を整理する。 WinとLinuxデュアルブートのデスクトップPC、Macはラップトップだ。 dockerは原則、Linux kernelが必要。NTカーネルのWin10とUNIXBSD)のMacは工夫しないと使えない。 Windows containerとか謎の代物がWindows Server 2016についているけど、筆者には関係ない。

結論

Win:VirtualBoxで別SSDにインストールされているLinuxを起動して使う

Mac:Docker for Macを使う

Linux:普通にLinuxを使う。

VirtualBoxで卒業するデュアルブートが好きだ

オラクルは嫌いだけどVirtualBox(VBox)は便利なので好き。 VBoxにはGUIではできない作業がコマンドで色々できたりする。 ただし、WindowsUNIX系でコマンドが共通ではないので注意。

作業の流れ:

  1. LinuxがインストールされたSSDのリンク的(たぶんポインタ)を、仮想ディスクとして作る。
  2. 仮想ハードディスクをVBoxから読み込んで起動する。
  3. Guest AdditionとかをLinuxに入れて使いやすくする。

Linuxインストール済みSSDを読み込む仮想ディスクが好きだ

前提:VBoxインストール済み

まずコマンドプロンプトを管理者権限で起動する。 Winキーを押してから[cmd]と入力し、コマンドプロンプトを右クリックして[管理者として実行]を選択。

Microsoft Windows [Version XX.X.XXXXX]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Windows\system32>cd "\Program Files\Oracle\VirtualBox"

C:\Program Files\Oracle\VirtualBox>VBoxManage internalcommands createrawvmdk -filename "C:\<path_to_save>\<file>.vmdk" -rawdisk \\.\PhysicalDrive1

PhysicalDriveの番号はデバイスマネージャーで確認できる。 デバイスマネージャー起動方法:<Win+R>+[mmc devmgmt.msc] [デバイスマネージャー]>[ディスクシステム]>調べたいディスクをダブルクリック ディスク情報窓の[場所]を確認、Bus NumberがPhysicalDrive番号。

物理ディスクで動く仮想マシンが好きだ

仮想ディスクのファイルが管理者権限で作られているので、VirtualBoxのショートカットを右クリックしてプロパティを開き、 [互換性]タブの[管理者としてこのプログラムを実行]にチェックをいれておく。 そうしないと仮想マシンが起動できない。

VBoxで新しい仮想マシンを作り、さっき作った仮想ディスクを読み込む。 筆者はUbuntuを使っているのでイメージはUbuntuを使う。 なお、64ビットの仮想マシンを使うにはBIOSでハードウエアの仮想化支援機能を有効にしておく必要がある。

仮想マシンの設定でグラフィックメモリを最大まで上げておかないと動作が重い。

WinとLinuxが混在するシームレスモードに心がおどる

ゲストの仮想マシンでターミナルを開き、Guest Additionsをインストールする。 入れておくとWinアプリとLinuxアプリを同じ画面上で使えるシームレスモードなどが使えるようになる。

inon3135% sudo apt-get update
inon3135% sudo apt-get install virtualbox-guest-dkms 

これにて、Win上でLinux kernel(というか仮想マシン)を使えるようになった。 次回はDockerのインストールへ。

つづく