我正在尝试更新我的 macOS 中的软件sdman
但我收到 bash outadted 版本错误。
rajkumar.natarajan$ sdk update
An outdated version of bash was detected on your system!
We recommend upgrading to bash 4.x, you have:
3.2.57(1)-release
Need to use brute force to replace candidates...
但是 bash 版本已经是最新的了。
rajkumar.natarajan$ which bash
/usr/local/bin/bash
rajkumar.natarajan$ bash --version
GNU bash, version 5.0.11(1)-release (x86_64-apple-darwin16.7.0)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
sdman
正在查看/bin/bash
哪个是 3.2.57 版本,因为 macos 不能附带比它更新的任何东西。资源
您已经安装了现代版本的 bash,但还没有替换
/bin/bash
它。我真的不建议这样做,因为它可能会破坏一些遗留脚本/程序(不太可能但可能)。我的建议是忽略该警告。这是警告您,因为 bash v3.2 通常会受到shellshock漏洞的影响,但 Apple 已在其 Bash v3.2 版本中修补了此漏洞。
如果您无法忽略该警告并且真的想冒险更新您的
/bin/bash
我会将其移动到备份位置并将您的新 bash 符号链接到它。但为了做到这一点,您需要绕过 SIP
要启用或禁用系统完整性保护,您必须引导至恢复操作系统并从终端运行 csrutil(1) 命令。
$ csrutil disable
您可以通过这种方式强制更新到最新版本: