Rails安装失败求助:多方式尝试均报错,耗时两天仍无法解决
解决Windows下Rails安装失败及Gem更新报错问题
我之前在Windows环境部署Ruby/Rails时也踩过几乎一模一样的坑,结合你的错误细节,给你梳理针对性的解决方案:
一、先拆解你遇到的核心问题
1. Rails安装时的共享内存错误
你执行gem install rails时触发的:
0 [main] locale (8428) shared_info::initialize: size of shared memory region changed from 51128 to 40888 0 [main] make (12688) shared_info::initialize: size of shared memory region changed from 51128 to 40888 ERROR: Error installing rails: ERROR: Failed to build gem native extension.
这是Windows下MSYS2环境的经典bug——共享内存区域配置异常,导致Rails依赖的部分原生gem编译失败。
2. Gem更新时的NoMethodError
你执行gem update时出现的:
ERROR: While executing gem ... (NoMethodError) undefined method `source_paths' for #<Gem::Specification:0x98bb1dc rubygems-update-3.1.4>
本质是版本不兼容:你用的Ruby 2.5.x最高只支持RubyGems 3.0.x系列,强行更到3.1.4会触发API不匹配的错误。
二、分步解决问题
步骤1:修复MSYS2共享内存异常
- 关闭所有相关终端:包括CMD、Git Bash、Ruby自带的命令提示符,确保没有MSYS2相关进程在后台运行。
- 启动MSYS2专属终端:找到Ruby自带的MSYS2目录(一般是
C:\Ruby25-x64\msys64),运行里面的msys2_shell.cmd -defterm -no-start。 - 更新MSYS2系统:在终端里依次执行:
执行后终端会提示重启,关闭后重新打开,继续执行:pacman -Syupacman -Su - 安装编译依赖工具:执行以下命令补齐原生gem编译所需的组件:
pacman -S base-devel mingw-w64-x86_64-toolchain
步骤2:修复RubyGems版本兼容问题
- 卸载不兼容的rubygems-update:打开Ruby终端,执行:
按提示选择卸载3.1.4版本。gem uninstall rubygems-update - 更新到Ruby 2.5兼容的版本:执行:
这个版本是Ruby 2.5.x官方支持的最高稳定版。gem update --system 3.0.9
步骤3:重新安装Rails
- (可选)优化Gem源:如果访问官方源速度慢,可切换到国内源:
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ - 安装兼容的Rails版本:Ruby 2.5.x最高支持Rails 6.0.x系列,执行:
gem install rails -v 6.0.6 - 验证安装与启动:
- 执行
rails -v,如果显示Rails 6.0.6说明安装成功 - 创建测试项目验证服务器启动:
打开浏览器访问rails new test_rails_app cd test_rails_app rails serverhttp://localhost:3000,看到Rails欢迎页就没问题了。
- 执行
额外提醒
- 不要随意跨版本更新RubyGems,一定要对应你的Ruby版本(可在Ruby官方文档查到对应关系)
- Windows下尽量用RubyInstaller自带的MSYS2组件,避免单独安装MSYS2导致环境冲突
内容的提问来源于stack exchange,提问作者Sergiu Tonț
相关产品推荐
相关产品推荐

