我正在寻找无需虚拟机即可在 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 版本上运行它。已解决