msys2:尽管(MSYS2_PATH_TYPE =继承)找不到Windows程序

问题描述 投票:0回答:3

在 Windows 10 上使用 MSYS2 64 位版本 20161025...

我无法让 msys2 识别 Windows 路径中的程序。例如,使用 Windows 安装 Go 版本 1.8.3 后,安装程序:(1) Cygwin 找到 go.exe (2) Windows 命令提示符找到 go.exe,但 (3) MSYS2 找不到。

请参阅附图。提前致谢。

windows environment-variables mingw-w64 msys2
3个回答
33
投票

奔跑

msys2_shell.cmd -use-full-path

取消注释

MSYS2_PATH_TYPE=inherit
in msys2.ini
(可以在MSYS2的安装目录中找到)。


有关 inherit

 标志的相关 GitHub 问题


2
投票

我刚刚将我想要从Msys2访问的路径添加到

.bash_profile
中的
home/{my user name}/
文件中。这样可行。我只是在Windows中使用Notepad++进行编辑,但你也可以使用nano或vim。

我无法让 .ini 文件中的“继承”工作,或者 msys2 shell cmd(它打开另一个终端窗口,其路径与我开始时的路径相同)也无法工作。

无论如何,我并不是真的想要整个 Windows 路径,它有 Windows 版 Git 的 bin 文件夹(一个残缺的 MingW64 版本),我认为可能会发生奇怪的事情。

该文件看起来像这样:

# User dependent .bash_profile file

# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
  source "${HOME}/.bashrc"
fi

# Add Coretto Java 11 and Windows Python to path
PATH="${PATH}:/c/batch:/c/Program Files/Python310/Scripts/:/c/Program Files/Python310/:/c/Program Files/Amazon Corretto/jdk11.0.16_9/bin"

记得将

C:\
更改为
/c/
,并将所有反斜杠更改为正斜杠。使用冒号分隔路径,而不是分号。用引号将路径引起来。使用
${PATH}
保留所有这些
/bin/
目录的现有路径。目录名称中的空格没问题。

这是我在 Msys2 终端中得到的信息:

StephanPeters@Stephan-HPZBook15G4-Y4E78AV MSYS ~
# java --version
openjdk 11.0.16.1 2022-08-12 LTS
OpenJDK Runtime Environment Corretto-11.0.16.9.1 (build 11.0.16.1+9-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.16.9.1 (build 11.0.16.1+9-LTS, mixed mode)

StephanPeters@Stephan-HPZBook15G4-Y4E78AV MSYS ~
# which java
/c/Program Files/Amazon Corretto/jdk11.0.16_9/bin/java

StephanPeters@Stephan-HPZBook15G4-Y4E78AV MSYS ~
#

Path in use: Msys2


0
投票

您必须专门针对您正在使用的环境的配置文件取消注释

MSYS2_PATH_TYPE=inherit

例如,如果您使用的是 UCRT64 环境,则必须取消注释

MSYS2_PATH_TYPE=inherit
文件中的
ucrt64.ini
,而不是
msys2.ini

© www.soinside.com 2019 - 2024. All rights reserved.