无论 Rosetta 如何,都能获得 M1 Mac 的真实架构

Elm*_*lmo 2 javascript macos shell node.js rosetta

无论进程是否通过 Rosetta 运行,我都需要检索 Mac 的真实架构。

现在在 Node.js 中process.arch返回x64,在 shell 中uname -m返回x86_64.

Elm*_*lmo 5

感谢@Ouroborus,本说明描述了如何确定您的应用程序是否已翻译。

如果翻译成:

$ sysctl sysctl.proc_translated
sysctl.proc_translated: 1
Run Code Online (Sandbox Code Playgroud)

如果不:

$ sysctl sysctl.proc_translated
sysctl.proc_translated: 0
Run Code Online (Sandbox Code Playgroud)

在非 ARM Mac 上:

$ sysctl sysctl.proc_translated
sysctl: unknown oid 'sysctl.proc_translated'
Run Code Online (Sandbox Code Playgroud)

  • 如果您想忽略未知的 oid 值,可以运行“sysctl -in sysctl.proc_translated”。这只会打印值而不打印错误消息。 (2认同)