RoR - NoMethodError: Gem :: Package:Class调用了私有方法“open”

7

大家好,有谁知道这个错误信息是什么意思吗?我从源代码安装了ruby,然后安装了rubygems,接着通过gem install rails安装了rails。

在创建一个新项目后,我进行了bundle install,然后出现了以下错误:

mark@mark-laptop:~/guide/first_app$ sudo bundle install Fetching source index for https://rubygems.org/

NoMethodError: private method open' called for Gem::Package:Class An error occured while installing rake (0.9.2.2), and Bundler cannot continue. Make sure thatgem install rake -v '0.9.2.2'` succeeds before bundling.

我执行了该命令(gem install rake -v '0.9.2.2'),它正常工作了。我感到有些困惑。

5个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
8
尝试在安装/更新RubyGems之后运行gem install bundler,以安装/更新Bundler。当我遇到和你一样的问题时,它对我有用。

3

3

我有rubygems 2.0.3版本,也遇到了同样的错误。我在项目中删除了gemfile.lock文件,唯一变化的是错误信息: 原来的 Make sure that gem install rake -v '0.9.2.2' succeeds before bundling. 改为 Make sure that gem install rake -v '10.0.3' succeeds before bundling。 新的gem install rake对我也起作用了。


2

当您使用sudo运行命令时,可能会使用不同的Ruby版本和Gem。您可以尝试运行以下命令:

sudo ruby -v

并且

ruby -v
此外,您可以检查不同的宝石路径。
gem env

并且

sudo gem env

0
  1. 更新 gem 系统
  2. 安装 bundler gem

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