在没有虚拟机的 Windows 上使用 Bash 4.2 吗?

在没有虚拟机的 Windows 上使用 Bash 4.2 吗?

我正在寻找无需虚拟机即可在 Windows 上运行 bash 4.2 的方法。

我已经尝试使用 CygWin,但是可以安装的最新版本是 bash 4.1,并且我没有找到在 CygWin 上安装 bash 4.2 的方法。

这里开发人员说他正在将 bash 4.2 移植到 CygWin,但这已经是两年前写的了。

其他软件如 win-bash 或 MinGW 有旧版本的 bash。

那么,有没有办法在 Windows 上安装 bash 4.2?

编辑:

CygWin 回复:它适用于 64 位。但不支持 32 位,我们仍在等待该更新(启用 WORDEXP_OPTION 来修复 wordexp(3) 并启用对可加载内置函数的支持)...

您或许可以在 cygwinports 中找到 32 位版本。

但是我刚刚在 CygWin 上发现了 64 位的 Bash 4.1。 http://cygwin.com/cgi-bin2/package-grep.cgi?grep=bash&arch=x86_64

那我不明白。:S

更新CygWin 告诉我我需要自己安装 Bash 4.2

编辑2:选项:在 CygWin 上安装 Bash 4.2:

我有 $ gcc --version -> gcc (GCC) 4.8.2,$ make --version -> GNU Make 4.0,并且我在CygWin 64位,然后出现此错误:

rm -f bash.exe

gcc -L./builtins -L./lib/readline -L./lib/readline -L./lib/glob -L./lib/tilde -L./lib/sh -L./lib/termcap -g -O2 -o bash.exe shell.o eval.o y.tab.o general.o make_cmd.o print_cmd.o dispose_cmd.o execute_cmd.o variable.o copy_cmd.o error.o expr.o flags.o jobs.o subst.o hashcmd.o hashlib.o mailcheck.o trap.o input.o unwind_prot.o pathexp.o sig.o test.o version.o alias.o array.o arrayfunc.o assoc.o braces.o bracecomp.o bashhist.o bashline.o list.o stringlib.o locale.o findcmd.o redir.o pcomplete.o pcomplib.o syntax.o xmalloc.o -lbuiltins -lglob -lsh -lreadline -lhistory ./lib/termcap/libtermcap.a -ltilde lib/intl/libintl.a -ldl

general.o: 在函数‘make_absolute’中:

/bash-4.2/general.c:630: 引用了“cygwin_conv_to_full_posix_path”而未定义

/bash-4.2/general.c:630:(.text+0xcc9): 重新发送截断以调整:R_X86_64_PC32 与未定义的符号“cygwin_conv_to_full_posix_path”相对

collect2:错误:ld 状态变为 1

Makefile:540:目标“bash.exe”的配方失败

make:*** [bash.exe] 错误 1

更新 2

CygWin 支持的答案:

Bash 4.2 是仍然使用旧的、早已弃用的 cygwin_conv_to_full_posix_path 函数。早就应该将调用改为使用 cygwin_conv_path 或 cygwin_create_path 函数。

最后更新

我可以在 cygwin 32 版本上运行它,但不能在 64 版本上运行它。已解决

相关内容