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

OpenSSL, RVM, Brew, конфликтующая ошибка

Когда я запускаю brew doctor в терминале: Я получаю следующую ошибку:

Warning: Some keg-only formula are linked into the Cellar.
You may wish to `brew unlink` these brews:

openssl

Если я отсоединяю его, и я набираю требования к rvm: Я получу следующую ошибку.

Checking requirements for osx.
dyld: Library not loaded: @@[email protected]@/openssl/1.0.1f/lib/libssl.1.0.0.dylib
  Referenced from: /usr/local/opt/openssl/bin/openssl
  Reason: image not found
Failed reading certificates path for '/usr/local/opt/openssl/bin/openssl' with return       code: ().
RVM autolibs is now configured with mode '2' => 'check and stop if missing',
please run `rvm autolibs enable` to let RVM do its job or run and read `rvm autolibs [help]`
or visit https://rvm.io/rvm/autolibs for more information.
Requirements installation failed with status: 133.

Когда я запустил brew unlink openssl, версия myssl изменилась с OpenSSL 1.0.1f 6 января 2014 г. to OpenSSL 0.9.8y 5 февраля 2013 г.

Итак, вопрос: Как сделать оба brew Доктора и требования RVM счастливыми? Имея ту же версию OpeenSSL? (Предположения)

4b9b3361

Ответ 1

Попробуйте brew reinstall openssl, затем brew link openssl --force

Ответ 2

Hengjie находится на полпути.

Проблема в том, что OSX поставляется с версией openssl в /usr/bin. Попробуйте следующее:

$ /usr/bin/openssl version

Когда homebrew устанавливает openssl, он установит его в /usr/local/Cellar/openssl, но по умолчанию он не будет создавать ссылки из-за конфликта версий, который он создаст. Чтобы создать ссылки, вам нужно ввести:

$ brew link --force openssl

Это создаст символические ссылки на версию brew, и вы сможете увидеть номер новой версии, набрав это:

$ /usr/local/bin/openssl version

Есть одна окончательная проблема. И это произойдет, если переменная path имеет /usr/bin перед/usr/local/bin. Введите это в:

$ echo $PATH

если вы видите /usr/bin перед/usr/local/bin, вам необходимо обновить свой .bash_profile, чтобы в нем что-то вроде этого:

export PATH="/usr/local/bin:$PATH"

Это будет означать, что новая версия будет использоваться раньше старой.

Предупреждение: пакет brew говорит, что "Mac OS X уже предоставляет это программное обеспечение, а установка другой версии в параллель может вызвать всевозможные проблемы".

Так используйте на свой страх и риск! Я действительно не знаю, что такое "всевозможные проблемы".

Ответ 3

Если бы одна и та же ошибка на Mavericks просто запустилась "brew удалить openssl", тогда "rvm install ruby"

Теперь RVM установит правильную версию OpenSSL.

Ответ 4

или DO ", который открываетс" скопируйте из этого места в "/usr/local/opt/openssl/bin/openssl". затем попробуйте. вещь "/usr/local/opt/openssl/bin/openssl" имеет старый или поврежденный сертификат.

Ответ 5

Это, по-видимому, ключевой момент, о котором нужно знать, я скопировал и вставлял в текстовый документ для последующего использования. Как правило, никаких последствий для вас нет. Если вы собственного программного обеспечения, и для этого требуется эта формула, вам нужно добавить строить переменные:

LDFLAGS:  -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include

Но кто-нибудь думает, что это будет иметь последствия для наших маков вообще? Будет ли лучшая альтернатива, чтобы заставить ссылку на существующие openssl? Или необходимо иметь версию из доморощенного, чтобы правильно настроить среды разработки Ruby. Я очень хочу знать, так как я нахожусь в процессе настройки с целью разработки веб-сайта, и я хочу, чтобы моя среда разработки была как можно более стабильной. Я ценю любые ваши ответы, после семестра unix и множества других исследований, есть еще много чего знать! Но знание - это сила!

Ответ 6

Специально для Мохаве,

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /'

с https://gorails.com/setup/osx/10.14-mojave