MacBook Air M2环境下R包mnormt安装失败求助
解决MacBook Air M2 + R 4.2.1下mnormt包安装失败问题
问题根源
架构不匹配警告和_rtmng_符号缺失,核心原因是编译环境的CPU架构与R运行环境不一致。M2是arm64架构,若你的R是x86_64版本,或编译工具链混用了x86组件,源码编译出的共享对象就无法和R兼容。
分步解决方案
1. 确认R的架构
打开R控制台,运行:
sessionInfo()
查看Platform字段,确认是aarch64-apple-darwin20(arm64原生版)还是x86_64-apple-darwin20(通过Rosetta运行的x86版)。
2. 匹配编译架构
如果R是arm64原生版:
先确保Xcode命令行工具是最新的arm64版本,终端执行:xcode-select --install再在R中强制指定arm64架构编译:
Sys.setenv(MAKEFLAGS = "-j4") Sys.setenv(PKG_CFLAGS = "-arch arm64") Sys.setenv(PKG_LIBS = "-arch arm64") install.packages("mnormt", type = "source")如果R是x86_64版本:
打开终端时右键选择「使用Rosetta打开」,再启动R执行安装;或者在R中强制指定x86架构:Sys.setenv(PKG_CFLAGS = "-arch x86_64") Sys.setenv(PKG_LIBS = "-arch x86_64") install.packages("mnormt", type = "source")
3. 优先使用预编译二进制包
R 4.2.1已支持arm64二进制包,若无需源码编译,直接安装二进制版:
install.packages("mnormt", type = "binary")
4. 清理编译缓存重试
如果之前的失败留下缓存文件,先清理再重新安装:
remove.packages("mnormt") Sys.setenv(R_BUILD_TAR = "/usr/bin/tar") install.packages("mnormt", type = "source", clean = TRUE)
内容的提问来源于stack exchange,提问作者Ruam Pimentel
相关产品推荐
相关产品推荐

