2012-09-11 69 views
14

Tôi đã nâng cấp rvm lên 1.15.8, sau đó quay lại 1.15.7 sau khi gặp một số vấn đề trong zsh. Sau khi hạ cấp, phiên bản Ruby 1.9+ của tôi đã hoạt động trở lại, nhưng 1.8.7 sẽ không cài đặt lại.rvm không thể cài đặt 1.8.7-p352 trên Mac OS X Mountain Lion

Có hai lỗi mà đang xảy ra:

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 

Nội dung của tập tin đó là:

[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 

và:

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

Hiện đã có một lỗi trong khi chạy làm . Ngừng cài đặt.

và các nội dung của tập tin đó là (chỉ vài dòng đầu tiên bắt đầu với các lỗi):

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’ 

Một trong những ứng dụng Tôi ủng hộ là 1.8.7. Tôi đã chết trong nước. Có vẻ như đây có thể là vấn đề với Mountain Lion so với rvm. ai đó có thể chỉ cho tôi phương hướng đúng không?

CẬP NHẬT:

Tôi đã vượt qua lỗi đầu tiên bằng cách "cài đặt lại" thay vì chỉ "cài đặt". Mặc dù 1.8.7-p352 không có trong danh sách các hồng ngọc được đưa ra bởi lệnh "rvm list rubies".

+0

Bạn có thể đăng bài này trên http://serverfault.com/ hoặc http://superuser.com/ – maxdec

+0

@ Đôi khi tôi trả lời hầu hết các câu hỏi RVM - và hầu hết trong số chúng được đăng ở đây - đăng chúng ở nơi khác sẽ nhiều nhất có thể còn thời gian để có được câu trả lời. – mpapis

Trả lời

33

nó được vấn đề trong việc phát hiện tcl/tk bởi ruby ​​1.8.7, giải pháp là để vô hiệu hóa nó:

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

giải pháp khác khi tcl/tk là cần thiết: https://stackoverflow.com/a/11666019/497756

+0

Tcl/tk là gì? Làm sao tôi biết được tôi sẽ cần chúng? Chỉnh sửa: Tôi chỉ cần tcl và tk khi tôi muốn xây dựng một GUI ruby? (http://rubylearning.com/satishtalim/ruby_tk_tutorial.html) – crispy

+0

nếu bạn không biết chúng là gì thì bạn không cần nó, nó thực sự cũ kỹ và nó hiếm khi được sử dụng như các giao diện rất xấu xí – mpapis

+0

Nó có vẻ giống như một ý tưởng rất xấu để bao gồm những điều này theo mặc định. – tadman

6

Tôi nghĩ tôi kết thúc với hai câu hỏi tương tự về sf ở đây. Vấn đề chính của tôi là tệp tcl.h bao gồm tệp Mountain Lion (vị trí: /usr/include/tcl.h symlinked) không thể giải quyết tham chiếu nội bộ mà nó phải có "X11/Xlib.h". Tôi nghĩ rằng việc cài đặt tcl và tk thông qua homebrew sẽ khắc phục vấn đề bằng cách tạo ra một đường dẫn đến Xlib.h có thể được giải quyết. Vì vậy, tôi chạy:

brew install tcl 

và:

brew install tk 

và:

rvm remove 1.8.7-p352 
rvm install 1.8.7-p352 

và nó làm việc. Nhưng câu trả lời của Michal ở trên cũng có tác dụng đúng như tôi nghĩ. Câu trả lời này sẽ phục vụ để giúp mọi người xây dựng nó cần tcl và tk.

+0

Homebrew dường như không còn tcl và tk nữa. –

+0

'brew cài đặt homebrew/dupes/tcl-tk' nên làm việc, tôi nghĩ. –

Các vấn đề liên quan