How to install latest version of openssl Mac OS X El Capitan

匿名 (未验证) 提交于 2019-12-03 01:47:02

问题:

I have used brew install openssl to download and install openssl v1.0.2f, however, it comes back saying:

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 

And when I do openssl version -a it always gives me:

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" 

How can I replace the old version with the new one? I've searched a lot on how to do this, but the solutions online don't seem to work for me...

回答1:

Only

export PATH=$(brew --prefix openssl)/bin:$PATH in ~/.bash_profile 

has worked for me! Thank you mipadi.



回答2:

Try creating a symlink, make sure you have openssl installed in /usr/local/include first.

ln -s /usr/local/Cellar/openssl/{version}/include/openssl /usr/local/include/openssl 

More info at Openssl with El Capitan.



回答3:

Execute the following commands:

brew update brew install openssl echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile source ~/.bash_profile 

You will have the latest version of openssl installed and accessible from cli (command line/terminal). Since the third command will add export path to .bash_profile, the newly installed version of openssl will be accessible across system restarts.



回答4:

I reached this page when I searched for information about openssl being keg-only. I believe I have understood the reason why Homebrew is taking this action now. My solution may work for you:

  • Use the following command to make the new openssl command available (assuming you have adjusted PATH to put /usr/local/bin before /usr/bin): ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/

  • When compiling with openssl, follow Homebrew's advice and use -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib

  • Alternatively, you can make these settings permanent by putting the following lines in your .bash_profile or .bashrc: export CPATH=/usr/local/opt/openssl/include export LIBRARY_PATH=/usr/local/opt/openssl/lib



回答5:

To replace the old version with the new one, you need to change the link for it. Type that command to terminal.

brew link --force openssl 

Check the version of openssl again. It should be changed.



回答6:

I can't reproduce your issue running El Cap + Homebrew 1.0.x

Upgrade to Homebrew 1.0.x, which was released late in September. Specific changes were made in the way openssl is linked. The project is on a more robust release schedule now that it's hit 1.0.

brew uninstall openssl 
brew update && brew upgrade && brew cleanup && brew doctor 

You should fix any issues raised by brew doctor before proceeding.

brew install openssl 

Note: Upgrading homebrew will update all your installed packages to their latest versions.



回答7:

You can run brew link openssl to link it into /usr/local, if you don't mind the potential problem highlighted in the warning message. Otherwise, you can add the openssl bin directory to your path:

export PATH=$(brew --prefix openssl)/bin:$PATH 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!