专栏首页freesan44Mac10.11升级安装openssl

Mac10.11升级安装openssl

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

$ 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

$ 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有错误提醒,我们按照提醒执行下面命令,继续安装。

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

$ brew update

Updated Homebrew from e3986e9 to 21ce7a5.

==> Migrating Homebrew to v0.9.9

...

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

$ 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目录下。这里,我们先将它保存一份老的,然后再软链接新下载的。

$ 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模式,之后选择实用工具 => 终端,在终端输入如下命令,接口文件系统的锁定,并且重启电脑:

$ csrutil disable

$ reboot

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

$ 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

$ rm /usr/local/bin/openssl

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

$ 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,这个目录下的权限苹果还是开放给我的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • iOS中URL编码那些事

    在iOS程序中,访问一些HTTP/HTTPS的资源服务时,如果url中存在中文或者特殊字符时,会导致无法正常的访问到资源或服务,想要解决这个问题,需要对url进...

    freesan44
  • python 算法开发笔记

    freesan44
  • SourceTree使用技巧

    SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和S...

    freesan44
  • 安卓还能火多久?

    时代在变,没有一成不变的东西,Android能火多久?我们还是先来分析一下Android为什么能火。不是Android手机便宜所以就火。那为什么Nokia的塞班...

    程序员互动联盟
  • 截屏工具千千万,用了这个不舍得换

    值此之际,新开张一个小栏目以作庆贺 — 万事(事物)屋,分享日常小工具,方便工作和生活。目标是一周一会,浏览一分钟,加快效率五分钟。

    生信宝典
  • 旅游业休克:“云旅游+直播买货”急救

    在国外,欧洲最大旅游公司途易不堪疫情重创计划裁员8000人,裁员数量占到了其员工总数的10%以上。同时,东京工商调查的统计显示:疫情导致的破产东京企业数量在4月...

    刘旷
  • Nutch源码阅读进程4---parseSegment

    前面依次看了nutch的准备工作inject和generate部分,抓取的fetch部分的代码,趁热打铁,我们下面来一睹parse即页面解析部分的代码,这块代码...

    JackieZheng
  • 浅谈内网端口转发

    在渗透测试过程中,我们经常会用到端口转发,利用代理脚本将内网的流量代理到本地进行访问,这样极大的方便了我们对内网进行横向渗透。最常见的端口转发工具不限于以下几款...

    FB客服
  • Android指纹识别,提升APP用户体验,从这里开始!

    指纹识别大家都不陌生,现在比较新的安卓手机大多都已经支持面部识别了,指纹识别更是主流安卓手机的标配功能。这两个功能可以说用过都说好,确实是方便快捷。

    Android技术干货分享
  • 2.5 Linux(Ubuntu18.04)安装数据库PostgreSQL

    王小雷

扫码关注云+社区

领取腾讯云代金券