我正在尋找在沒有虛擬機器的情況下在 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,並且我安裝了 readlineCYGWIN 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.oexecute_cmd.o 變數.o copy_cmd.o error.o expr.o flags.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 大號.o bracecompyfunc.o assoc.o 大號.o bracecompyfunc.o assoc.o 大號。 .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 cap/lib/termbuiltins -lglob -lsh -lreadline -lhistory cap/lib/termbu0. /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): reubicación truncada para ajustar: R_X86_64_PC32 contra el símbolo `cygwin_conv_to_full_posix_path' sin definir
收集2:錯誤:ld devolvió el estado de salida 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 版本上不行。解決了