macOS 14升级后man为何默认使用系统自带less而非Homebrew版本?
macOS 14升级后man命令默认用系统less而非Homebrew版本的问题
现象总结
- 用Homebrew安装了最新版less(如
less 643),升级到macOS 14后,执行man man按V查看版本,显示的是系统自带的less 581.2 - 手动导出
MANPAGER=less后,man会调用Homebrew安装的新版本less - 取消
MANPAGER导出后,在less中执行! echo $PATH,可见Homebrew的less路径排在/usr/bin/less之前,但man仍优先选择系统版本
原因说明
macOS 14(Sonoma)调整了man命令的默认分页器选择逻辑:
- 此前的macOS版本中,
man会直接从PATH中查找less,优先使用优先级更高的版本 - Sonoma中,
man默认优先调用系统内置的/usr/bin/less,即使PATH中存在第三方的高优先级版本 - 这是系统层面的行为变更,并非
PATH配置错误或Homebrew安装异常
其他用户反馈
不少升级到Sonoma的用户都遇到了相同问题,不仅是less,诸如vim这类第三方工具也无法被man默认调用,必须手动设置MANPAGER或PAGER才能切换到第三方版本。
解决办法
如果不想每次手动导出MANPAGER,可以将配置添加到shell配置文件中(如~/.zshrc或~/.bashrc):
export MANPAGER=less
这是目前最直接且无副作用的解决方式,不存在深层系统问题,只是系统默认行为的正常变更。
内容的提问来源于stack exchange,提问作者11th Hour Worker
相关产品推荐
相关产品推荐

