我在 10.15 Catalina 上安装了 Mac Ports 及其 bash 版本,但当我打开终端时,仍然看到 Apple 的旧 bash 版本,并且我已安装的所有 Mac 端口都不见了。它们在那里,但只在新 bash 版本中。
(1)在Apple的“系统偏好设置”的“用户和组”的“高级”部分中,我插入了Mac Ports bash路径/opt/local/bin/bash
,但它没有任何效果。
(2)将终端偏好设置更改为/opt/local/bin/bash
(参见下面 Tim Kennedy 的建议)也没有任何效果。
这是应用这两项更改之后的情况:
$ echo $BASH_VERSION
5.2.32(1)-release
$ bash -version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)
Copyright (C) 2007 Free Software Foundation, Inc.
$ which bash
/bin/bash
还有一篇相关文章 «再次… bash 版本 mac 没有变化»,但它涵盖的是 Homebrew 版本而不是 Mac Ports,而且也没有解决这个问题。但它确实包含了一些其他有用的信息。
(3)应用上述文章的解决方案也无效:
$ chsh -s /opt/local/bin/bash
Changing shell for admin.
Password for admin:
chsh: /opt/local/bin/bash: non-standard shell
$ which bash
/bin/bash
(4)编辑文件的建议/etc/shells
也没有效果。
最后,Marc Wilson 关于 $PATH 的建议(见下文)让我找到了解决方案。我/etc/paths
最初的想法是这样的:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
当我将 Mac Ports 目录放在/opt/local/bin
Apple 的 bash 位置之前时/bin
,使用sudo vi /etc/paths
,我终于成功了。现在,打开终端时,我得到:
$ echo $BASH_VERSION
5.2.32(1)-release
$ bash -version
GNU bash, version 5.2.32(1)-release (x86_64-apple-darwin19.6.0)
$ which bash
/opt/local/bin/bash
$ figlet it works
_ _ _
(_) |_ __ _____ _ __| | _____
| | __| \ \ /\ / / _ \| '__| |/ / __|
| | |_ \ V V / (_) | | | <\__ \
|_|\__| \_/\_/ \___/|_| |_|\_\___/
感谢大家!