【Mac】brew提示arch -arm64 brew以及uname返回x86_64的问题

背景

使用MacBook 14 M1 Pro两年了,自从使用了第三方Shell工具WindTerm后,使用brew时会提示我使用arch -arm64 brew安装,一开始没太在意,直到今天朋友问我uname -a返回的是什么架构,我才惊讶的发现竟然返回的是x86_64

shell 复制代码
~ uname -a
Darwin MacBook-Pro 22.3.0 Darwin Kernel Version 22.3.0: Thu Jan  5 20:48:54 PST 2023; root:xnu-8792.81.2~2/RELEASE_ARM64_T6000 x86_64

探索原因

  1. 经过archbrew config多个多个命令测试,确认当前环境为x86_64
  2. 经测试发现使用WindTerm,默认的zsh架构为x86_64,使用系统自带的终端APP架构则为arm64
  3. 检查发现WindTermx86架构程序,而系统中的zsh是一个universal(通用二进制)程序,本身会包含两种指令集程序,可以采用任意一种架构执行。
shell 复制代码
➜  ~ file /bin/zsh
/bin/zsh: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/bin/zsh (for architecture x86_64):     Mach-O 64-bit executable x86_64
/bin/zsh (for architecture arm64e):     Mach-O 64-bit executable arm64e

结论

WindTerm由于是x86架构的app,默认会使用x86架构的zsh执行,可以直接指定使用arm版本的zsh即可。

命令:/usr/bin/arch -arm64 /bin/zsh --login

由于WindTerm可以直接指定Shell路径,所以可以直接定义Shell的启动路径为带参数的arch,进而直接使用arm版本的shell,配置方式见下图

通过上面两步配置,即可完成进入arm Zsh的配置。

相关推荐
安和昂2 小时前
【iOS】Blocks
macos·ios·cocoa
CYRUS STUDIO5 小时前
使用 AndroidNativeEmu 调用 JNI 函数
android·汇编·arm开发·arm·逆向·jni
我要最优解6 小时前
关于在mac中配置Java系统环境变量
java·flutter·macos
a小胡哦6 小时前
Windows、Mac、Linux,到底该怎么选?
linux·windows·macos·操作系统
獨枭6 小时前
如何在 Mac 上安装并配置 JDK 环境变量
java·macos·jdk
Macdo_cn1 天前
My Metronome for Mac v1.4.2 我的节拍器 支持M、Intel芯片
macos·音视频
吹泡泡的派大星1 天前
从0-1搭建mac环境最新版
macos
zhouwu_linux1 天前
MT7628基于原厂的SDK包, 修改ra1网卡的MAC方法。
linux·运维·macos
丁总学Java1 天前
在 macOS 的 ARM 架构上按住 Command (⌘) + Shift + .(点)。这将暂时显示隐藏文件和文件夹。
macos
青木川崎1 天前
Mac下常用命令
macos