Ubuntu 18.04 の日本語版デスクトップ環境を Vagrant + VirtualBox で作成する

Ubuntu 14.04 LTS のサポート期間が2019年4月末で切れるため、それを利用しているプロジェクトではアップデート計画を立てているのですが、いくつかのプロジェクトでは Ubuntu 16.04 LTS を飛ばして Ubuntu 18.04 LTS にジャンプアップする*1可能性が出てきたため、とりあえず Ubuntu 18.04 LTS の開発環境を準備していくことにしました。

普通に開発環境として使うだけであれば、Ubuntu Japanese Team が提供してくださっている 日本語 Remixバージョンを直にインストールするなりVirtualBoxなどにインストールするなりするのが一番はやいし確実なのですが、Windows/Mac/Linux を母艦とする環境間で開発環境のマシンイメージを共有したり移動したりしたいという要件があったりなかったりなので、Vagrant で管理できるようにします。(が、結構手作業が残ってしまったのであまり意味がn...)

前提

母艦となるマシンへのVirtualBoxVagrant のインストールについては完了しているものとします。
まだインストールが完了していない場合は、以下の公式サイトからダウンロード・インストールしてください。 (Windows/Mac/Ubuntu など母艦の環境によってインストールするパッケージファイルや手順が異なるので細かいことは省略します)

最新版にはバグがあったり、VagrantVirtualBox のバージョンの組み合わせによってはうまく動かないことがあったりするので、そういった場合は最新版にこだわらず古いバージョンをインストールし直して確認してみてください。

母艦の環境

以下の手順は私の手元の以下の環境下で動作確認済みです。

手順

流れとしては、

  • Box を選ぶ
  • Vagrantfile を作成する
  • 起動する
  • 日本語環境化を仕上げる

となります。

Boxを選ぶ

Ubuntuのboxを探すのであれば、以下のレポジトリ(?)から探すのが良いでしょう。

今回は chef社公式の bento/ubuntu-18.04 を使います。
https://app.vagrantup.com/bento/boxes/ubuntu-18.04

Vagrantfileを作成する

Vagrantを実行する母艦にて Vagrantfileを作成します。
肝は日本語化のための仕込みをプロビジョニングスクリプトに入れ込んでいる点で、その他は特に変わった内容はありません。 ホスト名の他、メモリの搭載量やネットワークの設定、Proxy設定の有無などは母艦の環境などによっても異なるためこの記事では省略しています。

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-18.04"
  config.vm.provider :virtualbox do |vb|
    vb.gui = true  # デスクトップ環境を使うので、GUIを有効にする
    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 => <<-EOS
    # 日本語化 https://www.ubuntulinux.jp/japanese のための準備
    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-get upgrade -y
    sudo apt-get install ubuntu-desktop -y
    sudo apt-get install ubuntu-defaults-ja -y

    # タイムゾーンを日本時間に変更
    sudo timedatectl set-timezone Asia/Tokyo
    # デフォルトのエディタを nano から vim に変更
    sudo update-alternatives --set editor $(update-alternatives --list editor | grep 'vim.basic')

EOS
end

起動する

Vagrantfile を作成したディレクトリで vagrant up コマンドを実行します。
初回は box のダウンロードやデスクトップ環境のインストールなどがあるためものすごく時間がかかりますが、しばらく待てば終わりますので、同じディレクトリで vagrant reload コマンドを実行し仮想ホストを再起動します。
上手く行けばここまでで Ubuntu 18.04 の仮想ホストの GUI が起動したはずです(ただし英語)。
vagrantユーザ(初期PW:vagrant) でログインし、vagrantユーザのパスワードを変更するなり、自分用のログインアカウントを作成しておくなりしてください。

日本語環境化を仕上げる

ここまでは母艦で作業してきましたが、ここからは起動した仮想ホストのGUIで操作を行います。
Vagrantfile 内の初期構築スクリプトにて、Ubuntu Japanese Team が提供する日本語用パッケージをインストールするところ(https://www.ubuntulinux.jp/japanese)までは完了していますので、あとはそれらを適用・有効化していくだけです。

日本語化に関してはこちらの記事を大変参考にさせていただきました。ありがとうございます。

kledgeb.blogspot.com

  • 使用する言語を日本語に設定する
    • デスクトップ画面左上の「Activities」をクリックし「Language Support」を検索して起動します。
    • 「The language support is not installed completely」というダイアログが表示されるので、「Install」を押してインストールします(root権限が必要なため、パスワードの入力を求められます)。
    • インストールが完了したら、「Language Support」のダイアログが表示されているので、表示されている「Language」タブの「Language for menus and windows:」のリストから「日本語」を探してリストの一番上になるようにドラッグします。
    • 「Apply System-Wide」ボタンを押してシステム全体に適用します(root権限が必要なため、パスワードの入力を求められます)。
    • 「Keyboard input method system:」が「IBus」になっていることを確認してください。
    • 続いて「Regional Formats」タブに移り、「Display numbers, dates currency amounts in the usual for:」を「日本語」に変更したら、「Apply System-Wide」ボタンを押してシステム全体に適用します(root権限が必要なため、パスワードの入力を求められます)。
  • 言語設定の確認と入力ソース(キーボードレイアウトと言語)の追加
    • デスクトップ画面左上の「Activities」をクリックし「Settings」を検索して起動します。
    • メニューから「Region & Language」を選択します。
    • 「Language」が「Japanese」、「Formats」が「Japan」になっていることを確認してください。
      • もしそうなっていなければ、それぞれの項目をクリックして選択肢から日本に該当するものを選択してください
    • 「Input Sources」の「+」ボタンを押して「Japanese」->「Japanese (Mozc)」を追加してください。
  • 日本語入力できるようにする
    • デスクトップ画面の右上にある言語インジケーター(おそらく「en▼」と表示されている)をクリックし、表示されるメニューから(Japanese (Mozc))を選択してください。
  • ここまで来たら、一度仮想ホストのOSを再起動する
    • 起動すると、「Downloads」「Desktop」などデフォルトで作成されるホームディレクトリ下のディレクトリ名を日本語に更新するかを尋ねるダイアログが表示されますが、更新しない(「次回から表示しない」にチェック&「古い名前のままにする」を選択)ことを推奨します。
    • かなと英数の切り替えは「半角/全角」ボタンで行います。

これで一通り表示が日本語化され、日本語入力が可能な状態になっているはずです。

まとめ

  • Ubuntu 18.04 LTS をVagrant + VirtualBox で作成する手順をまとめました
  • が、日本語化する設定が自動化できていないのでイマイチ

*1:標準化のために Ubuntu 14.04 LTS で開発しているものの、まだPoC段階で一般公開までにはまだまだ時間がかかりそうなプロジェクトなど。普通に一般公開しているサービスではこんな冒険はできません...