Rails“无法加载文件- rubygems(LoadError)”

5

我刚刚从Heroku转向Amazon Web Services。之前,我在我的Windows电脑上使用命令提示符和Ruby运行所有的Rails命令。但是,在我登录了我的Amazon Linux EC2实例并进入我的应用程序目录之后,我收到了以下错误:

/usr/bin/rails:9:in `require': no such file to load -- rubygems (LoadError)
    from /usr/bin/rails:9

当我尝试运行任何命令,例如rails console时,会出现问题。我查看了这个问题,但是好像并不适用于我,因为which -a ruby只返回一个位置:/usr/bin/ruby。此外,这个问题似乎也没有帮助,因为我没有安装rvm。当我尝试输入rvm use 1.9.3时,会收到消息:-bash: rvm: command not found。这是我第一次接触Linux环境,所以任何帮助都将不胜感激。谢谢!

你是如何安装Ruby的??是使用RVM吗?? - vijikumar
不需要,Amazon Elastic Beanstalk会自动在Linux服务器上安装它。 - yellowreign
@yellowreign,你找到问题的答案了吗?我的问题类似,或许你能帮忙解决?! - JJD
3个回答

1
我遇到了相同的错误信息。我注意到我的 EC2 实例上的 Ruby 版本是 1.8(ruby -v)。我重启了 EC2 实例,这导致 Elastic Beanstalk 启动了一个新的 EC2 实例并终止了旧实例。新实例运行的是 1.9.3,问题得以解决。虽然我不喜欢找到神奇的解决方法,但由于旧实例已被终止,我无法再进行故障排查。希望这能帮到你。

0
-bash: rvm: command not found

这明确说明了您的计算机上未安装rvm,或者如果已安装,则未正确设置路径。

检查路径

有时gem版本指向错误的版本。

我曾经遇到过这种情况----

不用理会!sudo bundle install正在捆绑2.3.8而不是3.0.0.beta3。通过在我的Gemfile中指定版本来解决它。

为确保编译顺利进行,请在终端会话中向后滚动并查看应安装的先决条件包列表(最好将所有名称都复制粘贴以免出现输入错误)。

sudo apt-get install build-essential openssl libreadline6 libreadline6-dev zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev autoconf libc6-dev libncurses5-dev automake libtool bison subversion

现在您可以使用rvm下载、编译和安装Ruby。

1 rvm install 1.9.3

2 rvm use 1.9.3 --default

猜测这更像是与RVM相关的问题,以及与osx系统ruby的一些奇怪链接有关?(我在用户级别上安装了RVM)


我需要安装RVM才能运行Rails Console吗? - yellowreign
1
不需要使用rvm。但你可以使用它来更改Ruby版本。 - My God

0

我已经使用了gem install bundler。 然后运行rvm install就可以正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接