Ответ 1
это проблема при обнаружении tcl/tk с помощью ruby 1.8.7, решение состоит в том, чтобы отключить его:
rvm reinstall 1.8.7 --without-tcl --without-tk
другое решение, когда требуется tcl/tk: fooobar.com/questions/94346/...
Я обновил rvm до 1,15.8, а затем вернулся к 1.15.7 после некоторых проблем в zsh. После понижения, мои версии 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. Может ли кто-нибудь указать мне в правильном направлении?
UPDATE:
Я преодолел первую ошибку, выполнив "переустановить" вместо "установить". Хотя 1.8.7-p352 не было в списке рубинов, данных командой "rvm list rubies".
это проблема при обнаружении tcl/tk с помощью ruby 1.8.7, решение состоит в том, чтобы отключить его:
rvm reinstall 1.8.7 --without-tcl --without-tk
другое решение, когда требуется tcl/tk: fooobar.com/questions/94346/...
Думаю, у меня были два похожих вопроса по sf здесь. Моя основная проблема заключалась в том, что файл tcl.h include на Mountain Lion (location:/usr/include/tcl.h symlinked) не смог решить внутреннюю ссылку, которую он имел на "X11/Xlib.h". Я думал, что установка tcl и tk через homebrew устранит проблему, создав путь к Xlib.h, который может быть разрешен. Итак, я побежал:
brew install tcl
и
brew install tk
и
rvm remove 1.8.7-p352
rvm install 1.8.7-p352
и это сработало. Но ответ Михал выше, как я думаю, работал бы так же хорошо. Этот ответ будет помогать людям создавать его, которые нуждаются в tcl и tk.