CentOS下Gem Install Rails报错:无法构建Gem原生扩展求助
解决CentOS下Ruby/Rails安装的编译依赖与Rubygems更新问题
嘿,刚上手CentOS遇到这类编译报错太正常了,我帮你一步步搞定:
1. 解决Rails安装时Nokogiri编译失败的问题
你看到的mkmf.rb can't find header files for ruby错误,是因为通过yum install ruby只安装了Ruby的运行环境,缺少编译原生扩展需要的开发头文件和工具链。
先安装必要的依赖包:
sudo yum install ruby-devel gcc make zlib-devel libxml2-devel libxslt-devel
ruby-devel:提供ruby.h等编译必需的头文件gcc/make:基础编译工具zlib-devel/libxml2-devel/libxslt-devel:Nokogiri依赖的底层库
安装完成后,重新尝试安装Rails:
sudo gem install rails
2. 解决gem update --system的路径错误问题
CentOS系统自带的Rubygems和官方的rubygems-update包存在路径不兼容的问题,这就是你遇到No such file or directory错误的原因。
更稳妥的方式是用系统包管理器来更新Rubygems:
sudo yum update rubygems
如果已经安装了冲突的rubygems-update包,先卸载它:
sudo gem uninstall rubygems-update
之后尽量用yum来维护系统级的Ruby和Rubygems组件,避免路径冲突。
额外建议
如果后续遇到gem相关的路径问题,可以检查GEM_PATH环境变量,确认系统gem目录和用户gem目录是否混淆:
echo $GEM_PATH
不过先解决前面的依赖问题,应该就能顺利装上Rails了。
内容的提问来源于stack exchange,提问作者Higigig
相关产品推荐
相关产品推荐

