Macos 如何安装最新版本的openssl Mac OS X El Capitan
我曾使用Macos 如何安装最新版本的openssl Mac OS X El Capitan,macos,openssl,homebrew,Macos,Openssl,Homebrew,我曾使用brew安装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_reha
brew安装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版本-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"
如何用新版本替换旧版本?关于如何实现这一点,我已经搜索了很多,但联机解决方案似乎对我不起作用…如果您不介意警告消息中突出显示的潜在问题,您可以运行
brew link openssl
将其链接到/usr/local
。否则,您可以将openssl bin目录添加到您的路径:
export PATH=$(brew --prefix openssl)/bin:$PATH
要用新版本替换旧版本,需要更改其链接。键入该命令到终端
brew link --force openssl
再次检查openssl的版本。它应该被更改。运行El Cap+Homebrew 1.0.x时,我无法重现您的问题
升级至9月底发布的自制1.0.x。该项目现在已经达到1.0版本,发布进度更加稳健
brew uninstall openssl
在继续操作之前,您应该修复brew doctor提出的任何问题
brew install openssl
注意:升级homebrew会将所有安装的软件包更新为最新版本。仅限
export PATH=$(brew --prefix openssl)/bin:$PATH in ~/.bash_profile
他为我工作!
谢谢你,mipadi。当我搜索有关openssl仅为keg的信息时,我到达了这个页面。我相信我已经理解了Homebrew现在采取这一行动的原因。我的解决方案可能适用于您:
- 使用以下命令使新的openssl命令可用(假设已将路径调整为在/usr/bin之前放置/usr/local/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_配置文件或.bashrc中放置以下行,使这些设置永久化:
导出CPATH=/usr/local/opt/openssl/include 导出库路径=/usr/local/opt/openssl/lib
/usr/local/include
中安装了openssl
ln -s /usr/local/Cellar/openssl/{version}/include/openssl /usr/local/include/openssl
更多信息请访问。执行以下命令:
brew update
brew install openssl
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
您将安装最新版本的openssl,并可从cli(命令行/终端)访问。由于第三个命令将把导出路径添加到
.bash\u profile
,新安装的openssl版本将可以在系统重新启动时访问。这是一个老问题,但在今天的上下文中仍然回答它,因为上面的许多答案现在可能不起作用
问题是路径仍然指向旧版本。可以提供两种解决方案:
brew卸载openssl
,然后重新安装新版本:brew安装openssl
echo'export PATH=“/usr/local/opt/openssl/bin:$PATH”>~/.bash\u profile
此命令解决了我在github CI作业和virtualbox上的问题
brew安装openssl@1.1
cp/usr/local/opt/openssl@1.1/lib/pkgconfig/*.pc/usr/local/lib/pkgconfig/
在brew链接之后
,至少对我来说,OpenSSL似乎已更新。但有些事情并不“正确”。我执行了brew doctor
,其中有一个关于只桶公式的警告,这是所有输出的子字符串:只桶公式提供的二进制文件可能会用其他奇怪的结果覆盖系统二进制文件。
并建议brew取消openssl的链接。应该忽略吗?@Knaak这在自制0.9.9的El Capitan上不起作用。它响应消息警告:拒绝链接:openssl
。否;如果你这样做,自制软件会对你大喊大叫。请参阅,以了解有关仅桶依赖关系的解释。如上所述,您可以使用--force
进行覆盖,但您应该了解这样做的潜在后果。您解决了这个问题吗?@ksl Nope!:/没有一个答案对我有用。不,不要这样做。它将升级所有内容。添加了有关更新的免责声明。随着时间的推移,将自制软件升级到1.x版将变得越来越必要。据我所知,该问题已在自制1.x中解决。谢谢。在版本1.x上,brew upgrade
并不能升级所有内容?@b甚至可能有必要克服其他库问题?我为像我这样的人找到了util,他们阅读了关于如何链接上一个openssl的所有内容。这也是我在osX Sierra上唯一有效的方法,没有禁用SIP。谢谢您的链接已不存在。@Hauke已更新!这解决了我的问题,在尝试了一个多小时的其他方法后,谢谢你。真是太棒了!当我运行$openssl版本
时,我得到openssl 0.9.8zh 2016年1月14日
但当我运行$brew安装openssl
时,我得到警告:openssl 1.0.2l已安装
。这是否意味着我安装了两个版本?我想,您的系统中现在有两个版本的openssl。一个默认用于mac,另一个使用brew安装。执行上述第三和第四个命令,从命令行访问openssl的最新版本(1.0.2l)。关键是使用/usr/local/opt/openssl/bin/openssl
而不是/usr/bin/openssl
。
brew update
brew install openssl
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile