windows10でVirtualBoxを使ったターミナル環境を整える

[さいつよのターミナル環境を構築しよう](http://qiita.com/b4b4r07/items/09815eda8ef72e0b472e)のひとがうらやましすぎたのだが手元にあるのは型落ちのwindowsのみでLinuxダブルブートは面倒くさいし毎日残業で再起動の時間ももったいないあなたにVirtualBoxはどうじゃろう。

![2015-11-28.png](https://qiita-image-store.s3.amazonaws.com/0/43992/24102000-b3c1-2e48-8f3b-2a781b133627.png)
（2015/11/28 画面イメージ差し替え）

# virtualbox に debian jessie インストール
debian なのは慣れてるからであって好きなディストリビューションを使えばよいと思う。X を入れなければ起動速度は boot2docker とタメ張る程度には早い（Grub は当然待ち時間なしにしておく）。

設定は下記

![2015-11-23 (4).png](https://qiita-image-store.s3.amazonaws.com/0/43992/56e7c9f7-ddf8-8bb5-3167-46fc43a7f557.png)

![2015-11-23 (5).png](https://qiita-image-store.s3.amazonaws.com/0/43992/2906ee4c-e45c-489a-9ede-7c73e164072d.png)

![2015-11-23 (6).png](https://qiita-image-store.s3.amazonaws.com/0/43992/79d90e73-e3b9-71fa-2675-2b87249f1063.png)

![2015-11-23 (7).png](https://qiita-image-store.s3.amazonaws.com/0/43992/59820f20-5f1b-e5f7-42ce-92d8a7fbe53e.png)

![2015-11-23 (8).png](https://qiita-image-store.s3.amazonaws.com/0/43992/0304e567-a9f1-cf18-c244-aeb66df8d93c.png)

![2015-11-23 (9).png](https://qiita-image-store.s3.amazonaws.com/0/43992/a70a71a4-99a8-33b0-ef78-f662936bab42.png)

![2015-11-23 (10).png](https://qiita-image-store.s3.amazonaws.com/0/43992/a2727d46-0e86-ae77-c280-c1832c093a3f.png)

あとは普通に jessie インストールする。初期導入するのは sshd だけでよい。
![2015-11-23 (12).png](https://qiita-image-store.s3.amazonaws.com/0/43992/206c197d-1e01-898c-950a-908b47d75b26.png)

導入後にホストオンリーアダプタの設定をしておく。

```lang:sh
# vi /etc/network/intarefaces
```

```lang:text
allow-hotplug eth1
iface eth1 inet static
  address 192.168.56.101
  gateway 192.168.56.1
  netmask 255.255.255.0
```

# mintty 用にフォントインストール
手元の Windows 機には mintty を導入しておく。手っ取り早く言えば msys git 入れておけということである。

表示用にフォントをインストールする。定番は [inconsolata](https://www.google.com/fonts/)らしい。
うむ、確かに美しい。これに日本語フォントをフォントリンクするのが良い、とのことなので、する。

```lang:registry
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink" /v "Inconsolata" /t "REG_MULTI_SZ" /d "MEIRYO.TTC,Meiryo" /f
```
![2015-11-23 (17).png](https://qiita-image-store.s3.amazonaws.com/0/43992/6f2470c5-ec8f-1ad3-76f1-2942a0f690f3.png)

ちなみに、等幅 Meyryo や Yu Gothic UI をいろいろサイズ指定しながら試したが、後述する tmux で「|」が不可視になるなど難しかった。最終的に素の Meyryo に戻りました。

（2015/11/26 追記）
Meyryo フォントリンクのサイズ指定で何回か再起動したところで心が折れた。Inconsolata ＋源真ゴシック派生フォントの[Myrika](http://myrica.estable.jp/)に置き換えた。
tmux などで倍角フォントが崩れる現象は mintty の text 設定で Locale を「ja_JP」以外にすると回避できた。

# ssh キー登録
今回の構成では、起動した VirtualBox に ssh ログインすることを企図している。鍵認証方式とするため ssh キーを登録する。

ホスト側で鍵を生成する。

```lang:sh
$ ssh-keygen
$ scp .ssh/id_rsa.pub [$user]@192.168.56.101:.ssh/
```

リモート側で鍵登録する

```lang:sh
$ cd .ssh/
$ cat id_rsa.pub >> authorized_keys
```

以降は、ホスト側でVirtualBox をヘッドレス起動し、ssh 接続する。

```lang:sh
 $ /c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe startvm "jessie" --type headless; sleep 20;  ssh -i .ssh/id_rsa 192.168.56.101
```

# 環境導入
さて、何はともあれ sudo は入れておく。

```lang:sh
# apt-get install -y sudo
# gpasswd -a [$user] sudo
```

しかるがのち、使用する環境を導入する。設定については [dotfiles](https://github.com/ueno-t/dotfiles.git) 参照のこと。導入部分を抜粋する。

## base

```lang:sh
$ sudo apt-get install -y git zsh vim tmux ctags curl
$ sudo apt-get install -y make binutils bison gcc build-essential
```

```lang:sh
$ sudo chsh -s /bin/zsh [$user]
```

## vim neobundle
```lang:sh
% mkdir -p ~/.vim/bundle
% git submodule git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
% git submodule init
% git submodule update

```
（2015/11/28 submodule 方式に変更）

```lang:vim
:NeoBundleInstall
```

## docker-engine

```lang:sh
% sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572c52609d
% echo 'deb https://apt.dockerproject.org/repo debian-jessie main' |sudo tee /etc/apt/sources.list.d/docker.list
% sudo apt-get install -y apt-transport-https
% sudo apt-get update
% apt-cache policy docker-engine
% sudo apt-get install -y docker-engine
```

## haskell stack

```lang:sh
% echo 'deb http://download.fpcomplete.com/debian/jessie stable main'|sudo tee /etc/apt/sources.list.d/fpco.list
% wget -q -O- https://s3.amazonaws.com/download.fpcomplete.com/debian/fpco.key | sudo apt-key add -
% sudo apt-get update
% sudo apt-get install -y stack
```

## node nodebrew

```lang:sh
% curl -L git.io/nodebrew | perl - setup
% echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> .zshrc
% source .zshrc
% nodebrew install-binary stable
% nodebrew use stable
```

## golang goberw
```lang:sh
% curl -L https://raw.github.com/grobins2/gobrew/master/tools/install.sh | sh
% source .zshrc
% gobrew install 1.5.1
% gobrew use 1.5.1
```