Ошибка установки rbenv / ruby-build для версий ruby ​​1.9.3, 2.2.0, 2.2.5 с инструментами командной строки xcode 12

Версии Ruby ниже 2.3.1 не устанавливаются, когда clang --version12 или больше. Чтобы воспроизвести проблему, сначала загрузите инструменты разработчика командной строки xcode версии 12 через обновление программного обеспечения или протрите свой Mac и установите homebrew:

# homebrew installs version 12 of the command line developer tools as well
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Тогда это не удается:

brew install rbenv
rbenv install 2.2.5

Вывод rbenv install 2.2.5:

Downloading openssl-1.0.2u.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16
Installing openssl-1.0.2u...
Installed openssl-1.0.2u to /Users/kburnett/.rbenv/versions/2.2.5

Downloading ruby-2.2.5.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.5.tar.bz2
Installing ruby-2.2.5...

WARNING: ruby-2.2.5 is past its end of life and is now unsupported.
It no longer receives bug fixes or critical security updates.

ruby-build: using readline from homebrew

BUILD FAILED (Mac OS X 10.15.6 using ruby-build 20200819)

Inspect or clean up the working tree at /var/folders/my/qwq5ncb54svfh_qs70kjh4qc0000gn/T/ruby-build.20200921102602.41313.Eghhn7
Results logged to /var/folders/my/qwq5ncb54svfh_qs70kjh4qc0000gn/T/ruby-build.20200921102602.41313.log

Last 10 log lines:
compiling ../.././ext/psych/yaml/reader.c
compiling ../.././ext/psych/yaml/emitter.c
linking shared-object json/ext/generator.bundle
compiling ../.././ext/psych/yaml/parser.c
installing default psych libraries
linking shared-object bigdecimal.bundle
linking shared-object psych.bundle
linking shared-object nkf.bundle
linking shared-object date_core.bundle
make: *** [build-ext] Error 2

В файле, где написано "Результаты вошли в журнал", сообщается, что было 3 предупреждения и 4 ошибки. Ошибки следующие:

 % grep "error:" /var/folders/my/qwq5ncb54svfh_qs70kjh4qc0000gn/T/ruby-build.20200921102602.41313.log
./openssl_missing.h:71:6: error: conflicting types for 'HMAC_CTX_copy'
./openssl_missing.h:95:5: error: conflicting types for 'EVP_CIPHER_CTX_copy'
./openssl_missing.h:173:5: error: conflicting types for 'BN_rand_range'
./openssl_missing.h:177:5: error: conflicting types for 'BN_pseudo_rand_range'

Суть проблемы на https://gist.github.com/burnettk/04fb637c4ec18f621b2df500dbcec00e.

2 ответа

Burnettk прав насчет изменения Xcode CommandLineTools до версии ниже 12, однако нет необходимости удалять /Library/Developer/CommandLineTools, что может вызвать у вас другие проблемы в вашей среде, если вы используете Xcode изо дня в день.

Сначала откройте Xcode и перейдите в Preferences > Locations, и проверьте, какие параметры у вас есть в Command Line Toolsпадать. Если он у вас есть, выберите Xcode 11.xа затем повторите установку. Просмотр местоположений с выбранными инструментами командной строки Xcode 11.7

Если у вас еще нет этой версии, установите максимальную версию "Инструменты командной строки" ниже 12.0 с https://developer.apple.com/downloads/. Когда вы закончите, вернитесь к настройкам Locations и выберите инструменты, которые вы только что установили, затем повторите установку Ruby.

Это сломалось с выпуском Xcode 12 (16 сентября 2020 г.). Чтобы "исправить" / обойти проблему, если у вас уже есть clang --version сообщая о версии 12, расставьте точки, вы можете sudo rm -rf /Library/Developer/CommandLineToolsа затем перейдите на https://developer.apple.com/downloads/, войдите в систему со своим Apple ID и найдите "Инструменты командной строки для Xcode 11.5" или аналогичные. однажды clang --version сообщает о чем-то 11 точках, это должно снова сработать: rbenv install 2.2.5

Этот обходной путь был первоначально обнаружен bfreezy по адресу https://github.com/rbenv/ruby-build/issues/1353.

Другие вопросы по тегам