Ответ 1
только
export PATH=$(brew --prefix openssl)/bin:$PATH in ~/.bash_profile
работал у меня! Спасибо, мипади.
Я использовал brew install openssl
для загрузки и установки openssl v1.0.2f, однако он возвращается, говоря:
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 version -a
, он всегда дает мне:
OpenSSL 0.9.8zg 14 July 2015
built on: Jul 31 2015
platform: darwin64-x86_64-llvm
options: bn(64,64) md2(int) rc4(ptr,char) des(idx,cisc,16,int) blowfish(idx)
compiler: -arch x86_64 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O3 -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DMD32_REG_T=int -DOPENSSL_NO_IDEA -DOPENSSL_PIC -DOPENSSL_THREADS -DZLIB -mmacosx-version-min=10.6
OPENSSLDIR: "/System/Library/OpenSSL"
Как заменить старую версию на новую? Я много искал, как это сделать, но решения в Интернете, похоже, не работают для меня...
только
export PATH=$(brew --prefix openssl)/bin:$PATH in ~/.bash_profile
работал у меня! Спасибо, мипади.
Выполните следующие команды:
brew update
brew install openssl
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
У вас будет установлена последняя версия openssl, доступная из cli (командная строка/терминал). Поскольку третья команда добавит путь экспорта в .bash_profile
, только что установленная версия openssl будет доступна после перезапуска системы.
Попробуйте создать символическую ссылку, сначала убедитесь, что у вас установлен openssl в /usr/local/include
.
ln -s /usr/local/Cellar/openssl/{version}/include/openssl /usr/local/include/openssl
Больше информации на Openssl с El Capitan.
Я достиг этой страницы, когда искал информацию о том, что openssl является кег-только. По-моему, я понял причину, почему Homebrew предпринимает это действие сейчас. Мое решение может работать для вас:
Используйте следующую команду, чтобы сделать новую команду openssl доступной (если вы скорректировали PATH для установки /usr/local/bin до/usr/bin):
ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/
При компиляции с помощью openssl следуйте советам Homebrew и используйте
-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib
Кроме того, вы можете сделать эти настройки постоянными, поместив следующие строки в ваш .bash_profile или .bashrc:
export CPATH=/usr/local/opt/openssl/include
export LIBRARY_PATH=/usr/local/opt/openssl/lib
Я не могу воспроизвести вашу проблему с помощью El Cap + Homebrew 1.0.x
Обновление до Homebrew 1.0.x, выпущенного в конце сентября. Конкретные изменения были сделаны в том, как открывается openssl. Теперь проект находится на более надежном графике выпуска, когда он достиг 1.0.
brew uninstall openssl
brew update && brew upgrade && brew cleanup && brew doctor
Прежде чем продолжить, вы должны исправить любые проблемы, поднятые brew doctor
.
brew install openssl
Примечание. Обновление homebrew обновит все установленные вами пакеты до последних версий.
Чтобы заменить старую версию новой, вам нужно изменить ссылку для нее. Введите эту команду в терминал.
brew link --force openssl
Еще раз проверьте версию openssl. Он должен быть изменен.
Вы можете запустить brew link openssl
, чтобы связать его с /usr/local
, если вы не возражаете против потенциальной проблемы, выделенной в предупреждающем сообщении. В противном случае вы можете добавить каталог bin openssl в свой путь:
export PATH=$(brew --prefix openssl)/bin:$PATH