Ubuntu下 ruby gem/rails运行提示rubygems.rb文件装载错误(LoadError)修复方法

本文介绍了解决使用RVM安装Ruby 1.9.3后出现的LoadError错误的方法,包括检查依赖项、配置.zshrc文件等步骤,并提供了针对Windows用户的额外建议。

使用rvm安装ruby-1.9.3之后,使用gem或者rails new 提示如下信息:

<internal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb (LoadError)
from <internal:gem_prelude>:1:in `<compiled>'

诊断方法:

rvm info

查看是否缺少任何依赖。

笔者在这里缺少了zsh,使用apt-get安装后,在$HOME下会生成一个新的文件.zshrc(如果没有可以自己创建一个)

将其内容修改如下:

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

之后可以正常运行。

引发问题的原因有可能是之前使用脚本卸载,误删除了依赖造成的。

如果是windows用户,可能是由于没有nmake install造成的。具体见下贴:

http://bugs.ruby-lang.org/issues/4941


10月11日更新:

在做了以上操作,如果重启电脑后仍然提示相同信息, 可以参考以下链接:

https://rvm.io/integration/gnome-terminal/

按照提示操作,也可解决问题。 

`can't find gem railties (>= 0.a) with executable rails (Gem::GemNotFoundException)` 错误通常表示 RubyGems 无法找到满足要求的 `railties` 宝石(gem),或者无法找到与之关联的 `rails` 可执行文件。以下是一些可能的解决方法: ### 检查并更新 Gem 源 将 Gem 源更换为国内源可以加快下载速度,以阿里云的 RubyGems 镜像为例: ```bash gem sources --remove https://rubygems.org/ gem sources -a https://mirrors.aliyun.com/rubygems/ gem sources -l ``` 确保输出结果中只有阿里云的源 `https://mirrors.aliyun.com/rubygems/`。 ### 安装或更新 `railties` 和 `rails` 使用以下命令安装或更新 `railties` 和 `rails`: ```bash gem install railties rails ``` ### 使用 Bundler 安装依赖 如果项目使用了 `Gemfile`,可以使用 Bundler 来安装所有依赖: ```bash bundle install ``` ### 检查环境变量 确保 `PATH` 环境变量包含 RubyGems 的可执行文件路径。可以通过以下命令查看: ```bash echo $PATH ``` 确保 RubyGems 的 `bin` 目录在其中。 ### 检查 Ruby 版本 确保使用的 Ruby 版本与项目要求的版本兼容。可以通过以下命令查看 Ruby 版本: ```bash ruby -v ``` ### 清理并重新安装 Gem 有时候,Gem 的缓存可能会导致问题。可以尝试清理缓存并重新安装: ```bash gem cleanup gem install railties rails ``` ### 示例 假设项目根目录下有 `Gemfile`,可以按照以下步骤操作: ```bash # 更换 Gemgem sources --remove https://rubygems.org/ gem sources -a https://mirrors.aliyun.com/rubygems/ # 使用 Bundler 安装依赖 bundle install # 检查是否可以找到 rails 可执行文件 which rails ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值