Sous Windows 10, comment installer plusieurs instances distinctes d'Ubuntu dans WSL? Je voudrais des instances distinctes pour différents espaces de travail. Par exemple, un pour le développement Python, un pour le développement Ruby, un pour le développement .Net Core, etc. Je sais que je pourrais les brouiller tous dans la même instance Ubuntu sur WSL, mais je préfère en avoir un distinct pour chacun d'eux scénarios. Est-ce possible?
Réponses
Trop de publicités?C'est possible, mais nécessite un certain travail. Vous pouvez utiliser LxRunOffline - "Un plein de fonctionnalités de l'utilitaire pour le sous-système Windows pour Linux (WSL)".
Vous pouvez l'installer via Chocolaté: choco install lxrunoffline
, ou téléchargez et décompressez-le.
Vous pouvez ajouter LxRunOffline.exe à votre CHEMIN d'accès.
https://lxrunoffline.apphb.com/download/{distro}/{version}
vous redirigera vers la page de téléchargement pour la distribution. Dans ce cas, il serait .../ubuntu/xenial ou similaires, selon lxrunoffline wiki, ou vous pouvez le télécharger directement à partir de Canonique.
Ensuite, vous pouvez:LxRunOffline install -n someName -d where/to/install -f path/to/downloaded/distro
plusieurs fois avec des noms différents et des répertoires cibles.
Vous pouvez alors lxrunoffline -w -n someName
pour démarrer l'installation souhaitée, et enfin, vous pouvez créer plusieurs raccourcis sur le bureau avec différentes options spécifiques pour les espaces de travail.
LxRunOffline commandes disponibles:
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.
Nous devons d'abord trouver l'emplacement d'installation de Windows Store Appx. Voici un script Powershell pour trouver ce chemin. Entrez le nom de la distribution dans un premier temps (par exemple, Ubuntu18.04
).
$DistroName=Read-Host "Enter Distribution Name"
$path = (Get-AppxPackage *DistroName*).InstallLocation
echo $path
Invoke-Item $path
pause
Le chemin d'installation pour Ubuntu 18.04 seront:
%ProgramFiles%\WindowsApps\CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.427.0_x64__79rhkp1fndgsc
Dans la PS script, Invoke-Item
va s'ouvrir le chemin dans l'Explorateur de Fichiers. Si ce chemin ne sera pas visible ou ne montre aucun problème de sécurité, puis accordez la permission de ce dossier à partir du menu des propriétés. Maintenant, copiez ces deux fichiers:
- La Distribution de l'espace utilisateur archive nommée install.tar.gz (ou tout TAR.GZ fichier).
- Principal fichier exécutable pour installer, nommé Ubuntu.exe ou Ubuntu1804.exe ou Ubuntu1604.exe etc.
Vient ici la prochaine section. De sauvegarde et de supprimer ce registre HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss
. Placez ces deux fichiers dans une structure de dossier comme celui-ci (ou comme vous voulez):
C:\MyFiles
|
+-- UbuntuPython
| |
| +-- ubuntu.exe
| +-- install.tar.gz
|
+-- UbuntuRuby
|
+-- ubuntu.exe
+-- install.tar.gz
Le dossier de nom doit être différent. Maintenant double-cliquez sur le premier, attendre jusqu'à ce qu'il installe. Ouvrez HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss\<some-GUID>
et variation DistributionName
de registre de la chaîne d' UbuntuPython
(ou du tout). Répétez la procédure avec toutes les instances. Le GUID sera un nouveau pour chaque cas. Assurez-vous de changer l' DistributionName
registre différent pour chacun autrement ubuntu.exe va exécuter les wsl.exe au lieu de l'installer. Voir le code source de ces fichiers EXE ici GitHub: Microsoft/WSL-DistroLauncher.