brew升级后Mac M1设备Tmux分割窗口等功能失效如何排查
tmux 升级后功能异常排查方案
问题定位核心逻辑
你已经排除了tmux自定义配置的问题,故障范围可缩小到shell启动配置异常、tmux二进制损坏、架构兼容问题三类,按以下顺序排查即可:
步骤1:排查shell启动配置问题
tmux新建窗格、新会话时会默认启动登录shell,如果shell的启动配置文件中存在执行后直接退出的逻辑,就会出现窗格刚创建就消失、新会话直接返回[exit]的现象,和你遇到的表现完全一致。
验证方式:执行以下命令,让tmux新会话直接运行echo命令而非默认shell
tmux new-session -s test echo hello
- 如果能正常输出
hello,说明tmux本身完全正常,问题出在shell配置,排查~/.zshrc、~/.bash_profile、~/.profile等启动文件,注释掉近期新增的配置逐一验证即可。 - 如果仍然返回
[exit],继续往下排查。
步骤2:校验tmux二进制完整性
brew升级过程中可能出现二进制损坏的情况,先尝试重新安装tmux:
brew uninstall tmux && brew install tmux
如果重新安装后问题依旧,开启tmux debug模式定位错误:
tmux -vv new-session
执行后会在当前目录生成3份debug日志,查看tmux-server-*.log中的报错信息即可定位具体故障点。
步骤3:M1芯片架构兼容排查
确认你使用的终端为原生arm64版本,未通过Rosetta转译运行:
- 右键访达中的终端/ iTerm2应用,选择「显示简介」,确认「使用Rosetta打开」选项未被勾选
- 执行
arch命令,输出为arm64即为原生架构运行
如果终端是Rosetta转译版本,切换到原生arm64终端后重新安装tmux即可解决兼容问题。
可选:tmux版本降级操作
如果确认是3.2a版本本身的问题,可通过以下步骤降级到3.1c稳定版:
- 新建本地brew tap:
brew tap-new local/tmux - 拉取旧版本tmux到本地tap:
brew extract --version=3.1c tmux local/tmux - 安装旧版本:
brew install local/tmux/tmux@3.1c - 锁定版本避免自动升级:
brew pin tmux@3.1c
内容的提问来源于stack exchange,提问作者Regis Hideki Hattori
相关产品推荐
相关产品推荐

