俺的開発用ubuntuデスクトップ(VirtualBox)構築手順

## 俺的開発用ubuntuデスクトップ(VirtualBox)構築手順

# hello,world
Qiita初投稿です。
最近構築したので自分用メモ、備忘録として残しておきます。
開発環境用ubuntuの構築手順ですが、参考したい方はご自由にどうぞ。
Windowsで開発やりづらい、コマンドプロンプトがクソ、などの人は
是非環境構築してみては。

# 筆者の環境
- ホストOS Windows 10
- ゲストOS Ubuntu 16.04.4 LTS
- 仮想ソフト Oracle VirtualBox 5.2.8

ホストマシンはメモリ多めです(16GB)

## VirtualBoxのインストール
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp
ホストマシンに対応するパッケージを選択しダウンロード。
ダウンロード後、インストーラを実行し画面に従ってホストマシン上にインストールする。

## Ubuntu ISOファイルのダウンロード
https://www.ubuntulinux.jp/download/ja-remix
デスクトップで利用するなら日本語Remix版で問題なさそう。
mozcとか最初から入っているし、環境構築にあまり時間を掛けたくないので、
こちらからisoファイルをダウンロード。
容量多めなので注意。

## OracleVMにUbuntuをインストール
VirtualBoxを起動し、[新規]を選択し仮想マシンを作成していく。  

- 名前
  - 任意の名前を入力
- タイプ
 - Linux
- バージョン
 - ubuntu(32 or 64)
- メモリーサイズ
 - 通常4GB程度で問題はない。
 - ホストマシンのメモリに余裕ある人は8GBとかでもいいかも。
 - ubuntuはデフォルトでGUIにUnityを利用しているため少々メモリ喰い。
 - GNOMEに変更とかすると軽くなるけど、デフォルトのGUIが好きな人はこのまま。
- ハードディスク
 - 仮想ハードディスクを作成する
- ファイルの場所
 - 任意の場所、名前を入力
- ファイルサイズ
 - デフォルトの10GBでも問題ないけど、余裕持って30GBとかにしておいたほうがいいかも。
- ハードディスクのファイルタイプ
 - VDI(デフォルト)
- 物理ハードディスクにあるストレージ
 - 固定サイズ
 - 可変だとパフォーマンスが落ちる？

仮想マシンが作成されたら電源がオフの状態になっているが、
起動せず[設定]を選択

左メニューからシステムを選択

- 起動順序
 - フロッピーは外しても問題なさそう
- プロセッサー
 - プロセッサー数はホストマシンのスペックに合わせて選択
- アクセラレーション
 - 準仮想インターフェースからKVMを選択
- ディスプレイ（重要）
 - ビデオメモリの最大数割り当て方法
   - ディスプレイ数を最大まで増加すると最大数が256MBまで割り当てられるようになる
   - その状態で下段OKを選択し一度設定画面を閉じる
   - もう一度設定画面を開きディスプレイ数を1に変更する
 - グラフィックメモリに余裕のある人はビデオメモリーは増やしておくべき
 - ubuntuだとGUIがもっさりしがちなので、ビデオメモリ割り当て数は重要
 - 3Dアクセラレーションを有効化にチェック
- ストレージ
 - コントローラIDEに空ドライブがあるので、選択して右側のCDマークを選択
 - 先ほどダウンロードしたubuntuのISOを選択しておく
- ネットワーク
 - アダプター1
   - 割り当てはNAT（デフォルト）
 - アダプター2
   - ネットワークアダプターを有効化にチェック
   - 割り当てはホストオンリーアダプターを選択
 - これでホストOS⇔ゲストOS間の通信が確立される
 - 共有フォルダー
   - ホストOSとゲストOS間でデータのやり取りが必要な場合はこちらを設定
   - 結局SSHで接続できるようにするから、SCPとか使えるようになるんだけどね

設定が完了したら下段のOKを選択。
その後、作成したゲストOSを選択し起動する。

## ubuntuのインストール
画面にそってインストールを実施。
ここでは詳細手順は割愛。

## 起動後
一度ゲストOSをシャットダウンし、設定メニューからubuntuのISOを取り外す。
設定からストレージ、コントローラIDEにubuntuが選択されているので、
右側のCDマークから仮想ドライブからディスクを除去を選択。
その後ゲストOSを起動。

起動したらまずはアップデート。

```
sudo apt-get update
sudo apt-get dist-upgrade
```

updateがパッケージリストの更新、dist-upgradeがディストリビューションのバージョンも更新してくれる。
結構時間がかかる。終了したら再起動。
apt-get系コマンドの解説はここが分かりやすかった。
https://qiita.com/white_aspara25/items/723ae4ebf0bfefe2115c

```
sudo reboot
```
## GuestAdditionsのインストール
仮想ホスト起動後、VMメニューの[デバイス]から[GuestAdditions CDイメージの挿入]を選択。
選択後に恐らく、ウィンドウが表示されるので実行するを選択。
画面に沿ってインストールを進める。
終了後に一度再起動。

## GoogleChromeのインストール
やっぱりブラウザはChromeっしょって人は実行。Firefoxのままでいい人は飛ばす。
Linux版のインストーラがダウンロードできるのでダウンロードしてインストール。
https://www.google.co.jp/chrome/index.html
ダウンロード後パッケージをダウンロードすると、パッケージマネージャがインストールを進めてくれる。

- インストールができない場合
 - 16.04だとdebファイルをインストールできないバグが存在している？（筆者の環境でも再現）
 - その場合はダウンロードしたパッケージがあるディレクトリ内で右クリックし、端末で開くを選択
 - ターミナルが立ち上がるので下記コマンドでインストールを実行
 
```
sudo dpkg -i google-chrome-stable_current_amd64.deb
```

上記コマンドだと、パッケージの依存関係とか自動で解決してくれないらしいから、
エラーが出た場合は各自不足パッケージをインストールしてください。
※dist-upgradeを実行するとダブルクリックでインストールできる？

## 「デスクトップ」とか「ダウンロード」を日本語から英語に変更する
ターミナル上でcdで移動するときに日本語打つのが面倒なので、英語に変更

```
sudo LANG=C xdg-user-dirs-gtk-update
```
ダイアログが出てくるので[Update Names]を選択
再起動後に日本語に戻すダイアログが表示される時があるが、その際は
[keep old name]を選択しておく。
ここが分かりやすかった。
https://qiita.com/take5249/items/13ada73bbd01ee12a2c3

## unity-tweak-toolとテーマのインストール
ここから下は@aktshさんの記事をそのまま参考にしています。
https://qiita.com/aktsh/items/e1b6b1c96f138c2823ed
やってみたらとても良かったので紹介させていただきます。ありがとうございます。

紫色がいまいち気に入らないのでテーマを変更

```
sudo add-apt-repository -y ppa:snwh/pulp
sudo apt-get update
sudo apt-get install paper-icon-theme -y
sudo apt-get install paper-gtk-theme -y
sudo apt-get install paper-cursor-theme -y
sudo apt install -y unity-tweak-tool
```
Unity Tweak Toolを起動し、

- theme
- icons
- cursors

上記３点を変更。

## VisualStudioCodeのインストール
vsCode派です。開発しないならここは飛ばしてもいいかも。
https://code.visualstudio.com/download
ubuntuなら.deb形式のパッケージをダウンロード。
ダウンロード終了後、ダブルクリックorコマンドでインストール。

## Gitのインストール
ここも開発しない人は飛ばしていいかも。

```
sudo apt-get install git build-essential
```
ubuntuはリポジトリ直で最新に近いgitが入るのが良いね・・・

## sshをインストール
デフォルトでsshが入っていない？ため、sshをインストール

```
sudo apt-get install aptitude
sudo aptitude install ssh
sudo service start ssh

sudo service ssh start
```

## 完成形はこちら
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/249143/5f84d0a0-277d-137b-fcd8-ebe83ffb3b9d.png)

他にもタスクバーの色変更したり、アイコンサイズ変更したりいろいろしてるけど、
意外と重くないので、ストレスなく使えてるから気に入ってます。
ゲームしたり動画見たりしなければ、ubuntuのデスクトップも悪くないね。
ターミナルで慣れたコマンドも使えるし、サーバサイドの開発からDB構築まで何でもできちゃうから良い。
Windowsでの開発もBash on Ubuntuとかでてるけど、
やっぱ個人的にこちらの方が違和感なく使える。

Linux何かしたい時にいちいち調べないといけないのがやっぱめんどくさい。
Googleとかで調べると結構出てくるから、その都度検索。
見つからなかったら諦めるしかない。

開発用途以外にも、古いPCにubuntuをインストールしてサブPCとして使いたい方や
デュアルブートしたい方などは、よかったら参考にしてください。


## おまけ インストールしてたら発生した不可思議現象
# マウスカーソルが表示されない！
→GuestAdditionsの再インストールを何度かしたら回復しました。詳細がわからん。

# lightdmのエラーが多発する！
→lightdmの再インストールで回復。

```
sudo apt install lightdm --reinstall
```