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

时间:2016-06-14 07:24:43

标签: ruby-on-rails

我正在研究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 `<main>': 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 `<main>'

请帮帮我。

5 个答案:

答案 0 :(得分:52)

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

gem update --system
gem update bundler

答案 1 :(得分:1)

您是否尝试过这些命令

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

gem install rubygems-update
enter code here
update_rubygems

如果您收到错误,请尝试以下操作:

ruby​​ --disable-gems -S update_rubygems

答案 2 :(得分:1)

我遇到了类似的问题,在运行独立版passenger时,它运行正常。但是,使用systemd服务运行它会产生与OP相同的错误:

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

我设法使用

来解决它
env | egrep 'gem|rvm|ruby' > passenger.env

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

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

答案 3 :(得分:1)

当您有多个版本的RVM和gem set,并且通常用于ruby 2.2.2时,这通常会发生,摆脱此错误的最佳方法是。

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

 gem update --system   

 OR  

 update_rubygems --system

然后,您必须更新捆绑器:

 gem update bundler

答案 4 :(得分:0)

尝试浏览bundle

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