Xubuntu on VMware on Windows 10 による開発環境構築
openSUSE を使いはじめて1年半近く立ちました。
OS 自体には概ね不満はなく、デザインとかはかなり気に入ってるのですが、 超が付くほどのライトユーザーなので、困ったときに情報が簡単に見つかる Ubuntu にしたいなぁと最近考えていました。
というわけで、openSUSE でも使っていた Xfce をデスクトップ環境に採用したオフィシャルフレーバーの Xubuntu を導入してみることにしました!
ユーザー数は正義。
インストール
オフィシャルサイトから ISO をダウンロード。
今回導入するのは 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: 30 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
を選択。
日本語入力 (fcitx-mozc)
やはり日本語ネイティブとしては日本語入力ができたほうが便利なので、fcitx-mozc を導入しておく。
- Settings -> Language Support を開く
- The language support is not installed completely と出たらとりあえず Install しておく (しておかないと Language Support を開くたびに出続ける)
- Install / Remove Languages -> Japanese にチェックを入れ Apply
- Applyすると、デフォルトで fcitx と fcitx-mozc がインストールされる
- Settings -> Language Support を一旦閉じて再度開くと Keyboard input method system に fcitx が追加されているので、それを選択し Close し Xubuntu を再起動する
- Panel に Keyboard アイコンが出ているので、それをクリックし Configure を開く
+
を押し、Only Show Current Message のチェックを外すと Mozc が選択可能になるので、それを選択し OK をクリックし設定終了
これで Ctrl + Space で Mozc への切り替えが可能となり、日本語入力を使用できる。
CLI
面倒臭がりなので、デフォルトで入ってる Terminal Emulator を利用する。
Ctrl + Alt + T
で起動できる。
- Color:
Edit -> Preferences... -> Colors -> Presets
からSolarized (dark)
を選択- Palette の一番左下の色を「Red:0, Green: 108, Blue: 136 (#006c88)」に変更 *1
- Show bold text in bright colors は ON のまま
- Custom colors は Cursor / Text selection / Bold text 全てにチェックを入れる
- 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 curl direnv dmenu
dmenu については、Win + Space で起動するように、以下の設定をしておく。
- Menu -> Settings -> Settings Manager -> Keyboard -> Application Shortcuts -> Add を選択
- Command に dmenu_run を入力
- Command Shortcut として Win + Space (Super + Space) を入力
- Command に dmenu_run を入力
GitHub の設定を Generating a new SSH key and adding it to the ssh-agent - GitHub Docs に従い行う。
また、./ssh/config
には以下のセクションを追加しておく。
Host github.com HostName github.com User git IdentityFile ~/.ssh/github/id_rsa
設定がうまくいってるかの確認は $ ssh -T github.com
を叩いてみると良い。
最後に、CLI の設定ファイル一式を以下に従い導入する。
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
Python や Lua などを有効化したい場合は configure
を実行する必要があるが、
そういったプラグインは現状使用していないのでオフィシャルガイド通りで問題なかった。
ripgrep
便利高速 grep ツール。Vim からも利用しているので導入する。
最新バージョンの deb からインストール。
curl -LO https://github.com/BurntSushi/ripgrep/releases/download/0.8.1/ripgrep_0.8.1_amd64.deb sudo dpkg -i ripgrep_0.8.1_amd64.deb rm ripgrep_0.8.1_amd64.deb
Go
sudo add-apt-repository ppa:longsleep/golang-backports sudo apt update sudo apt upgrade sudo apt-get install golang-go
GHQ
Git リポジトリの管理はコレ無しじゃやっとれん!
go get github.com/motemen/ghq
fzf
GHQ と fzf を組み合わせるとメッチャ快適。ちなみにバックエンドは rg に差し替えてます。
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf ~/.fzf/install
インストール時に聞かれる設定に関しては、
- fuzzy auto-completion: y
- key bindings: y
と両方 ON にしておく。
tig
sudo apt install tig
rbenv & nodenv & pyenv
現状 Ruby & JavaScript がメインの開発言語の人なので、この2つは予め入れておく。 pyenv は AWS CLI が Python で動作しているのでそれ用。
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/nodenv/nodenv.git ~/.nodenv git clone https://github.com/nodenv/node-build.git $(nodenv root)/plugins/node-build git clone https://github.com/pyenv/pyenv.git ~/.pyenv git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
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
公式サイトに従いインストール。
オプションを付けないと 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 を利用しているのでそちらを導入する。
基本的に PostgreSQL は backward-compatibility がしっかりしている(気がする)ので、最新版を入れておく。
sudo apt install postgresql
導入後の設定は Gist にまとめたのでそちらを参照のこと。
また、うっかり先に 10 をインストールしていた場合「Cannot connect to postgresql on port 5432」などのエラーが出るようになるので、その場合は一回スッキリ全部削除してから入れ直すとうまくいく。
sudo apt remove --purge postgresql*
Redis
Redis はそのまま入れただけだと、起動時に自動スタートしないので、以下を参考に導入する。
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 の設定について書いた以下の記事を参照のこと。
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
で無効化できるとのこと(未検証)。
おわりに
あとは各々のプロジェクトが動くようにそれようの設定を進めるだけ!以上!
しばらく触ってみて、やっぱり Xubuntu は Ubuntu の知見がほぼそのまま使えるのが良いな、となりました。
ライトユーザーは、おとなしくメジャーなの使っておけば良いのだ!というお気持ちです。
楽ちんだー!