Grooy スクリプトをそのまま渡して実行する Spring Boot+Picocli ベースのコマンドラインアプリを作成する ( 番外編 )( ConEmu 上で WSL 2 の Ubuntu-20.04 の bash を起動する+Ubuntu-20.04 の別インスタンスを作成する )
概要
記事一覧はこちらです。
GraalVM で groovy-script-executor の Linux 用の Native Image を作成するために WSL 2 で稼働する Ubuntu-20.04 に容易にアクセスする方法等を調べます。
参照したサイト・書籍
Bash on Ubuntu on Windows (WSL)
https://conemu.github.io/en/wsl.htmlWSL: Am I running version 1 or version 2?
https://askubuntu.com/questions/1177729/wsl-am-i-running-version-1-or-version-2Windows への PowerShell のインストール
https://docs.microsoft.com/ja-jp/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.2PowerShell / PowerShell - Releases
https://github.com/PowerShell/PowerShell/releases/How to install multiple instances of Ubuntu in WSL2
https://cloudbytes.dev/snippets/how-to-install-multiple-instances-of-ubuntu-in-wsl2WSL の基本的なコマンド
https://docs.microsoft.com/ja-jp/windows/wsl/basic-commandsDeveloping on Amazon Linux 2 using Windows
https://aws.amazon.com/jp/blogs/developer/developing-on-amazon-linux-2-using-windows/yosukes-dev / AmazonWSL - Releases
https://github.com/yosukes-dev/AmazonWSL/releases
目次
- Ubuntu-20.04 を以前インストールはしていたが、WSL 1 or WSL 2 のどちらで動いているのか?
- ConEmu で
{Bash::bash}
を起動しようとするとwslbridge error: failed to start backend process
のエラーが出力されて起動しない問題を解消する - Ubuntu-20.04 の別インスタンスを起動する
手順
Ubuntu-20.04 を以前インストールはしていたが、WSL 1 or WSL 2 のどちらで動いているのか?
WSL: Am I running version 1 or version 2? を読むと wsl -l -v
コマンドで分かるそうなので実行してみると、Ubuntu-20.04 は VERSION 1(WSL 1) になっていました。
wsl --set-version Ubuntu-20.04 2
コマンドを実行して VERSION 2(WSL 2)に変換します。
ConEmu で {Bash::bash}
を起動しようとすると wslbridge error: failed to start backend process
のエラーが出力されて起動しない問題を解消する
WSL 2 に変換後、ConEmu で {Bash::bash}
を起動しようとすると以下のエラーメッセージが表示されて起動できなくなるので、起動できるようにします。
まず ConEmu の左上のアイコンをクリックしてメニューを表示後、「Settings...」を選択します。
「Settings」ダイアログが表示されるので、左側のツリーから「Startup」-「Tasks」を選択した後、中央のリストから {Bash::bash}
を選択し、右側の「Commands」を
set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:pm:/mnt
→wsl.exe -cur_console:pm:/mnt
に変更して「Save settings」ボタンをクリックして保存します。
再度 {Bash::bash}
を起動しようとすると今度は無事起動しました。タブのアイコンもペンギンになっていました。
Ubuntu-20.04 の別インスタンスを起動する
作業するのに PowerShell を使用します。PowerShell のバージョンを確認すると 5.1 だったので 7.2.1 にバージョンアップします。
https://github.com/PowerShell/PowerShell/releases/tag/v7.2.1 から PowerShell-7.2.1-win-x64.msi をダウンロードしてインストールします。
ConEmu の {Shells::PowerShell}
と {Shells::PowerShell (Admin)}
の設定を変更します。
powershell.exe
→pwsh.exe
powershell.exe -new_console:a
→pwsh.exe -new_console:a
D:\WSL\Ubuntu-20.04-2\ ディレクトリを新規作成した後、以下のコマンドを実行して Ubuntu-20.04-2 インスタンスを作成します。
PS> cd D:\WSL\Ubuntu-20.04-2\ PS> Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/releases/hirsute/release/ubuntu-21.04-server-cloudimg-amd64-wsl.rootfs.tar.gz -OutFile $env:TMP\ubuntu-21.04.tar.gz PS> wsl --import Ubuntu-20.04-2 D:\WSL\Ubuntu-20.04-2 $env:TMP\ubuntu-21.04.tar.gz
wsl -l -v
コマンドを実行すると作成した Ubuntu-20.04-2 インスタンスは VERSION 1 になっていたので、wsl --set-version Ubuntu-20.04-2 2
コマンドを実行します。
WSL の基本的なコマンド を見ると wsl --set-default-version
コマンドで既定の WSL バージョンを設定できるそうなので、wsl --set-default-version 2
コマンドを実行して WSL 2 がデフォルトになるように設定します。
wsl -d Ubuntu-20.04-2
コマンドを実行すれば作成した Ubuntu-20.04-2 インスタンスに接続できます。
wsl --unregister Ubuntu-20.04-2
コマンドを実行すると作成したインスタンスが削除されます。
履歴
2021/12/29
初版発行。