在 arm64 模式下在 M1 Mac 上运行 tmux
Posted
技术标签:
【中文标题】在 arm64 模式下在 M1 Mac 上运行 tmux【英文标题】:Running tmux on an M1 Mac in arm64 mode 【发布时间】:2021-04-02 12:23:10 【问题描述】:所以我通过 arm64 homebrew 安装了 tmux。
我最初为 arm64 手动编译了 alacritty(我最喜欢的终端仿真器),所以它在 arm64 模式下运行。 uname -a
确认我们在 arm64 中。
Darwin ndo-mbp.local 20.1.0 Darwin Kernel Version 20.1.0: Sat Oct 31 00:07:10 PDT 2020; root:xnu-7195.50.7~2/RELEASE_ARM64_T8101 arm64
然后我安装了自制软件,它缓慢但肯定地为大多数流行的应用程序提供了 arm64 瓶,包括tmux
(https://github.com/Homebrew/brew/issues/7857)。所以我从 arm64 shell 安装了它,它编译成功。
如果我运行file $(which tmux)
,我会得到:
/opt/homebrew/bin/tmux: Mach-O 64-bit executable arm64
但是,如果我在 arm64 alacritty 中启动 tmux
二进制文件,我似乎会进入 x86_64 模式。在 tmux 窗口中运行 uname -a
我得到:
Darwin ndo-mbp.local 20.1.0 Darwin Kernel Version 20.1.0: Sat Oct 31 00:07:10 PDT 2020; root:xnu-7195.50.7~2/RELEASE_ARM64_T8101 x86_64
知道这里发生了什么吗?我对 Mac OS 比较陌生,所以也许我遗漏了一些明显的东西。
【问题讨论】:
你的默认外壳是什么? (finger $USER
)
考虑删除您的 ~/.tmux.conf 以查看行为是否仍然存在 - 特别是,您可能在 .tmux.conf 中声明了默认 shell。
感谢您让我走上正轨。我手动将 zsh 二进制文件指定为 tmux 中的默认 shell,然后它最终在 tmux 中也返回了 arm64!
我想补充一点,我在上面的答案中遇到了困难(没有人的错,我只是个菜鸟)。我所做的不是以传统方式创建配置文件(~/.tmux.conf),而是明确地将文件放在 /usr/local/etc/ 中(仍将其命名为 tmux.conf),因为那是 tmux 寻找的地方无论如何,它奏效了。
【参考方案1】:
我遇到了同样的问题。
最终解决方案在~/.tmux.conf
,添加:
set-option -g default-shell /path/to/arm64/zsh
然后杀死并重启tmux:
sudo kill -9 [PID of tmux]
tmux
uname -a
然后返回 arm64。
【讨论】:
【参考方案2】:现在 M1 CPU 已经存在了一段时间,社区也有时间解决问题,我为 arm64 手动交叉编译了 Alacritty,因为它们还没有官方二进制文件(Github Actions 显然不会构建它们但是)。
但从那里开始,我在 arm64 模式下处于活跃状态 (uname -m
== arm64
:thumbsup:),然后能够从他们的网站上以推荐的方式删除并重新安装 brew 和 tmux。
遵循所有指示,一切顺利。我认为只是有点早,并且到处乱七八糟地进行手动更改,这就把整个事情搞砸了。
我现在确实有一个不相关的问题 - 那就是 tmux
不会以非 root 用户身份启动。一下子就崩溃了哈哈。当以sudo
开始时,它会以我预期的配置打开,uname -m
确认它是 arm64 版本,但是我无法以我的普通用户开始。无论如何,问题改天!
【讨论】:
以上是关于在 arm64 模式下在 M1 Mac 上运行 tmux的主要内容,如果未能解决你的问题,请参考以下文章
上次更新 arm64-v8a 后,模拟器在 M1 Mac 上脱机
上次更新 arm64-v8a 后,模拟器在 M1 Mac 上脱机
Mac Silicon M1 编译安装 PHP8 & Swoole4.6 ARM64 全过程记录
我无法在 R 中的 M1 Mac 上使用 keras 中的功能,它要求我安装 arm64e 版本的 miniconda3。该怎么办?