Rails 2.2.2问题:Gem的未定义方法`activate_bin_path’:Module(NoMethodError)

我正在研究Rails 2.2.2应用程序。 为此,我安装了Ruby版本1.9.3p551的rvm。 此应用程序没有Gemfile。 所以我在environment.rb文件中提到过我用rails和sqlite3创建了一个Gemfile。 在运行rake db:create时,我遇到了以下问题。

whoami@myvm:~/Desktop/practice/store$ rake db:create /home/whoami/.rvm/gems/ruby-1.9.3-p551/bin/rake:22:in `': undefined method `activate_bin_path' for Gem:Module (NoMethodError) from /home/whoami/.rvm/gems/ruby-1.9.3-p551/bin/ruby_executable_hooks:15:in `eval' from /home/whoami/.rvm/gems/ruby-1.9.3-p551/bin/ruby_executable_hooks:15:in `' 

请帮我。

对我来说,(我正在使用RVM)它只运行:

 gem update --system gem update bundler 

你试过这些命令吗?

将/ usr / lib / ruby​​ / site_ruby /重命名为site_ruby.bak /运行以下命令:

 gem install rubygems-update enter code here update_rubygems 

如果您收到错误,请尝试以下方法:

ruby –disable-gems -S update_rubygems

我有一个类似的问题,当运行独立passenger ,它工作正常。 但是,使用systemd服务运行它会产生与OP相同的错误:

 undefined method `activate_bin_path' for Gem:Module (NoMethodError) 

我设法用它来解决它

 env | egrep 'gem|rvm|ruby' > passenger.env 

并使用EnvironmentFile=[...]/passenger.env将其添加到服务文件中。

希望这对其他坚持这一点的人有用。

这通常发生在你有多个版本的RVM和gem集时,它通常用于ruby 2.2.2,摆脱这个ERROR的最好方法是。

首先使用以下内容更新系统gem

  gem update --system OR update_rubygems --system 

然后你必须更新你的捆绑包:

  gem update bundler 

尝试运行bundle

 cd myapp gem install bundler bundle install bundle exec rake db:create