web-dev-qa-db-ja.com

Ubuntuの複数の個別のインスタンスをWSLにインストールするにはどうすればよいですか?

Windows 10では、WSLにUbuntuの複数の別個のインスタンスをどのようにインストールしますか?作業スペースごとに個別のインスタンスが欲しいです。たとえば、Python開発、1つはRuby開発、1つは.Net Core開発など。 WSLインスタンス上のUbuntuですが、これらのシナリオごとに個別のUbuntuが必要です。

16
MattSlay

可能ですが、いくつかの作業が必要です。 LxRunOffline -"Windows Subsystem for Linux(WSL)用のフル機能ユーティリティ"を使用できます。 Chocolateyからインストールできます:choco install lxrunoffline、またはダウンロードして解凍します。 PATHにLxRunOffline.exeを追加することもできます。
https://lxrunoffline.apphb.com/download/{distro}/{version}は、目的のディストリビューションのダウンロードページにリダイレクトします。この場合、lxrunoffline wikiによると、.../ubuntu/xenialまたは同様のものになります。または、 Canonical から直接ダウンロードできます。その後、次のことができます。
LxRunOffline install -n someName -d where/to/install -f path/to/downloaded/distro名前とターゲットディレクトリが異なる複数回。
その後、lxrunoffline -w -n someNameを使用して目的のインストールを開始します。最後に、特定のワークスペースのさまざまなオプションを使用してデスクトップ上に複数のショートカットを作成できます。
LxRunOfflineで使用可能なコマンド:

list           List all installed distributions.
get-default    Get the default distribution, which is used by bash.exe.
set-default    Set the default distribution, which is used by bash.exe.
install        Install a new distribution.
uninstall      Uninstall a distribution.
register       Register an existing installation directory.
unregister     Unregister a distribution but not delete the installation directory.
move           Move a distribution to a new directory.
duplicate      Duplicate an existing distribution in a new directory.
run            Run a command in a distribution.
get-dir        Get the installation directory of a distribution.
get-env        Get the default environment variables of a distribution.
set-env        Set the default environment variables of a distribution.
get-uid        Get the UID of the default user of a distribution.
set-uid        Set the UID of the default user of a distribution.
get-kernelcmd  Get the default kernel command line of a distribution.
set-kernelcmd  Set the default kernel command line of a distribution.
get-flags      Get some flags of a distribution. See https://msdn.Microsoft.com/en-us/library/windows/desktop/mt826872(v=vs.85).aspx for details.
set-flags      Set some flags of a distribution. See https://msdn.Microsoft.com/en-us/library/windows/desktop/mt826872(v=vs.85).aspx for details.
version        Get version information about this LxRunOffline.exe.
10
Braca

まず、そのWindowsストアAppxのインストール場所を見つける必要があります。そのパスを見つけるためのPowershellスクリプトを次に示します。最初にディストリビューション名を入力します(例:Ubuntu18.04)。

$DistroName=Read-Host "Enter Distribution Name"
$path = (Get-AppxPackage *DistroName*).InstallLocation
echo $path
Invoke-Item $path
pause

Ubuntu 18.04のインストールパスは次のとおりです。

%ProgramFiles%\WindowsApps\CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.427.0_x64__79rhkp1fndgsc

PSスクリプトでは、Invoke-Itemは、エクスプローラーでそのパスを開きます。そのパスが表示されないか、セキュリティ上の問題が表示されない場合は、プロパティメニューからそのフォルダーのアクセス許可を付与します。次の2つの必須ファイルのみをコピーします。

  1. install.tar.gz(または任意のTAR.GZファイル)という名前の配布ユーザースペースtarball。
  2. Ubuntu.exe、Ubuntu1804.exe、Ubuntu1604.exeなどの名前の、インストールするメインの実行可能ファイル.

次のセクションがあります。このレジストリのバックアップと削除HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss。これらの2つのファイルを次のようなフォルダー構造に配置します(または必要に応じて)。

C:\MyFiles
|
+-- UbuntuPython
|   |
|   +-- ubuntu.exe
|   +-- install.tar.gz
|
+-- UbuntuRuby
    |
    +-- ubuntu.exe
    +-- install.tar.gz

フォルダー名前は異なる必要があります。最初のものをダブルクリックし、インストールされるまで待ちます。開いた HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss\<some-GUID>およびDistributionName文字列レジストリをUbuntuPython(または任意)に変更します。すべてのインスタンスでこの手順を繰り返します。 GUIDはすべてのインスタンスで新しいものになります。[DistributionNameレジストリを変更それぞれが異なる場合は、ubuntu.exeがwslを実行します。これらのEXEファイルのソースコードは、こちらから GitHub:Microsoft/WSL-DistroLauncher を参照してください。

3
Biswapriyo