MacOS 上に VirtualBox + Vagrant で Ubuntu 18.04 GUI 環境を構築する
最近仮想化というと Docker が主流で、Docker でも頑張れば Linux GUI 環境を構築できたりもするが、もっと生の Linux マシンっぽく使いたい場合は、やはり今でも VirtualBox を使った方が精度が良い。
ということで久々に MacOS 上に VirtualBox と Vagrant を入れて、Ubuntu 18.04 ベースの GUI 環境を構築してみる。
目次
環境情報
- MacOS : High Sierra 10.13.6
- VirtualBox : 6.1.4
- Vagrant : 2.2.7
VirtualBox と Vagrant のインストール手順は省略。いずれも公式サイトからインストーラをダウンロードして普通にインストールしただけ。
Vagrantfile を書く
適当な作業ディレクトリを作り、次のような Vagrantfile
を書く。
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# ベースイメージ
config.vm.box = "bento/ubuntu-18.04"
# 共有ディレクトリ設定
config.vm.synced_folder "./shared", "/home/vagrant/shared"
# VirtualBox 設定
config.vm.provider :virtualbox do |vb|
vb.gui = true # デスクトップ環境を使うので GUI を有効にする
vb.cpus = 2 # CPU 割り当て
vb.memory = "4096" # メモリ割り当て
vb.customize [
"modifyvm" , :id,
"--vram" , "256",
"--clipboard" , "bidirectional",
"--accelerate3d" , "on",
"--hwvirtex" , "on",
"--nestedpaging" , "on",
"--largepages" , "on",
"--ioapic" , "on",
"--pae" , "on",
"--paravirtprovider", "kvm",
]
end
# 初期構築スクリプト
config.vm.provision :shell, :inline => <<-EOL
# 日本語化設定
sudo cp /etc/apt/sources.list /etc/apt/sources.list.BAK
sudo sed -i 's/archive.ubuntu.com/jp.archive.ubuntu.com/g' /etc/apt/sources.list
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/bionic.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt update -y
sudo apt upgrade -y
# 日本語関連パックをインストールする
sudo apt install -y $(check-language-support -l ja) language-pack-ja ubuntu-defaults-ja manpages-ja manpages-ja-dev
# 日本語フォントをインストールする
sudo apt install -y fonts-noto fonts-ipafont fonts-ipaexfont fonts-vlgothic fonts-takao
# デスクトップ環境をインストールする
sudo apt install -y ubuntu-desktop gnome-tweak-tool
# 日本語環境に切り替える
sudo update-locale LANG=ja_JP.UTF-8
# タイムゾーンを日本時間に変更する
sudo timedatectl set-timezone Asia/Tokyo
# デフォルトのエディタを vim に変更する
sudo update-alternatives --set editor /usr/bin/vim.basic
EOL
end
もう何度か Ubuntu 系の記事で書いてきた、「日本語 Remix」の適用と ubuntu-desktop
のインストール、各種日本語化設定を行っている。
共有ディレクトリ設定を書いているので、念のため作業ディレクトリ配下に shared/
ディレクトリを作っておこう。
初回起動・各種設定
Vagrantfile
が書けたら、初回起動を行う。Vagrantfile
があるディレクトリに移動して以下のコマンドを実行する。
$ vagrant up
初回は環境構築系のスクリプトが動作するので、少々時間がかかる。気長に待つ。
しばらくすると Ubuntu の GUI 環境が立ち上がるはずだ。初期登録されているユーザは vagrant
で、パスワードも vagrant
だ。
ログインできたら、Ubuntu の「端末」を開き、以下を実行していく。
# タイムゾーンを設定する
sudo dpkg-reconfigure tzdata
# MS フォントをインストールする
sudo apt install -y ttf-mscorefonts-installer
# Fcitx-Mozc をインストールする
sudo apt install -y fcitx fcitx-mozc fcitx-config-gtk fcitx-frontend-gtk2 fcitx-frontend-gtk3 fcitx-frontend-qt4 fcitx-frontend-qt5 fcitx-ui-classic kde-config-fcitx mozc-utils-gui dbus-x11
im-config -n fcitx
sudo apt purge -y ibus ibus-mozc
# 自動起動スクリプトを記述する
sudo sh -c 'echo "fcitx-autostart &>/dev/null" > /etc/profile.d/fcitx'
sudo sh -c 'echo "#!/bin/bash" > /etc/profile.d/fcitx.sh'
sudo sh -c 'echo "export QT_IM_MODULE=fcitx" >> /etc/profile.d/fcitx.sh'
sudo sh -c 'echo "export GTK_IM_MODULE=fcitx" >> /etc/profile.d/fcitx.sh'
sudo sh -c 'echo "export XMODIFIERS=@im=fcitx" >> /etc/profile.d/fcitx.sh'
sudo sh -c 'echo "export DefaultIMModule=fcitx" >> /etc/profile.d/fcitx.sh'
さらに、「自動起動するアプリケーション」を開き、fcitx-autostart
を追加すれば完了。
Mac 用 US キーボード向けに設定ファイルを調整する
自分は Mac 用の US 配列のフルサイズキーボードを使っていて、左下は「Control」「Option」「Command」とキーが並んでいる。
Ubuntu を操作する際は、これらのキーを押した時に 「Control」「Super」「Alt (Meta)」キー と認識してほしいと思っていたのだが、どうも「Alt (Meta)」と「Super」キーの認識が逆なようだ。
そこで、「端末」で以下のファイルを開き、編集する。
$ sudo vi /usr/share/X11/xkb/keycodes/evdev
70〜80行目あたりに、<LALT> = 64;
とか <LWIN> = 133;
といった記述があるはずなので、これらを逆に書き換えてやる。<LALT>
部分を <LWIN>
と書き換えても良いし、後半のキーコード (番号) を入れ替えてやっても良い。
自分の場合は次の組み合わせでキー設定をしてやると、思ったとおりのキー配置にできた。
<LCTL> = 37;
<LALT> = 133;
<LWIN> = 64;
<RWIN> = 108;
<RALT> = 134;
<RCTL> = 105;
設定ファイルを反映するには、ファイルを書き換えたあと一度再起動してやる必要がある。思いどおりのキー配置になったかどうかは、「設定」→「地域と言語」→「入力ソース」で「英語 (US)」を選択し、キーボードアイコンを押下してキーボードを画面上に表示させ、確かめてみよう。
Vagrantfile
を書き換えたら
Vagrantfile
の内容を変更したりして、仮想マシンを再起動したくなった時は、以下のコマンドで再起動できる。
$ vagrant reload
以上
ココまで設定できれば、あとは生の Ubuntu マシン同様に設定していけるはずだ。
- マシンスペックに応じて
Vagrantfile
を書き換える - Cmd キーをフックしたりしたければ VirtualBox の設定を見直す
- 「英かな」を使用している場合は VirtualBox を除外プロセスに指定しておいた方が良いかも
こんなところだろうか。