Ubuntu 18.04のWSL上へのインストールと初期設定

はじめに_

2018年6月時点でのUbuntuの最新バージョンは18.04である。

インストール_

MicrooftストアからUbuntu 18.04をWindowsアプリとしてインストールする。まず、Microsoftストアを「スタートアップボタン」→「よく使うアプリ」から起動する。

開いたウィンドウの「検索」で「Ubuntu」と入力し検索する。検索結果に表示される「Ubuntu 18.04」を選択する。

「入手」を選択する。

以下のウィンドウがでるので「必要ありません」を選択する。

しばらく待つとインストールが終わる。インストールが終わったら「起動」をクリックし、Ubuntuを起動する。

初回起動時は下記の図のようなメッセージがでて、初期設定が行われる(私の環境だと5~6分かかった)。

初期設定が終わるとログイン名が求められる。このUbuntu上で使うログイン名を入力する(半角英数字、空白不可)。WindowsやMicrosftアカウントと異なるもので良い。

続いて、ログインパスワードを入力する。Windowsのログインパスワードと異なるもので良い。

上で設定したものと同じパスワードを入力する。

インストール終了。以下、この開いているウィンドウのことを「ターミナル」と呼ぶこととする。

ターミナル中のフォントの大きさなどを変更したい場合は、ターミナルの上部バー部分にカーソルを合わせて右クリックをする。開いたメニューバーの中の「プロパティ」を選択する。

初期設定_

Ubuntu上での操作の留意点_

Ubuntuを始めとするLinuxは CUI (Character User Interface) で操作を行う。

新しいソフトウェアをインストールする際には管理者権限(以後、root権限と呼ぶ)が必要となる。root権限で操作を行う場合には、実行したいコマンドの前に「sudo」とつける。「sudo」をつけてコマンドを実行する際にはUbuntuのログインパスワードが要求される。

/etc/apt/source.list のリポジトリを日本国内に変更する_

Ubuntuではソフトウェアをパッケージという名前で管理している(プログラム&設定ファイルをひとまとめにしてパッケージと呼んでいる)。パッケージは /etc/apt/source.list に記載されているリポジトリで提供されている。デフォルトでは海外のリポジトリにアクセスするようになっているため、日本国内のリポジトリにアクセスするように変更する。以下のコマンドを実行する。

% cd /etc/apt

% ls 
(sources.listというファイルがあるかどうかを確かめる)

% sudo sed -i.bak -e "s/http:\/\/archive\.ubuntu\.com/http:\/\/jp\.archive\.ubuntu\.com/g" sources.list
(上のコマンドの意味は source.list中の「http://archive.ubuntu.com」という文字列を
 「http://jp.archive.ubuntu.com」という文字列に置き換える。
  元のファイルは sources.list.bakという名前でバックアップをとっている)

% ls 
(sources.listとsources.list.bakいうファイルがあるかどうかを確かめる)

% diff sources.list.bak sources.list

インストールされているソフトウェアの更新(apt update, apt upgrade)_

WindowsでいうWindows UpdateをUbuntuでは手動で行う必要がある。以下のコマンドを定期的に(1週間に1度くらい)実行すること。

% sudo apt update
% sudo apt upgrade

2018年6月現在ebtableというパッケージについてエラーメッセージがでる。Upgrading to Ubuntu 17.10 on WSLにある対処法を実行する。なお、ターミナルへのコピー&ペーストはターミナルのウィンドウの上部(バー部分)で右クリックし、編集の項を選択する。

% wget -O - https://gist.githubusercontent.com/Zenexer/10bc12fa5c99848b4b2150184f6beee5/raw/ubuntu-fix.sh | sh -s
% sudo apt autoremove

もう一度、実行する。

% sudo apt update
% sudo apt upgrade

インストールしたいソフトウェア(パッケージ)の検索_

存在するパッケージの検索は以下のコマンドで行う。

% sudo apt search 検索したい文字列

たとえば、Linux上でよく使われるエディタの一つ emacs が存在するか調べたい場合は、以下のように入力する。

% sudo apt search emacs

上の図の表示の意味は左から以下の意味となっている。

  • インストール済みかどうか(pは未インストール、iはインストール済み)
  • パッケージ名
  • パッケージの簡単な説明

ソフトウェアのインストール(apt install)_

パッケージのインストールは以下の書式になっている。

% sudo apt install パッケージ名, ...

たとえば、emacsをインストールする場合は以下のようにする。

% sudo apt install emacs

上記の図のようにあるパッケージが必要なその他のパッケージが合わせて表示される。インストールする場合にはYのキーを、インストールを止める場合はNのキーを押す。

インストール済みのソフトウェアを調べる_

whichコマンドで使いたいLinuxコマンドがあるかどうかを確認できる。

% which 調べたいLinuxコマンド

たとえば、emacsがインストールされているか調べたいときには以下のコマンドを実行する。

% which emacs

コマンドがインストールされている場合はインストールされているディレクトリ(Windowsでいうフォルダ)が表示される。インストールされている場合は何も表示されない(上の例だとwhich hogehogeの結果)。

日本語環境の設定_

The modern stone age.:【Windows10/WSL Ubuntu】日本語のロケールとタイムゾーンの変更を参考に設定をする。

以下のパッケージをインストールする。

% sudo apt install language-pack-ja

エラーメッセージなどを日本語にする。

% sudo update-locale LANG=ja_JP.UTF-8

一度、Ubuntuを終了する。

% exit

日本語環境になっているかを確認する。

% echo $LANG

上の図のように「ja_JP.UTF-8」が表示され、dateコマンドのメッセージが日本語されていれば設定成功。

タイムゾーンを日本(JST)にする_

% sudo dpkg-reconfigure tzdata

上の画面で「アジア」を選択する。

上の画面で「東京」を選択する。

dateコマンドの結果がJSTになっていたらタイムゾーンの設定の変更が成功。

Manの日本語化_

オンラインマニュアル(Linuxのコマンドのマニュアル)を表示するコマンドmanのマニュアルを日本語化する。

% sudo apt install manpages-ja manpages-ja-dev

確認する。ページ送りはEnterキーかスペースキー。manの終了はqキーを押す。

% man ls

X Windowの起動(Windows側からLinuxソフトウェアを別画面表示する)_

VcxSrvのインストール_

まず、WindowsにVcxSrvをインストールする。ダウンロードしたファイルを開くと以下のウィンドウが開く。「Next」をクリックする。

インストール先を変更しないならばそのまま「Install」をクリックする。

「Close」をクリックし、インストールを完了する。

VcxSrvを起動する。デスクトップにあるアイコン「XLaunch」をクリックする。すると以下のウィンドウが開く。「Multiple windows」を選択し、「次へ」をクリックする。

「Start no client」を選択し、「次へ」をクリックする。

「次へ」をクリックする。

「完了」をクリックする。

初回時に「Windows ファイアウォール」の設定ウィンドウがでるが「キャンセル」をクリックする(同一コンピュータ上で通信するだけなので外部との通信を許可する必要はない)。

トラブルシューティング:Windowsのユーザ名が日本語の場合(2バイト文字を使っている場合)_

Windowsのユーザ名として日本語(全角文字、2バイト文字)を用いていると、VcxSrvを起動時に「fatal error cannot open a log file」というエラーメッセージがでる。原因と対処法は以下のページのとおり。

このエラーの原因はVcxSrvのログがWindowsの環境変数TMPとTEMPに記載されているフォルダに生成されるのであるが、Tここに日本語(全角文字、2バイト文字)が含まれていると、VcxSrvが日本語を取り扱えないためログを生成できずエラーが表示される。

そこで、日本語を含まないログ置き場用のフォルダを作成し、環境変数TMPとTEMPを当該フォルダに書き換えることで対応する。なお、作業終了後にWindowsの再起動が必要となる。

まず、エクスプローラーを起動する。Windowsのデスクトップの下のバーにあるフォルダーのアイコンをクリックする(以下の図の赤丸印のアイコン)。

次にエクスプローラーの左側に記載されるパソコンのアイコン(以下の図の赤丸印のアイコン)にマウスカーソルを合わせる。なお、このアイコンの名前は各自の環境ごとに異なる(この例では「PC」になっている)。

パソコンのアイコン上で右クリックし、「プロパティ」を選択する。

新しく開いたウィンドウで「システムの詳細設定」をクリックする。

開いたウィンドウで「詳細設定」のタブを選択し、「環境変数」のボタンをクリックする。

このウィンドウで環境変数を編集できる。このTEMPとTMPの値に日本語が含まれているとエラーがでる(この例では日本語は含まれていない)。

エクスプローラーをつかってCドライブの下に「Temporal」というというフォルダを作成し、その中にさらに「Temp」というフォルダを作成する。その後、上の図で示すウィンドウの環境変数TEMPをクリックしアクティブにする(青色の背景に変える)。その後、「変更」をクリックする。すると、以下のウィンドウが開く。

「ディレクトリの参照」をクリックし「C:\Temporal\Temp」を選択する。

以下のような値になっていたら成功。「OK」を押す。

同様に環境変数TMPの値を変更する。以下のような値になっていたら成功。「OK」を押す。

「OK」を押して、各ウィンドウを閉じる。その後、Windowsを再起動する。

Ubuntu上でのXserverの起動_

続いてUbuntuに必要なソフトウェアをインストールする。ターミナルで以下を実行する。

% sudo apt install  x11-apps x11-utils x11-xserver-utils dbus-x11

続いて以下のコマンドを実行する(2018年9月22日修正)。

% cd
% echo 'export DISPLAY=localhost:0.0' >> ~/.bash_profile
% source ~/.bash_profile

以下のコマンドをターミナル上で実行してxeyesのウィンドウが出現したら設定成功。

% xeyes &

gnome-terminalの利用(2018年9月22日、9月28日追記)_

WindowsアプリからインストールしたUbuntu用ターミナルでは、Windows上の文字をコピー&ペーストして貼り付けるのが面倒である(ターミナル上で右クリックし「編集」→「貼り付け」or「コピー」を選ぶ必要がある)。

そこで、コピー&ペーストが楽なgnome-terminalをインストールして、利用する。

% sudo apt install gnome-terminal

(2018年9月28日追記) WSL で gnome-terminal を動かすお話を参考にmachine-idを設定する。

% dbus-uuidgen | sudo tee /etc/machine-id

起動してみる。VcxSrvを起動しておくこと。

% gnome-terminal &

毎回、gnome-terminal と入力するのは面倒なので gtermというコマンド名でgnome-terminalを呼び出せるように設定する。

% echo 'alias gterm="/usr/bin/gnome-terminal"' >> ~/.bash_profile
% source ~/.bash_profile
% gterm &

WindowsとUbuntu間のコピー&ペーストの方法_

WindowsからUbuntuへのコピー&ペースト

  • Windows上でコピーしたい文字列を選択し(マウスで選んで反転させる)、Ctrl+cでコピーする(あるいはマウスの右クリックで「コピー」)
  • Ubuntu上で張り付けたい場所にマウスカーソルを移動させ、マウスのホイールを押し込む

UbuntuからWindowsへのコピー&ペースト

  • Ubuntu上でコピーしたい文字列を選択する(マウスで選んで反転させる)
  • Windows上で張り付けたい場所にマウスカーソルを移動させ、Ctrl+vで張り付ける(あるいはマウスの右クリックで「貼り付け」)

戻る_