使用ubuntu 10.04,rvm。起初,我已经用rvm,gem rails安装了ruby 1.9.2并生成了一些新项目并成功启动了它。一切都很好。但是在更改到另一个项目后,执行bundle install命令(输出看起来没问题)并启动rails服务器 - 出现错误:
rails s
/home/jacek/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/site_ruby/1.9.1/rubygems.rb:316:in `bin_path': can't find gem rails ([">= 0"]) with executable rails (Gem::GemNotFoundException)
from /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin/rails:19:in `<main>'
gem list rails
*** LOCAL GEMS ***
rails (3.2.2)
gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.18
- RUBY VERSION: 1.9.2 (2012-02-14 patchlevel 318) [i686-linux]
- INSTALLATION DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318
- RUBY EXECUTABLE: /home/jacek/.rvm/rubies/ruby-1.9.2-p318/bin/ruby
- EXECUTABLE DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /home/jacek/.rvm/gems/ruby-1.9.2-p318
- /home/jacek/.rvm/gems/ruby-1.9.2-p318@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
My Path(包括EXECUTABLE目录:/home/jacek/.rvm/gems/ruby-1.9.2-p318/bin)
/home/jacek/.rvm/gems/ruby-1.9.2-p318/bin:/home/jacek/.rvm/gems/ruby-1.9.2-p318@global/bin:/home/jacek/.rvm/rubies/ruby-1.9.2-p318/bin:/home/jacek/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
我将不胜感激任何帮助
答案 0 :(得分:34)
对我来说只是安装了捆绑器。这使一切都恢复了。
gem install bundler --no-ri --no-rdoc
答案 1 :(得分:20)
如果您使用bundle install
命令从GEMFILE
安装宝石,它会将宝石安装到宝石的默认系统位置,如the bundler docs here中所述。之后,您可以使用bundlers bundle exec
命令在bundle as outlined in the docs here的上下文中执行命令。这将确保执行使用bundle install
安装的gem版本。
如果查看提供文档概述的homepage for bundler,请说明以下内容:
在某些情况下,如果可执行文件恰好安装在您的系统中并且没有引入任何与您的软件包冲突的gem,那么运行没有bundle exec的可执行文件可能会有效。
然而,这是不可靠的,并且是相当痛苦的根源。即使它看起来有效,但它可能在将来或其他机器上不起作用。
我猜你在控制台中运行gem which rails
,然后在控制台中运行bundle show rails
,系统的默认安装rails安装与为你的安装包安装的安装不同。
您说rvm
和ruby
管理员正在使用gem
。我想你可能没有正确配置它。尝试在控制台中执行rvm notes
命令,以确保已满足在操作系统上安装的所有必需/建议步骤。您希望确保rvm
的可执行文件是理想运行echo $PATH
时路径中包含的第一个内容。这将确保为rvm
安装的gem将是在您尝试执行时没有加bundle exec
前缀的gems。如果rvm notes
未提供完成此操作所需的提示,请仔细查看docs for installation on the RVM website。
答案 2 :(得分:10)
您可以在Ruby之间切换版本$ rvm use --default 2.4.0
,例如
但是对于你的问题,试试这个:
$ gem install bundler
$ gem install rails
希望它有所帮助!
答案 3 :(得分:0)
我认为下面的命令会起作用
gem pristine rails