前提条件
Windows 10 64bit
WSLをインストール
アプリケーションの機能の追加でWindows System For Linuxをインストール。
インストールできたらstoreを起動してubuntuで検索してubuntuをインストールする。
ubuntuを最新にしておく
ミラーの設定
aptのソースを変更してjpミラーにする。以下のコマンドを実行
1 |
$ sudo sed -i.mybk 's/archive\.ubuntu\.com/jp.archive.ubuntu.com/g' /etc/apt/sources.list |
アップデート
1 2 |
$ 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をインストール
1 |
$ sudo apt install firefox |
Firefox起動
1 2 |
$ 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起動
1 2 3 |
$ 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からでも起動できるから、とのことだがスルー
日本語フォントのインストール
日本語が表示できないので以下でインストールしてみる。なお日本語入力はスルーする。
1 2 |
$ 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をインストールして設定する。
1 2 3 |
$ sudo apt install dbus-x11 $ sudo apt isntall gnome-terminal $ gnome-terminal |
WSLの終了
ubuntuのshutdownコマンドは効かないので、Windows側でサービスLxssManagerを終了する。管理者コマンドプロンプトで以下を入力
1 |
net stop LxssManager |
このサービスは自動で起動するように設定されてるようなので、WSLの起動には問題ない。
未整理情報
1 2 3 4 5 6 7 8 9 10 11 |
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 |