在 Windows 10 上使用 MSYS2 64 位版本 20161025...
我无法让 msys2 识别 Windows 路径中的程序。例如,使用 Windows 安装 Go 版本 1.8.3 后,安装程序:(1) Cygwin 找到 go.exe (2) Windows 命令提示符找到 go.exe,但 (3) MSYS2 找不到。
奔跑
msys2_shell.cmd -use-full-path
或
取消注释
MSYS2_PATH_TYPE=inherit
in msys2.ini
(可以在MSYS2的安装目录中找到)。
有关 inherit
标志的相关 GitHub 问题。
我刚刚将我想要从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 ~
#
您必须专门针对您正在使用的环境的配置文件取消注释
MSYS2_PATH_TYPE=inherit
。
例如,如果您使用的是 UCRT64 环境,则必须取消注释
MSYS2_PATH_TYPE=inherit
文件中的 ucrt64.ini
,而不是 msys2.ini
。