WSL2+ubuntu20.04: どうやってGUI化するか
WSL2+ubuntu20.04環境がかなり良い。仮想環境よりずっと速い。
しかしCLI。…なのでGUI化したいと思って、ここQiitaやその他でもそのやり方をいろいろ拝見しましたがうまくいかず。
結局、べつの方法でなんとかした。
結論としてはXRDPを使う
VcXsrvやX410とかDISPLAY環境変数の設定とかいらないからとても簡単。これでよいのでは?
では手順を述べていきます。
WSLの設定
WSL2の有効化
PowerShellを管理者権限で立ち上げて以下のコマンド。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
WSL2のアップグレード
https://docs.microsoft.com/en-us/windows/wsl/wsl2-kernel
へ行って、「download the latest WSL2 Linux kernel 」からwsl_update_x64.msiをダウンロード、インストールする。
WSLのバージョンのデフォルトをWSL2にする。
wsl --set-default-version 2
確認コマンド
PS C:\Users\atyah> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
ubuntuの設定
Microsoft Storeからubuntu20.04をインストール
Microsoft Storeでubuntu20.04を選んで
ubuntuにXRDPをインストール
ubuntu20.04 on WSL2で以下のコマンド:
sudo apt update && sudo apt -y upgrade
sudo apt -y install xfce4
sudo apt-get install xrdp
xrdp.iniを編集
xrdp.iniファイルのデフォルトポート番号などを変更する。
sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g' /etc/xrdp/xrdp.ini
echo xfce4-session > ~/.xsession
port番号をデフォルトの3389から変更するのは以下のエラーが出てしまうから。どうもWSLで使ってるようだ。
Your computer could not connect to another console session on the remote computer because you already have a console session in progress.
startwm.shを編集
sudo vim /etc/xrdp/startwm.sh
最後の2行をコメントアウトする。
そして、末尾に
startxfce4
を追記する。
#!/bin/sh
# xrdp X session start script (c) 2015, 2017 mirabilos
# published under The MirOS Licence
if test -r /etc/profile; then
. /etc/profile
fi
if test -r /etc/default/locale; then
. /etc/default/locale
test -z "${LANG+x}" || export LANG
test -z "${LANGUAGE+x}" || export LANGUAGE
test -z "${LC_ADDRESS+x}" || export LC_ADDRESS
test -z "${LC_ALL+x}" || export LC_ALL
test -z "${LC_COLLATE+x}" || export LC_COLLATE
test -z "${LC_CTYPE+x}" || export LC_CTYPE
test -z "${LC_IDENTIFICATION+x}" || export LC_IDENTIFICATION
test -z "${LC_MEASUREMENT+x}" || export LC_MEASUREMENT
test -z "${LC_MESSAGES+x}" || export LC_MESSAGES
test -z "${LC_MONETARY+x}" || export LC_MONETARY
test -z "${LC_NAME+x}" || export LC_NAME
test -z "${LC_NUMERIC+x}" || export LC_NUMERIC
test -z "${LC_PAPER+x}" || export LC_PAPER
test -z "${LC_TELEPHONE+x}" || export LC_TELEPHONE
test -z "${LC_TIME+x}" || export LC_TIME
test -z "${LOCPATH+x}" || export LOCPATH
fi
if test -r /etc/profile; then
. /etc/profile
fi
# コメントアウト # test -x /etc/X11/Xsession && exec /etc/X11/Xsession
# コメントアウト # exec /bin/sh /etc/X11/Xsession
# xfce
startxfce4
RDPでWindowsから接続
ubuntuでXRDPを立ち上げ
sudo /etc/init.d/xrdp start
* Starting Remote Desktop Protocol server
てなる。
※ この後もしかしたらWSL2の再起動も必要かもしれない。
Powershellで再起動コマンド↓
wsl --shutdown
RDPで接続
ubuntuにFirefoxのインストール
RDP接続できたら、Firefoxをインストール(しないとデフォルトブラウザを立ち上げようとしてもエラー)。
sudo apt install firefox -y
以上です。
本の宣伝
Gatsbyバージョン5>>>>改訂2版
前編の『Gatsby5前編ー最新Gatsbyでつくるコーポレートサイト』と後編の『Gatsby5後編ー最新GatsbyとmicroCMSでつくるコーポレートサイト《サイト内検索機能付き》』を合わせ、次のようなデモサイトを構築します。
→ https://yah-space.work
静的サイトジェネレーターGatsby最新バージョン5の基本とFile System Route APIを使用して動的にページを生成する方法を解説。またバージョン5の新機能《Slicy API》《Script API》《Head API》を紹介、実装方法も。《Gatsby Functions》での問い合わせフォーム実装やGatsby Cloudへのアップロード方法も!
Gatsby5前編ー最新Gatsbyでつくるコーポレートサイト ~基礎の基礎から応用、新機能の導入まで(書籍2,980円)
最新Gatsby5とmicroCMSを組み合わせてのコーポレートサイト作成手順を解説。《サイト内検索機能》をGatsbyバージョン4からの新機能《Gatsby Functions》と《microCMSのqパラメータ》で実装。また、SEOコンポーネントをカスタマイズしてmicroCMS APIをツイッターカードに表示させるOGPタグ実装方法も解説。
Gatsby5後編ー最新GatsbyとmicroCMSでつくるコーポレートサイト《サイト内検索機能付き》(書籍 2,790円)