M1 Mac使用Shopify CLI构建扩展时racc安装失败,架构不匹配求助
解决M1 Mac上Shopify CLI构建扩展的架构适配问题
核心原因
你安装的Ruby是x86_64架构版本,与M1 Mac默认的arm64架构不匹配,导致链接阶段执行失败。
解决步骤
1. 确认并切换到arm64版Homebrew
M1 Mac的arm64版Homebrew默认路径为/opt/homebrew,若你的Homebrew路径是/usr/local,说明是x86版本,需重装:
# 卸载x86版Homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" # 安装arm64版Homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 配置环境变量(若未自动配置) echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc source ~/.zshrc
2. 安装arm64架构的Ruby
用rbenv安装适配arm64的Ruby版本(以3.2.2为例):
# 安装arm64版rbenv和ruby-build brew install rbenv ruby-build # 设置环境变量强制arm64编译 export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl) --enable-shared" export CC="clang" # 安装Ruby 3.2.2 rbenv install 3.2.2 # 设置全局Ruby版本 rbenv global 3.2.2 # 验证架构,输出应为 arm64-darwin2x.x 格式 ruby -e "puts RUBY_PLATFORM"
3. 重新安装Shopify CLI
gem uninstall shopify-cli gem install shopify-cli # 验证CLI运行环境 shopify version
4. 清理缓存后重新构建
进入应用扩展目录,清理旧依赖并重新构建:
rm Gemfile.lock rm -rf vendor bundle install # 重新执行扩展构建命令 shopify extension push
5. 临时备选:用Rosetta 2运行
若以上步骤无效,可通过Rosetta 2兼容x86架构:
- 找到终端应用(/Applications/Utilities/Terminal.app)
- 右键选择「显示简介」,勾选「使用Rosetta打开」
- 重启终端后重新执行构建命令
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

