VirtualBox on WIndowsで快適な(L)ubuntu環境構築 ①Swift2.2入れ始めるまで。

*#年末の国外での体調不調からリハビリを兼ねてのエントリー，，，アドベントカレンダーの穴埋めはぼちぼちと，，，*

#0) 環境構築動機

Appleのアナウンス通り，2015年末に登場したSwift2.2。今のとこ，コンパイル済バイナリは，LTSバージョン(14.04)か最新版(15.10)のUbuntu向けのみが配布されている。最新版Ubuntu向けのSwiftの方ができることが多そうなので，そちらを試しておきたい。どうせ，Ubuntu16.04LTSが出てきた際にはそちらに乗り換えなのだろうから，とりあえず半年くらい使えればよいやというお試し環境をwindows上のVirtualbox上に作ることとした。

*# 当初はDockerHubに転がっているもので，一発でswiftをコマンドラインで起動というものも試したのだが，せっかくなので日常使いできる実行速度が得られるLinux環境をwindows上に用意しておこうと半日試行錯誤してみた(Swiftをサーバー側の実行言語として見て使う分にはサーバ用ubuntuをインストールするだけでよいのだろうだが自分の場合は，raspberry pi向けのクロスコンパイル等にUbuntuを使いたいので日常使いしやすい環境がほしい)。この試行錯誤は次バージョン以降のお試し環境構築にも生きるはず。*

#1) 速度志向のVM準備と，(L)ubuntuのインストール
用いたマシンは8GB積んだHDDベースの今風のwindowsマシン(windows7機をwindows10 64ビット版にアップデート)。windows環境としての弱点は大幅なwindowsアップデートがあった際等にHDDアクセスが占有されてしまうこと。その他は割合と快適なマシン。

こんな環境で役立ったのは，VMWare Fusionに負けないパフォーマンス（特にグラフィック）をVirtualBox 5.xで発揮させようという，[VirtualBox 最大パフォーマンスでUbuntu環境を構築する](http://holybea.com/2015/07/08/virtualbox-ubuntu/)というエントリー。
*#ネットワーク設定その他
VMWare Fusion使ってない自分には比較の観点はよくわからないし，元エントリのホスト機はMacなのだが，まったく問題なく適用できた。
VirtualBox快速カスタマイズに要する時間は10分弱なので，windows機として快適なマシンを使う人でもVirtualBoxでLinux使う際には参考にして良い話と思う。

自分の場合の変更点は2点。
##　元記事"4. Ubuntuのインストール" => 変更点 : Lubuntu15.10をインストール
当初Ubuntu15.10も用意したのだが，初期インストール時のディスク使用量が7GB強と，VirtualBox仮想マシンのディフォルトのディスク容量8GBでは無理目であったこともありLubuntu15.10をインストールすることとした(この場合，初期インストール時のディスク使用量が4GB強)。

メインの実行環境(Windows/Mac等)の上のGUI仮想環境として，軽量UbuntuであるLubuntuはなかなか優秀と思う。自分が行った変更はディフォルトのブラウザをFirefoxからVivaldi	(Beta 2)にしたことくらい　~>　ただの趣味。  

*#バージョンは少し古いけど，Lubuntu日本語版の紹介としては，[軽量Linuxを試す／Lubuntuのインストール](http://mediadesign.jp/article-3607/)か分かりやすい。*


## 元記事"5. Guest Additionsのインストール" => 変更点 : 事前に必要パッケージをインストール
この点は元記事が不正確なのではないかと思う。Guest Additionsは，Linux側でコンパイルが必要なので，そのための環境構築が必要。

#2) Guest Additionsをインストールし，共有フォルダを準備
要するに，Guest Additionsを端末でビルド，実行し，関連する設定を行うということ。
ただ，ネット上にいろいろ錯綜した情報があり若干惑わされ試行錯誤することとなった。

結果として，ポイントは２点:
## Guest Additionsのコンパイル
(L)ubuntu15.10の初期インストール状態ではGuest Additionをコンパイルするためのパッケージが不足している。
そこで，まずは
[UbuntuへのVirtualBox Guest Additionsのインストール](http://d.hatena.ne.jp/akamushi97/20140131/1391157868)
に従い，以下を実行。
> sudo apt-get update
> sudo apt-get install linux-headers-generic build-essential

##ホストOSとゲストOSとの共有フォルダ設定
その後は，[【Virtual Box】共有フォルダを介して、ホストOS(Windows 7) と ゲストOS(Debian/ MathLibre)でファイルやりとり](http://qiita.com/HirofumiYashima/items/6044cfc64cfa3e84f97c)などに従って，ホストOSとゲストOSとの共有フォルダを設定する。

#おまけ:Swift2.2のインストール(途中)
[Ubuntu Weekly RecipeのApple Swiftインストール記事](http://gihyo.jp/admin/serial/01/ubuntu-recipe/0401)などに従うだけのはず。とはいえ，Ubuntuで動作するSwiftはLubuntuでも問題なく動作するとの確認の意味を兼ね，記録しておく。

まずはSwiftコンパイラが依存するclangおよびビルドに必要となるもろもろをインストール( build-essentialはすでに導入済)。

```
$ sudo apt-get install clang 
$ clang --version
Ubuntu clang version 3.6.2-1 (tags/RELEASE_362/final) (based on LLVM 3.6.2)
Target: x86_64-pc-linux-gnu
Thread model: posix
$
```

次いで，Appleのswift.orgのサイト https://swift.org/download に行き，最新版のSpanhotをダウンロード。
(2016/1/2時点での最新版は，swift-2.2-SNAPSHOT-2015-12-31-a-ubuntu15.10.tar.gz)
適切なフォルダに解凍後，ファイルの./usr/binフォルダに移動しコマンドライン環境を立ち上げる(Lubuntuではカレントフォルダでのコマンドライン環境立ち上げは"F4"のみでで行える~> 便利)。

```
$ chmod 755 ./swift #解凍直後にはswiftは実行可能となっていないため。
$ export PATH=`pwd`:${PATH} #カレントディレクトリをPATHに追加するイディオム
```

元記事に従えばこれでオーケーのはず。
```
$ cd
$ $ swift --version
Swift version 2.2-dev (LLVM 3ebdbb2c7e, Clang f66c5bb67b, Swift 1f2908b4f7)
Target: x86_64-unknown-linux-gnu
```

...うんオーケーなのかな。ただ，unknown-linux-gnuってなんだ!?
...むむswiftコマンドでREPLが動かない & df -hしてみたらディスクの空き領域が100MBを切っていることに気が付いた。これは初期ディスク容量を大きくして，再挑戦か，，，(=> 間抜け)

Swiftインストールはおまけなので，このあたりでアップしてしまうこととする。LubuntuでSwift関係のフォローは後程。