Я нахожусь на: OSX 10.11.6, Homebrew версия 0.9.9m OpenSSL 0.9.8zg 14 июля 2015
Я пытаюсь поиграть с dotnetcore и, следуя их инструкциям ,
Я обновил / установил последнюю версию openssl:
> brew install openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2h_1.el_capitan.bottle.tar.gz
Already downloaded: /Users/administrator/Library/Caches/Homebrew/openssl-1.0.2h_1.el_capitan.bottle.tar.gz
==> Pouring openssl-1.0.2h_1.el_capitan.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
/usr/local/etc/openssl/certs
and run
/usr/local/opt/openssl/bin/c_rehash
This formula is keg-only, which means it was not symlinked into /usr/local.
Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
Но когда я пытаюсь связать openssl, я продолжаю сталкиваться с этой ошибкой связывания:
> brew link --force openssl
Warning: Refusing to link: openssl
Linking keg-only OpenSSL means you may end up linking against the insecure,
deprecated system version while using the headers from the Homebrew version.
Instead, pass the full include/library paths to your compiler e.g.:
-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib
Возможность включать флаги компилятора не имеет смысла для меня, так как я не компилирую эти библиотеки, от которых я зависим.
РЕДАКТИРОВАТЬ dotnetcore обновил свои инструкции:
brew update
brew install openssl
ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
brew upgrade openssl
сначала?brew update
иbrew install openssl
. Это пытается установить поддерживаемую версию.Ответы:
Как следует из обновления к другому ответу, обходной путь установки старого brew openssl101 больше не будет работать. Прямой обходной путь см. В этом комментарии к dotnet / cli # 3964 .
Наиболее актуальная часть вопроса скопирована здесь:
Также важно то, что, похоже, Microsoft осведомлена об этой проблеме и имеет оба: а) несколько немедленный план по смягчению, а также б) долгосрочное решение (вероятностное объединение OpenSSL с dotnet).
Еще одна вещь, на которую
/usr/local/opt/openssl/lib
стоит обратить внимание: это место, где варево связано по умолчанию:Если по какой-либо причине вы устанавливаете brew и связываете его в другом месте, то этот путь следует использовать в качестве rpath.
После того, как вы обновите rpath libray System.Security.Cryptography.Native.dylib, вам необходимо перезапустить интерактивный сеанс (т. Е. Закрыть консоль и запустить еще один).
источник
/usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.Security.Cryptography.Native.dylib (No such file or directory)
.dotnet
инструмента. Возможно, вы либо не установили его, либо установили, либо в другое место. Если он установлен и с вашей стороны, вы можете использовать егоwhich dotnet
для поиска.dotnet
. Повторим попытку и вернемся.sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.0/System.Security.Cryptography.Native.OpenSsl.dylib
Вот что сработало для меня:
Благодаря @dorlandode в этой теме https://github.com/Homebrew/brew/pull/597
NB: я использовал это только как временное исправление, пока не смогу потратить время на правильную установку Openssl заново с нуля. Насколько я помню, я провел большую часть дня, отлаживая и испытывая проблемы, прежде чем понял, что лучший способ - вручную установить необходимые мне сертификаты. Пожалуйста, прочитайте ссылку в комментарии @ bouke, прежде чем пытаться это сделать.
источник
/usr/local/bin/openssl
?1.0.2j
на него1.0.2k
из-за различий в версиях. Так что пользователи, будьте осторожны, возможно, вам придется скорректировать пути для текущей версииln -s -f /usr/local/Cellar/openssl/1.0.2k/bin/openssl /usr/local/bin/openssl
этоНи одно из этих решений не работало для меня на OS X El Capitan 10.11.6. Вероятно, потому что OS X имеет нативную версию openssl, которая, как он считает, является превосходной, и поэтому не любит вмешиваться.
Итак, я выбрал большую дорогу и начал все заново ...
Вручную установите и символическую ссылку
Если вы получаете «Нет такого файла или каталога», сделайте это:
cd /usr/local && mkdir src && cd src
Скачать openssl:
Извлечение и CD в:
Скомпилируйте и установите:
Теперь символьная ссылка OS X openssl на ваш новый и обновленный openssl:
Закройте терминал, откройте новый сеанс и убедитесь, что OS X использует ваш новый openssl:
источник
ln -s /usr/local/openssl-1.0.2h/bin/openssl /usr/local/bin/openssl
. После перезапуска сеанса терминала введите,which openssl
чтобы убедиться, что вы используете обновленную версию 1.0.2 (/usr/local/bin/openssl
) вместо встроенной (/usr/bin/openssl
).Просто выполните
brew info openssl
и прочитайте информацию, где написано:источник
brew info openssl
дал такую же полезную информацию для меня. Выполнение предложенной выше команды, а затем запускsource ~/.bash_profile
или открытие нового терминала решили ее для меня.echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc
Если миграция вашего Mac ломает доморощенный:
Я перенес свой Mac, и он отключил все мои домашние установки - в том числе OpenSSL. Это сломалось
gem install
, как я впервые заметил проблему и начал пытаться исправить это.После миллиона решений (при переходе на OSX Sierra - 10.12.5) решение оказалось комично простым:
источник
rm -rf /usr/local/opt/openssl
Перепробовав все, что смог найти и ничего не получилось, я просто попробовал это:
Внутри файла добавлена эта строка.
теперь это работает :)
источник
which openssl
все еще указывает на/usr/bin/openssl
export PATH=/usr/local/bin:$PATH
/usr/local/opt/openssl/bin
, без/openssl
на конце, к передней части PATH, а не конец:PATH=/usr/local/opt/openssl/bin:$PATH
Использование/usr/local/opt/openssl
вместо/usr/local/Cellar/openssl/$version
средств вы будете автоматически поддерживать максимальную версию уточненного в ваших $ PATH без изменить его каждый раз, когда вы обновляете.У меня похожий случай. Мне нужно установить openssl через brew, а затем использовать pip для установки mitmproxy. Я получил ту же жалобу от
brew link --force
. Ниже приведено решение, которое я достиг: (без принудительной связи посредством варки)Это не решает вопрос прямо. Я оставляю однострочник на тот случай, если кто-нибудь использует pip и требует openssl lib.
Примечание:
/usr/local/opt/openssl/lib
пути полученыbrew info openssl
источник
cryptography
. Я пропустилPKG_CONFIG_PATH
переменнуюЭто сработало для меня:
источник
Приведенное выше решение от edwardthesecond сработало и для меня на Сьерре
Другие шаги, которые я делал раньше, были:
установка openssl через brew
добавление openssl к пути, как это предлагает homebrew
источник
По умолчанию homebrew дал мне OpenSSL версии 1.1, а я искал версию 1.0. Это сработало для меня.
Чтобы установить версию 1.0:
Затем я попытался найти символическую ссылку, но это дало мне следующую ошибку:
Наконец связал openssl, чтобы он указывал на версию 1.0 с помощью команды brew switch:
источник
Примечание: это больше не работает из-за https://github.com/Homebrew/brew/pull/612
У меня была такая же проблема сегодня. Я удалил (unbrewed ??) openssl 1.0.2 и установил 1.0.1 также с homebrew. Дотнет новый / восстановить / запустить потом работал нормально.
Установите openssl 101:
brew install homebrew / версии / openssl101. Ссылка
:
ссылка brew --force homebrew / версии / openssl101.
источник
Refusing to link: openssl101 Linking keg-only openssl101 means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl101. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl101/include -L/usr/local/opt/openssl101/lib
У меня была такая же проблема, когда попытка установить более новую версию ruby 2.6.5 https://github.com/kelaberetiv/TagUI/issues/86 помогает мне решить проблему. Это если для macOS каталина версия 10.15.1
В основном я сделал
update and upgrade
homebrew и установил openssl и установил ruby.Затем создайте эти 2 символические ссылки
затем установил ruby 2.6.5
источник
для меня это то, что сработало ...
Я отредактировал ./bash_profile и добавил команду ниже
экспорт PATH = "/ usr / local / opt / openssl / bin: $ PATH"
источник
работает для меня
и я думаю, что это может решить все проблемы, такие как
Failed to connect to raw.githubusercontent.com port 443: Connection refused
источник