You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 Mac上x86_64版本R安装openssl包架构不兼容问题求助

针对x86_64 R环境的openssl包架构兼容解决方案

核心问题是M1 Mac的Rosetta环境下,renv默认拉取arm64架构二进制包,与你当前的x86_64版本R不匹配。以下是无需更换R版本的解决方法,重点通过强制源码编译生成x86_64架构的openssl包:

步骤1:配置x86_64依赖环境

  • 右键终端→选择「新建位于Rosetta的窗口」,启动x86_64模式终端,执行uname -m验证,输出应为x86_64。
  • 在该终端安装x86_64版本的Homebrew:
    arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  • 安装x86_64架构的openssl依赖:
    arch -x86_64 brew install openssl@1.1
    

步骤2:设置renv编译参数

  • 进入你的renv项目目录,创建或编辑.Renviron文件,添加以下内容,强制编译时使用x86_64架构和对应openssl路径:
    MAKEFLAGS="-arch x86_64"
    CFLAGS="-arch x86_64"
    CXXFLAGS="-arch x86_64"
    LDFLAGS="-arch x86_64"
    PKG_CONFIG_PATH="/usr/local/homebrew/opt/openssl@1.1/lib/pkgconfig"
    
  • 重启R会话,使环境变量生效。

步骤3:手动编译安装x86_64版openssl包

  • 先清理已安装的arm64版本:
    remove.packages("openssl")
    
  • 从源码编译安装,指定x86_64架构和openssl路径:
    install.packages("openssl", type = "source",
                     configure.args = c("--with-openssl=/usr/local/homebrew/opt/openssl@1.1",
                                        "--build=x86_64-apple-darwin22"))
    
    注:x86_64-apple-darwin22对应MacOS 13.x的平台标识,若系统版本不同可通过uname -a查看调整。

步骤4:验证架构兼容性

  • 安装完成后,运行以下代码确认openssl包架构:
    system(file.path(system.file("libs", package = "openssl"), "openssl.so"), intern = TRUE)
    
    输出中需包含x86_64,表明包与你的R版本兼容。

步骤5:安装devtools

  • 直接执行install.packages("devtools")即可,renv会继承之前的编译参数,确保所有依赖包均为x86_64架构。

内容的提问来源于stack exchange,提问作者Guda Guda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:57:15