M1 macOS Big Sur 11.2.3搭建Rails、PostgreSQL环境遇Xcode、bcrypt安装问题
M1 Mac 搭建 Rails 开发环境问题解决方案
Devise 注册时 bcrypt 架构不匹配报错
这个报错是M1设备下原生扩展bcrypt混合了x86_64和arm64架构导致的,按以下步骤处理即可:
- 完全卸载现有bcrypt gem:
全局安装的执行gem uninstall bcrypt -a
项目bundle管理的执行bundle exec gem uninstall bcrypt -a - 强制指定arm64编译参数:
执行bundle config build.bcrypt --with-build-options="-arch arm64" - 重新安装依赖:执行
bundle install - 若仍报错,检查终端是否开启了Rosetta模拟:右键终端应用>显示简介,取消勾选「使用Rosetta打开」,重启终端后重新执行编译步骤。
rbenv 无法设置 Ruby 3.0.0 为全局版本
你之前先删rbenv、再删Ruby版本的操作,确实是该异常的常见诱因——rbenv的版本指针、shim文件和程序本身强绑定,卸载顺序错误会残留无效路径引用、失效的全局版本配置。
按以下步骤修复:
- 先确认shell配置正常加载rbenv:
执行echo $PATH,检查输出路径的最前端是否包含$HOME/.rbenv/shims。如果没有,打开~/.zshrc确认已添加配置eval "$(rbenv init - zsh)",执行source ~/.zshrc让配置生效。 - 强制写入全局版本配置:
先执行rbenv global 3.0.0,如果仍不生效,直接修改全局版本文件:执行echo 3.0.0 > ~/.rbenv/version - 验证配置:执行
rbenv versions查看版本列表中3.0.0前是否带*标记,再执行ruby -v确认输出的是arm64架构的3.0.0版本。
CommandLineTools 目录缺失、安装报错,无法安装旧版SDK头文件包
你当前的Big Sur 11.2.3正式版完全不需要安装macOS_SDK_headers_for_macOS_10.14.pkg——这个包是针对macOS 10.14及更早版本的兼容补丁,新版CommandLineTools已经自带了所有编译Ruby、PostgreSQL、原生扩展需要的头文件,你看到的教程里的这个步骤是Big Sur测试版时期的过时指引。
按以下步骤修复CommandLineTools安装问题:
- 先重置xcode-select的默认路径:执行
sudo xcode-select --reset - 清空旧的残留安装目录:执行
sudo rm -rf /Library/Developer/CommandLineTools - 重新触发安装流程:执行
sudo xcode-select --install,系统会弹出安装弹窗,按提示完成安装后会自动生成/Library/Developer/CommandLineTools/目录 - 验证安装:执行
gcc --version,正常输出版本号即代表环境就绪,可以直接安装PostgreSQL、编译各类原生扩展。
内容的提问来源于stack exchange,提问作者elviajero34
相关产品推荐
相关产品推荐

