rvm无法再在Mac OS X Mountain Lion上安装1.8.7-p352

我将rvm升级到1.15.8,然后在zsh中遇到一些问题后又回到了1.15.7。 降级后,我的Ruby 1.9+版本恢复正常,但1.8.7将无法再次安装。

发生了两个错误:

Error running 'patch -F 25 -p1 -N -f <"/Users/me/.rvm/patches/ruby/1.8.7/stdout-rouge-fix.patch"', please read /Users/me/.rvm/log/ruby-1.8.7-p352/patch.apply.stdout-rouge-fix.log 

该文件的内容是:

 [2012-09-11 01:05:59] patch -F 25 -p1 -N -f <"/Users/me/.rvm/patches/ruby/1.8.7/stdout-rouge-fix.patch" patching file lib/mkmf.rb Hunk #1 FAILED at 201. 1 out of 1 hunk FAILED -- saving rejects to file lib/mkmf.rb.rej 

和:

 Error running 'make ', please read /Users/me/.rvm/log/ruby-1.8.7-p352/make.log 

运行make时出错。 暂停安装。

并且该文件的内容是(只有以错误开头的前几行):

 Fail to find [tclConfig.sh, tkConfig.sh] Use MacOS X Frameworks. Find Tcl/Tk libraries. Make tcltklib.so which is required by Ruby/Tk. gcc-4.2 -I. -I../.. -I../../. -I../.././ext/tk -DHAVE_RB_SAFE_LEVEL -DHAVE_RB_HASH_LOOKUP -DHAVE_RB_PROC_NEW -DHAVE_RB_OBJ_TAINT -DHAVE_ST_PTR -DHAVE_ST_LEN -DRUBY_VERSION=\"1.8.7\" -DRUBY_RELEASE_DATE=\"2011-06-30\" -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -DWITH_TCL_ENABLE_THREAD=0 -fno-common -g -O2 -fno-common -pipe -fno-common -c stubs.c In file included from stubs.c:10: /usr/include/tk.h:78:23: error: X11/Xlib.h: No such file or directory In file included from stubs.c:10: /usr/include/tk.h:549: error: expected declaration specifiers or '...' before 'Window' /usr/include/tk.h:549: error: 'Window' declared as function returning a function /usr/include/tk.h:552: error: expected declaration specifiers or '...' before 'XEvent' /usr/include/tk.h:561: error: expected specifier-qualifier-list before 'Tk_ClassCreateProc' /usr/include/tk.h:655: error: expected specifier-qualifier-list before 'Bool' /usr/include/tk.h:677: error: expected specifier-qualifier-list before 'Bool' /usr/include/tk.h:756: error: expected specifier-qualifier-list before 'Display' /usr/include/tk.h:902: error: expected declaration specifiers or '...' before 'XPoint' /usr/include/tk.h:996: error: expected declaration specifiers or '...' before 'Display' 

我支持的其中一个应用程序是1.8.7。 我死在水里。 看起来这可能是Mountain Lion与rvm的问题。 谁能指出我正确的方向?

更新:

我通过“重新安装”而不仅仅是“安装”来解决第一个错误。 尽管1.8.7-p352不在命令“rvm list rubies”给出的ruby列表中。

通过ruby 1.8.7检测tcl / tk是个问题,解决方法是禁用它:

 rvm reinstall 1.8.7 --without-tcl --without-tk 

当需要tcl / tk时的另一个解决方案: https : //stackoverflow.com/a/11666019/497756

我想我最近在sf上有两个类似的问题。 我的主要问题是Mountain Lion上的tcl.h包含文件(位置:/usr/include/tcl.h符号链接)无法解析它对“X11 / Xlib.h”的内部引用。 我认为通过自制软件安装tcl和tk可以通过生成可以解决的Xlib.h路径来解决问题。 所以我跑了:

 brew install tcl 

和:

 brew install tk 

和:

 rvm remove 1.8.7-p352 rvm install 1.8.7-p352 

它工作。 但是我认为Michal上面的回答也会起作用。 这个答案将有助于人们构建需要tcl和tk的东西。