Rails: 找不到railties

55
➜  ~  rvm -v

rvm 1.10.2 by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.beginrescueend.com/]

➜  ~  ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]
➜  ~  rails -v
/Users/hb/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find railties (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
    from /Users/hb/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
    from /Users/hb/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems.rb:1208:in `gem'
    from /Users/hb/.rvm/gems/ruby-1.9.3-p0/bin/rails:18:in `<main>'
➜  ~  
我刚刚安装了最新版本的 Ruby 和 Rails,并删除了所有之前安装的 gem,但仍然遇到这个错误。有任何想法吗?而且,我以前也遇到过这个错误,这是我所做的
更多信息:
➜  ~  gem list

*** LOCAL GEMS ***

actionmailer (3.2.1)
actionpack (3.2.1)
activemodel (3.2.1)
activerecord (3.2.1)
activeresource (3.2.1)
activesupport (3.2.1)
arel (3.0.0)
builder (3.0.0)
bundler (1.0.22 ruby)
erubis (2.7.0)
hike (1.2.1)
i18n (0.6.0)
journey (1.0.1)
json (1.6.5)
mail (2.4.1)
mime-types (1.17.2)
multi_json (1.0.4)
polyglot (0.3.3)
rack (1.4.1)
rack-cache (1.1)
rack-ssl (1.3.2)
rack-test (0.6.1)
rails (3.2.1)
railties (3.2.1)
rake (0.9.2.2, 0.9.2)
rdoc (3.12)
sprockets (2.3.0, 2.1.2)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.10)
tzinfo (0.3.31)

➜  ~  gem install rails
Successfully installed rails-3.2.1
1 gem installed
Installing ri documentation for rails-3.2.1...
Installing RDoc documentation for rails-3.2.1...
➜  ~  rails -v
/Users/hb/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find railties (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
    from /Users/hb/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
    from /Users/hb/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems.rb:1208:in `gem'
    from /Users/hb/.rvm/gems/ruby-1.9.3-p0/bin/rails:18:in `<main>'
➜  ~  
11个回答

100

这意味着你的Rails安装已经损坏或不完整。如果列出你的gems,很可能找不到railties

$ gem list
运行该命令。
$ gem install rails

再次运行。它将下载并安装缺失的依赖项,包括railties。


在 gem 列表中是否存在 railties gem? - Simone Carletti
1
我在原帖中添加了更多信息。 - pyronaur
出于兴趣,我也遇到了在Windows上安装程序包或宝石时出现损坏的问题,这是怎么回事呢? - Richlewis
我不仅发现了railties,而且在我的gemset中安装了4个版本的railties。 - Daniel Viglione

36

我遇到了同样的问题,在我的情况下,原因是我使用sudo安装,这并不一定会使得rails对普通用户可用。如果你之前运行了sudo gem install rails,请尝试只运行gem install rails


16

对我有用

rvm reinstall 1.9.3

然后

gem install rails

你不应该使用sudo来安装gems。 - sevenseacat

15

我也遇到了同样的问题。如果你正在使用 RVM,那么可能是你切换到了错误的 Ruby 版本,导致目录中使用了与当前设置的版本不同的版本时出现 gem 加载错误。

要解决这个问题,在终端中在应用程序的目录下键入 rvm use -yourrubyversion。例如,如果你的应用程序设置为使用 ruby 1.9.3,则键入 rvm use -1.9.3。

RVM通过按app和ruby版本分离gem,因此如果你切换到不同的ruby版本,RVM将从不同的ruby版本分离先前使用和安装的gems,这就是你可能看到这个问题的原因。


这个对我有用。虽然我不得不使用rvm use system。我一直在跟随Rails教程,最初安装了本地的Ruby和Rails,后来决定想要rvm...所以故事的寓意是提前计划并确保在安装这些类型的框架之前知道自己想要什么。至少Ruby有很好的文档和社区支持。 - josiah

14

rvm implode 是答案。可能是之前出了些问题,现在经过 rvm 重新安装一切都正常了。


11
请注意,这将递归删除所有rvm环境。 - cevaris

8
也许您安装了两个或更多版本的Rails和Railties。
gem uninstall railties
gem uninstall rails

然后重新安装。

我进行了一系列的重新安装,现在已经使用implode修复了它。 - pyronaur
为什么拥有多个railties会成为问题?如果不同的gems需要多个railties怎么办?因为这个问题我无法安装Rails? - Daniel Viglione

5

当我安装ruby 1.9.3p194时,遇到了同样的错误。

后来我重新安装了ruby和rails。


解决方案在这里:solution is here - vidur punj

2

Simone的回答很好。但是,如果你已经在Gemfile中有了你的Rails gem,只需尝试使用bundle exec:

bundle exec rails c

那应该就够了。如果不够,那就添加。
bundle install

在提到的命令之前。

2
我安装ZSH后也遇到了这个问题(想尝试一下模板)。执行了:
brew update

我之前没有注意到的一些更新被找到了,但最终结果如何还不确定。

gem install rails

突然重新安装铁轨/枕木系统。不确定为什么ZSH将其删除。

0

我在我的系统(ubuntu)上执行了“gem install rails”,它安装了缺失的28个 gem,然后我执行了“gem list”来检查,它们全部都在那里。


请不要发布已经存在的解决方案。相反,您可以为现有的解决方案投票支持。 - Andrew Marshall
哦,好的,明白了。我想让它更清楚一些,感谢你提醒我,安德鲁。 - knaija

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