J'utilise Windows Subsystem Linux (Ubuntu 18.04) dans mon Win10, et j'installe un Maven dedans. D'ailleurs, j'installe un maven dans Win10 avant. Maintenant, quand j'ai utilisé mvn compile
en WSL, il m'a dit que la compilation de maven échouait. J'utilise which mvn
et trouve qu'il fait référence au Maven installé dans Win10.
En outre, je lance env
et constate que le chemin de Win10 est ajouté au chemin du WSL. Je ne veux rien utiliser dans le chemin de Win10 lorsque j'utilise WSL, comment dois-je faire?
Pour Windows, build INFÉRIEUR à 17713: WSL utilise WSL_DISTRIBUTION_FLAGS Enumeration pour configurer son comportement et son interopérabilité entre Windows et Linux. Voici l'extrait de code de wslapi.h
En tête de fichier.
/* Flags specifying WSL behavior */
typedef enum
{
WSL_DISTRIBUTION_FLAGS_NONE = 0x0,
WSL_DISTRIBUTION_FLAGS_ENABLE_INTEROP = 0x1,
WSL_DISTRIBUTION_FLAGS_APPEND_NT_PATH = 0x2,
WSL_DISTRIBUTION_FLAGS_ENABLE_DRIVE_MOUNTING = 0x4
} WSL_DISTRIBUTION_FLAGS;
#define WSL_DISTRIBUTION_FLAGS_VALID (WSL_DISTRIBUTION_FLAGS_ENABLE_INTEROP | WSL_DISTRIBUTION_FLAGS_APPEND_NT_PATH | WSL_DISTRIBUTION_FLAGS_ENABLE_DRIVE_MOUNTING)
#define WSL_DISTRIBUTION_FLAGS_DEFAULT (WSL_DISTRIBUTION_FLAGS_ENABLE_INTEROP | WSL_DISTRIBUTION_FLAGS_APPEND_NT_PATH | WSL_DISTRIBUTION_FLAGS_ENABLE_DRIVE_MOUNTING)
Au premier lancement, WSL utilise l'indicateur par défaut = 0x7 (c'est-à-dire 0 + 1 + 2 + 4). Si cet indicateur = 0x5 (c'est-à-dire 0 + 1 + 4), le chemin Windows NT ne sera pas ajouté dans $PATH
variable d'environnement. Alors, comment trouver cette valeur de registre des drapeaux? Ouvert HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss
chemin de registre dans l'Éditeur du Registre aka. regedit.exe
. Ouvrez chaque sous-clé avec des valeurs UID et faites correspondre DistributionName
avec votre nom de distribution installé. Ensuite, modifiez/ajoutez la valeur de registre Flags
DWORD à 0x5
.
Pour la version Windows SUPÉRIEUR à 1771 : Dans la nouvelle version, WSL utilise wsl.conf
fichier pour configurer son comportement et son interopérabilité entre Windows et Linux. Cette wsl.conf
le fichier suit format de fichier INI . Courir wsl.exe
ou bash.exe
. Créez un fichier /etc/wsl.conf
. Ajoutez ensuite ce qui suit section interop avec n'importe quel éditeur de texte sous Linux.
[interop]
enabled=false # enable launch of Windows binaries; default is true
appendWindowsPath=false # append Windows path to $PATH variable; default is true
Enregistrez ce fichier et quittez wsl.exe
. Désormais, chaque fois que WSL est exécuté, les chemins Windows ne seront pas ajoutés à Linux $PATH
variable d'environnement.