前提条件
Windows 10 64bit
WSLをインストール
アプリケーションの機能の追加でWindows System For Linuxをインストール。
インストールできたらstoreを起動してubuntuで検索してubuntuをインストールする。
ubuntuを最新にしておく
ミラーの設定
aptのソースを変更してjpミラーにする。以下のコマンドを実行
$ sudo sed - i . mybk 's/archive\.ubuntu\.com/jp.archive.ubuntu.com/g' / etc / apt / sources . list
アップデート
$ sudo apt update
$ suod apt upgrade
ターミナル変更
デフォルトのターミナルはバッファがなくて使いづらいので変更。ターミナルとは文字だけが表示されているあのウインドウのこと。昔は1つのメインフレームに多くの端末が接続されていて、それをターミナルと読んだ。メインフレームにはモニターはないか使わない。ここではWSLで動くubuntuがメインフレームみたいなものでそれに接続し表示するものをターミナルと読んでいる。
minttyを使う。ここ からwsltty-3.0.1.2-install.exeをダウンロード。警告が出るが構わず実行。デスクトップに’WSL Terminal’が出るのでこれを起動するとubuntuに接続したminttyが起動する。
FirefoxやVSCodeを動かしてみる
LinuxでのGUIの扱いはやや複雑でモニターを持っているマシンをXサーバーといい、プログラム実行はクライアントで行い表示はXサーバーで行う仕組みになっている。WSLの場合はGUI機能はないと思うので、Windows側でXサーバーを動かしてプログラムはWSLで動かすことになる。
Windows側のXサーバーのインストール
ここではVcXsrc を使う。vcxsrv-64.1.20.1.4.installer.exeをダウンロードしてインストールした。
VcXsrvの起動
インストールするとデスクトップに’XLaunch’というショートカットができるので起動。ダイアログが表示されるが全部デフォルトで進むとタスクバーにXのアイコンがでて起動が完了した。
ubuntuにFirefoxをインストール
$ sudo apt install firefox
Firefox起動
$ export DISPLAY = 0 : 0
$ firefox
DISPLAY環境変数にXサーバーを指定することで起動が行える。実際に表示しているのは上で起動したVcXsrv
ubuntuにVSCodeをインストール
直リンインストール
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ cd ` mktemp - d `
$ wget https : //go.microsoft.com/fwlink/?LinkID=760868
$ file index . html \ ? LinkID \ = 760868
index . html ? LinkID = 760868 : Debian binary package ( format 2.0 )
$ mv index . html \ ? LinkID \ = 760868 aaa . deb
$ sudo dpkg - i aaa . deb
Selecting previously unselected package code .
( Reading database . . . 43298 files and directories currently installed . )
Preparing to unpack aaa . deb . . .
Unpacking code ( 1.35.1 - 1560350270 ) . . .
dpkg : dependency problems prevent configuration of code :
code depends on libnotify4 ; however :
Package libnotify4 is not installed .
code depends on libnss3 ( >= 2 : 3.26 ) ; however :
Package libnss3 is not installed .
code depends on libxkbfile1 ; however :
Package libxkbfile1 is not installed .
code depends on libsecret - 1 - 0 ; however :
Package libsecret - 1 - 0 is not installed .
code depends on libxss1 ; however :
Package libxss1 is not installed .
dpkg : error processing package code ( -- install ) :
dependency problems - leaving unconfigured
Processing triggers for mime - support ( 3.60ubuntu1 ) . . .
Errors were encountered while processing :
code
$ sudo apt install - f
$ sudo dpkg - i aaa . deb
このdebはインストールするとaptソースも書き換えてくれるようなので、次からはaptでアップデートできる。上のコマンドは最新のaptではsudo apt install aaa.debでもいいらしい。
ない場合はhttps://code.visualstudio.com/docs/setup/linuxからdebファイルをダウンロードしてubuntuにもってくる。あるいは上で起動したFirefoxからダウンロードする。ubuntu側からは/mntからNTFSにアクセスできる。
VSCode起動
$ code
To use VS Code with the Windows Subsystem for Linux , please install VS Code in Windows and uninstall the Linux version in WSL . You can then use the 'Visual Studio Code' command in a WSL terminal just as you would in a normal command prompt .
Do you want to continue anyways ? [ y / N ] y
VSCodeはWindowsでインストールして、それを使ってくれとのこと、ubuntuからでも起動できるから、とのことだがスルー
日本語フォントのインストール
日本語が表示できないので以下でインストールしてみる。なお日本語入力はスルーする。
$ sudo apt - get install language - pack - ja
$ sudo apt - get install fonts - arphic - ukai fonts - arphic - uming fonts - ipafont - mincho fonts - ipafont - gothic fonts - unfonts - core
これでもタイトルバーだけは文字化けするがこれはVcXsrv側の問題だと思うのでここではスルー。
(注)ここからはやらないほうがいいかもしれない。VcXsrvがおかしくなってfirefoxが起動できなくなった。
gnome-terminalをインストール
ubuntuデスクトップではdbusという設定サーバが見たいのが動いている。これはWindowsのレジストリのように機能していると思うがこれがないとgnome-terminal等のgnome関連のアプリが動かないので、まずはdbusをインストールして設定する。
$ sudo apt install dbus - x11
$ sudo apt isntall gnome - terminal
$ gnome - terminal
WSLの終了
ubuntuのshutdownコマンドは効かないので、Windows側でサービスLxssManagerを終了する。管理者コマンドプロンプトで以下を入力
このサービスは自動で起動するように設定されてるようなので、WSLの起動には問題ない。
未整理情報
https : //qiita.com/masa-tu/items/20111878476bb97a9d07
VcXsrv の起動オプションに- nowgl を追加すると起動できる
libGL error : No matching fbConfigs or visuals found
libGL error : failed to load driver : swrast
export LIBGL_ALWAYS_INDIRECT = 1
dbus - launch -- autolaunch = ` cat / etc / machine - id ` -- binary - syntax -- close - stderr
net stop LxssManager