雀巽の日記帳

雀巽が綴る日常の記録

Xubuntu on VMware on Windows 10 による開発環境構築

openSUSE を使いはじめて1年半近く立ちました。

OS 自体には概ね不満はなく、デザインとかはかなり気に入ってるのですが、 超が付くほどのライトユーザーなので、困ったときに情報が簡単に見つかる Ubuntu にしたいなぁと最近考えていました。

というわけで、openSUSE でも使っていた Xfce をデスクトップ環境に採用したオフィシャルフレーバーの Xubuntu を導入してみることにしました!

ユーザー数は正義。

インストール

オフィシャルサイトから ISO をダウンロード。

xubuntu.org

今回導入するのは Xubuntu 18.04 LTS

VMware にぶち込んだところ、なんと Easy Install なる機能が使えるとのこと。 そう!こういうユーザー数が多いからこそ受けれる恩恵、まさにこれを待っていたのだ!

ということで、指示に従いサクサクインストール。 注意すべき設定値は以下の通り。

  • Location: C:\Users\necojackarc\Virtual Machines\Xubuntu
  • Disk Capacity: Store virtual disk as a single file
  • Maximum disk size: 20 GB
  • Memory: 2GB
  • Processors: 2

何も考えずに進めると OneDrive 内に VM が作られる悲劇が起きるので注意すること。 また、デフォルトだとディスクを分割して保存しているようになっているが、パフォーマンスが落ちるのでモノファイルに変更。 メモリやプロセッサはハードウェアに合わせて適当に設定。

また、VMware Knowledge Base に従い VMware Tools の更新も行っておく。

キーリピート

デフォルトだと遅すぎて死ぬので、Settings -> Keyboard を開き、Typing Settings を以下の値に変更。

  • Repeat delay: 300
  • Repeat speed: 80

これでひとまず生命の危機は去りました。

自動ログイン

LightDM というものが使われているらしいので、LightDM - Debian Wiki に従い自動ログインを有効化。

$ sudo vi /etc/lightdm/lightdm.conf

で、設定ファイルを開き(デフォルトだとファイルはなかった)以下の設定を追加。

[Seat:*]
autologin-user=necojackarc
autologin-user-timeout=0

タイムゾーン

サーバーのタイムゾーンUTC+0 であることが多いので、開発環境もそれに合わせておく。

$ sudo dpkg-reconfigure tzdata

を実行し、None of the above -> UTC を選択。

CLI

面倒臭がりなので、デフォルトで入ってる Terminal Emulator を利用する。 Ctrl + Alt + T で起動できる。

  • Color: Edit -> Preferences... -> Colors -> Presets から Solarized (dark) を選択
    • Palette の一番左下の色を「Red:0, Green: 108, Blue: 136 (#006c88)」に変更 *1
  • Font : Edit -> Preferences... -> Appearance-> Font から Monospace / Regular / 11 を選択

以下のとおり、開発に最低限必要なライブラリを導入する。

$ sudo apt update
$ sudo apt install exuberant-ctags git tmux xsel golang-go curl

GitHub の設定を Generating a new SSH key and adding it to the ssh-agent - User Documentation に従い行う。 また、./ssh/config には以下のセクションを追加しておく。

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/github/id_rsa

設定がうまくいってるかの確認は $ ssh -T github.com を叩いてみると良い。

最後に、CLI の設定ファイル一式を以下に従い導入する。

github.com

Vim

Vim の最新版を公式推奨方法通りに、GitHub ソースからビルドする。 ソースは /usr/local/src に配置しておく。

$ cd /usr/local/src
$ sudo git clone https://github.com/vim/vim.git
$ cd vim/src
$ sudo make distclean  # if you build Vim before
$ sudo make
$ sudo make install

PythonLua などを有効化したい場合は configure を実行する必要があるが、 そういったプラグインは現状使用していないのでオフィシャルガイド通りで問題なかった。

GHQ

Git リポジトリの管理はコレ無しじゃやっとれん!

github.com

$ go get github.com/motemen/ghq

Peco

GHQ と Peco を組み合わせるとメッチャ快適。

github.com

リリースから最新版を確認すると v0.5.3 とのことなので、それを /usr/local/bin/ 以下に配置する。

$ wget https://github.com/peco/peco/releases/download/v0.5.3/peco_linux_amd64.tar.gz
$ tar xzvf peco_linux_amd64.tar.gz
$ sudo mv peco_linux_amd64/peco /usr/local/bin/
$ rm -rf peco_linux_amd64*

rbenv & ndenv & pyenv

現状 Ruby & JavaScript がメインの開発言語の人なので、この2つは予め入れておく。 pyenv は AWS CLIPython で動作しているのでそれ用。

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
$ sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev

$ git clone https://github.com/riywo/ndenv ~/.ndenv
$ git clone https://github.com/riywo/node-build.git $(ndenv root)/plugins/node-build

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

AWS CLI

pyenv で最新の Python を入れ、それを global にしておく。

$ pyenv install -l # check the latest version
$ pyenv install 3.6.5
$ pyenv global 3.6.5
$ python -V # check if it's 3.6.5
$ pip install awscli --upgrade --user
$ aws --version

Yarn

公式サイトに従いインストール。

yarnpkg.com

オプションを付けないと nodejs も入ってくるけど、気にせず入れとく。

$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt update
$ sudo apt install yarn

PostgreSQL

Xubuntu 18.04 では PostgreSQL 10 がデフォルトになっているが、現状 9.6 を利用しているのでそちらを導入する。

askubuntu.com

$ sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main"
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt update
$ sudo apt install postgresql-9.6

導入後の設定は Gist にまとめたのでそちらを参照のこと。

また、うっかり先に 10 をインストールしていた場合「Cannot connect to postgresql on port 5432」などのエラーが出るようになるので、その場合は一回スッキリ全部削除してから入れ直すとうまくいく。

$ sudo apt remove --purge postgresql*

askubuntu.com

Redis

Redis はそのまま入れただけだと、起動時に自動スタートしないので、以下を参考に導入する。

medium.com

$ sudo apt install redis-server
$ sudo update-rc.d redis-server enable
$ sudo update-rc.d redis-server defaults

確か update-rc.d は以前の名残で、現在はこちらを使っても systemctl にバイパスされるようになっていたはず。 再起動して redis-cli を叩いたところ、無事接続できたので気にせず update-rc.d で設定しておく。動くなら良し!

Google Chrome

Chrome を直接仮想マシンXubuntu から開くことは正直ないのですが、Ember のテストの実行などで必要だったりします。 というわけで、UbuntuUpdates.org の 3rd Party Repository: Google Chrome に従い導入しておきます。

$ wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 
$ sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
$ sudo apt update 
$ sudo apt install google-chrome-stable

ネットワーク設定

Windows (Host) から Xubuntu (Guest) に localhost でアクセスできるよう、一部のポートをフォワードする。

詳細については openSUSE の設定について書いた以下の記事を参照のこと。

necojackarc.hatenablog.com

C:\ProgramData\VMware\vmnetdhcp.conf

# Xubuntu
host VMnet8 {
    hardware ethernet 00:0c:29:c6:4f:ec;
    fixed-address 192.168.221.130;
}

C:\ProgramData\VMware\vmnetnat.conf

[incomingtcp]
:
# Xubuntu
1080 = 192.168.221.130:1080
3000 = 192.168.221.130:3000
3002 = 192.168.221.130:3002
4200 = 192.168.221.130:4200
7020 = 192.168.221.130:7020
7357 = 192.168.221.130:7357
8080 = 192.168.221.130:8080

ファイアウォールの無効化

sudo ufw status verbose で確認したところ、元々 Status: inactive だったため設定不要。 仮に有効になっていた場合は、sudo ufw disable で無効化できるとのこと(未検証)。

おわりに

あとは各々のプロジェクトが動くようにそれようの設定を進めるだけ!以上!

しばらく触ってみて、やっぱり XubuntuUbuntu の知見がほぼそのまま使えるのが良いな、となりました。

ライトユーザーは、おとなしくメジャーなの使っておけば良いのだ!というお気持ちです。

楽ちんだー!