我正在研究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>'
请帮帮我。
答案 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