前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mac10.11升级安装openssl

Mac10.11升级安装openssl

作者头像
freesan44
发布2018-09-05 15:54:35
1.5K0
发布2018-09-05 15:54:35
举报
文章被收录于专栏:freesan44

首先,来看看我们的openssl的版本和目录

代码语言:javascript
复制
$ openssl version

OpenSSL 0.9.8zh 14 Jan 2016

$ which openssl

/usr/local/bin/openssl

通过上面的查看,明显我们的版本号太低了,于是google了下,找到了http://apple.stackexchange.com/questions/126830/how-to-upgrade-openssl-in-os-x

按照上面的步骤,我们首先更新homebrew

代码语言:javascript
复制
$ brew update

Error: Cowardly refusing to `sudo brew update`

You can use brew with sudo, but only if the brew executable is owned by root.

However, this is both not recommended and completely unsupported so do so at

your own risk.

bogon:Downloads user$ brew update

Error: The /usr/local directory is not writable.

Even if this directory was writable when you installed Homebrew, other

software may change permissions on this directory. Some versions of the

"InstantOn" component of Airfoil or running Cocktail cleanup/optimizations

are known to do this.

You should probably change the ownership and permissions of /usr/local

back to your user account.

  sudo chown -R $(whoami):admin /usr/local

很不幸,我们在更新的时候遇到了一个错误,好在homebrew有错误提醒,我们按照提醒执行下面命令,继续安装。

代码语言:javascript
复制
$ sudo chown -R $(whoami):admin /usr/local

$ brew update

Updated Homebrew from e3986e9 to 21ce7a5.

==> Migrating Homebrew to v0.9.9

...

看到这个信息,就是成功的在更新了,这个过程可能比较久点。更新完之后,我们开始通过homebrew安装openssl。

代码语言:javascript
复制
$ brew install openssl

==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2h.el_capitan.b

######################################################################## 100.0%

...

==> Summary

?  /usr/local/Cellar/openssl/1.0.2h: 1,691 files, 12M

当最后显示?那个标志,说明我们成功的将openssl安装到/usr/local/Cellar/openssl/1.0.2h

不过,我们还有最后一步,那就是当我们使用openssl时,使用的是我们用homebrew新下载的openssl。为了达到这个目的,我们有两种方法。

第一种:

将homebrew下载的openssl软链接到/usr/bin/openssl目录下。这里,我们先将它保存一份老的,然后再软链接新下载的。

代码语言:javascript
复制
$ mv /usr/bin/openssl /usr/bin/openssl_old

mv: rename /usr/bin/openssl to /usr/bin/openssl_old: Operation not permitted

$ ln -s /usr/local/Cellar/openssl/1.0.2h/bin/openssl /usr/bin/openssl

ln: /usr/bin/openssl: Operation not permitted

Operation not permitted提示没有权限操作,对/usr/bin目录下的东西,我已经遇到过几次这个问题了,于是继续google,在stackoverflow上找到了Operation Not Permitted when on root El capitan (rootless disabled)

重启系统,当启动的时候我们同时按下cmd+r进入Recovery模式,之后选择实用工具 => 终端,在终端输入如下命令,接口文件系统的锁定,并且重启电脑:

代码语言:javascript
复制
$ csrutil disable

$ reboot

最后,我们执行前面两个命令,查看版本。

代码语言:javascript
复制
$ mv /usr/bin/openssl /usr/bin/openssl_old

$ ln -s /usr/local/Cellar/openssl/1.0.2h/bin/openssl /usr/bin/openssl

$ openssl version

OpenSSL 1.0.2h  3 May 2016

这样,我们的openssl升级成功了。不过,为了安全起见,我还是重新启动电脑,然后重新开启了csrutil

第二种:

在操作完前面一种方法之后,我发现了一个更简单的方式,那就是直接将openssl软链接到/usr/local/bin/openssl

如果/usr/local/bin/openssl下存在,则先删除 /usr/local/bin/openssl

代码语言:javascript
复制
$ rm /usr/local/bin/openssl

将以前通过homebrew下载的1.0.2e版本的openssl链接到/usr/local/bin/openssl

代码语言:javascript
复制
$ ln -s /usr/local/Cellar/openssl/1.0.2e/bin/openssl /usr/local/bin/openssl

$ openssl 

OpenSSL 1.0.2e 3 Dec 2015

总结

主要记录了安装openssl过程中遇到的一些问题,同时也知道当如果对/usr/bin类似文件目录无操作权限的时候怎么解锁文件系统。当然,最好是将命令通过ln链接到/usr/local/bin,这个目录下的权限苹果还是开放给我的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.07.01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如果/usr/local/bin/openssl下存在,则先删除 /usr/local/bin/openssl
  • 将以前通过homebrew下载的1.0.2e版本的openssl链接到/usr/local/bin/openssl
    • 总结
    相关产品与服务
    SSL 证书
    腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档