簡體   English   中英

rvm無法再在Mac OS X Mountain Lion上安裝1.8.7-p352

[英]rvm can no longer install 1.8.7-p352 on Mac OS X Mountain Lion

我將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 vs. rvm的一個問題。 誰能指出我正確的方向?

更新:

我通過“重新安裝”而不僅僅是“安裝”來解決第一個錯誤。 即使1.8.7-p352不在命令“rvm list rubies”給出的紅寶石列表中。

通過ruby 1.8.7檢測tcl / tk是個問題,解決方法是禁用它:

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

需要tcl / tk時的另一個解決方案: https//stackoverflow.com/a/11666019/497756

我想我在這里有兩個類似的問題。 我的主要問題是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的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM