Подтвердить что ты не робот

Обновление Йосемити сломало ruby.h

С момента обновления до Yosemite я получаю эту ошибку, пытаясь построить что-нибудь, что включает ruby.h:

In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby.h:33:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby/ruby.h:24:10: fatal error: 'ruby/config.h' file not found
#include "ruby/config.h"
         ^
1 error generated.
make[1]: *** [objects/if_ruby.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [first] Error 2

И, конечно, /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby/config.h действительно отсутствует.

$ ls -laF /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby/
total 72
drwxr-xr-x  21 root  wheel    714 Jul 29 21:56 ./
drwxr-xr-x   5 root  wheel    170 Jul 29 21:56 ../
drwxr-xr-x   7 root  wheel    238 Jul 29 21:56 backward/
-rw-r--r--   2 root  wheel   3360 Sep 21 15:25 debug.h
-rw-r--r--   2 root  wheel   5553 Sep 21 15:25 defines.h
-rw-r--r--   2 root  wheel    881 Sep 21 15:25 digest.h
-rw-r--r--   2 root  wheel   7628 Sep 21 15:25 dl.h
-rw-r--r--   2 root  wheel  14123 Sep 21 15:25 encoding.h
-rw-r--r--   2 root  wheel  32904 Sep 21 15:25 intern.h
-rw-r--r--   2 root  wheel   5869 Sep 21 15:25 io.h
-rw-r--r--   2 root  wheel   4522 Sep 21 15:25 missing.h
-rw-r--r--   2 root  wheel  37617 Sep 21 15:25 oniguruma.h
-rw-r--r--   2 root  wheel   1502 Sep 21 15:25 re.h
-rw-r--r--   2 root  wheel    890 Sep 21 15:25 regex.h
-rw-r--r--   2 root  wheel  49734 Sep 21 15:25 ruby.h
-rw-r--r--   2 root  wheel   4651 Sep 21 15:25 st.h
-rw-r--r--   2 root  wheel    374 Sep 21 15:25 subst.h
-rw-r--r--   2 root  wheel   1102 Sep 21 15:25 thread.h
-rw-r--r--   2 root  wheel   2139 Sep 21 15:25 util.h
-rw-r--r--   2 root  wheel   1968 Sep 21 15:25 version.h
-rw-r--r--   2 root  wheel   1794 Sep 21 15:25 vm.h

Не удалось ли установить файл? Является ли Yosemite только отправкой с разбитым файлом заголовков Ruby?

Какой лучший способ исправить это? Могу ли я просто распаковать исходный код там, чтобы получить правильные заголовки?

4b9b3361

Ответ 1

Одно замечание: я столкнулся с этой проблемой после перехода на "OS X El Capitan". Я установил инструменты командной строки, запустив "xcode-select -install". После этого моя рубиновая среда сборки снова начала работать.

Ответ 2

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby
sudo ln -s ../universal-darwin15/ruby/config.h ./config.h

обновляет ответ Николая Ципанова с 2014-10-18 годов.

Ответ 3

Для тех, у кого уже установлен Xcode с сайта разработчиков Apple, запуск xcode-select --install не работает, поскольку он скажет, что Xcode уже установлен (Xcode уже поставляется с приложенным CommandLineTools).

В моем случае я исправил это, загрузив соответствующий CommandLineTools из того же места, выполнив его, затем перейдя в /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg и выполнив его тоже.

Ответ 5

Если вы используете Homebrew, brew install ruby - это быстрый способ обхода (он дает вам совершенно новую рубиновую установку, отличную от той, что есть в Xcode).

Ответ 6

Попробуйте следующее:

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby
sudo ln -s ../universal-darwin13/ruby/config.h ./config.h

Ответ 7

Xcode каким-то образом перепутался.

Я открыл Xcode (который я никогда не делал иначе), и он жаловался на всевозможные недостающие компоненты. Поэтому я позволил ему двигаться дальше и исправить себя, и теперь все хорошо.

Подходит для CDub в комментариях к OP для указания на это как на потенциальный источник странности.

Ответ 8

Исправлено, указывая на правильный путь для инструментов разработчика Xcode.

Ошибка перед (обратите внимание на путь к Xcode711.app вместо Xcode.app)

/Applications/Xcode711.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby/ruby.h:24:10:

Ran

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer