2012-09-11 223 views
14

我將rvm升級到1.15.8,然後在zsh中出現問題後回到1.15.7。降級後,我的Ruby 1.9+版本恢復正常,但1.8.7不會再次安裝。rvm無法在Mac OS X上安裝1.8.7-p352 Mountain Lion

有正在發生的兩個錯誤:

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 

出現了,同時運行的信息有誤。停止安裝。

和文件的內容(有錯誤開始只有前幾行):

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。我死在水中。這看起來可能是山獅VS rvm的問題。任何人都可以將我指向正確的方向嗎?

UPDATE:

我得到了這樣做的第一個錯誤「重裝」,而不只是「安裝」。儘管1.8.7-p352不在命令「rvm list rubies」給出的紅寶石列表中。

+0

你應該發佈http://serverfault.com/或http://superuser.com/ – maxdec

+0

@Double我回答了大多數RVM的問題 - 其中大部分都發布在這裏 - 將它們發佈到別處大多數可能會有更長的時間獲得答案。 – mpapis

回答

33

它是在由紅寶石1.8.7檢測的Tcl/Tk的問題,解決的辦法是將其禁用:

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

需要的Tcl/Tk當其它的解決方案:https://stackoverflow.com/a/11666019/497756

+0

什麼是tcl/tk?我怎麼知道我會需要他們?編輯:當我想構建一個紅寶石GUI時,我只需要tcl和tk嗎? (http://rubylearning.com/satishtalim/ruby_tk_tutorial.html) – crispy

+0

如果你不知道他們是什麼,那麼你不需要它,這是非常舊的方式,它很少使用,因爲界面非常醜陋 – mpapis

+0

它看起來像一個非常糟糕的想法,默認包括這些。 – tadman

6

我想在這裏結束了關於sf的兩個類似問題。我的主要問題是tcl.h包含Mountain Lion上的文件(位置:/usr/include/tcl.h symlinked)無法解析它必須使​​用的「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 

和它的工作。但是,米哈爾的回答上面的答案我也認爲是一樣的。這個答案將有助於人們構建需要tcl和tk的應用程序。

+0

自制軟件似乎不再有tcl和tk。 –

+0

'brew install homebrew/dupes/tcl-tk' should work,I think。 –

相關問題