问题描述
我将 rvm 升级到 1.15.8,然后在 zsh 出现一些问题后又降到了 1.15.7.降级后,我的 Ruby 1.9+ 版本恢复正常,但 1.8.7 不会再次安装.
I upgraded rvm to 1.15.8, then went back down to 1.15.7 after having some problems in zsh. After downgrading, my Ruby 1.9+ versions went back in fine, but 1.8.7 won't install again.
发生了两个错误:
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 时出现错误.停止安装.
There has been an error while running make. Halting the installation.
并且该文件的内容是(仅以错误开头的前几行):
and the contents of that file are (only the first few lines beginning with the errors):
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 的问题.有人能指出我正确的方向吗?
One of the applications I support is 1.8.7. I am dead in the water. This looks like it might be a problem with Mountain Lion vs. rvm. Can anyone point me in the right direction?
更新:
我通过重新安装"而不是安装"克服了第一个错误.即使 1.8.7-p352 不在命令rvm list rubies"给出的红宝石列表中.
I got over the first error by doing "reinstall" instead of just "install". Even though 1.8.7-p352 was not in the list of rubies given by the command "rvm list rubies".
推荐答案
ruby 1.8.7检测tcl/tk有问题,解决方法是禁用:
it is problem in detecting tcl/tk by ruby 1.8.7, the solution is to disable it:
rvm reinstall 1.8.7 --without-tcl --without-tk
需要 tcl/tk 时的另一种解决方案:https://stackoverflow.com/a/11666019/497756
the other solution when tcl/tk is needed: https://stackoverflow.com/a/11666019/497756
这篇关于rvm 无法再在 Mac OS X Mountain Lion 上安装 1.8.7-p352的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!