无法卸载Rails gem

4

当我更新 rails 版本时,我发现卸载 rails 后仍然可以访问它(您可以调用 $ rails new name)。我在终端中使用了以下命令(我使用的是 rvm 和 OS X 操作系统):

 ~  rvm list

rvm rubies

=> ruby-2.0.0-p594 [ x86_64 ]
   ruby-2.1.3 [ x86_64 ]
 * ruby-2.2.0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

 ~  rails -v
Rails 4.2.0
 ~  gem uninstall rails
 ~  gem list G rails
capistrano-rails (1.1.0)
coffee-rails (4.0.1)
factory_girl_rails (4.3.0)
font-awesome-rails (4.0.3.1)
jquery-rails (3.0.4)
jquery-ui-rails (4.1.1)
rails-deprecated_sanitizer (1.0.3)
rails-dom-testing (1.0.5)
rails-html-sanitizer (1.0.1)
rails-observers (0.1.2)
rails_admin (0.6.0)
rspec-rails (2.14.1)
sass-rails (4.0.1)
sprockets-rails (2.0.1)
 ~  rails -v
Rails 4.2.0 

正如您所看到的,卸载了Rails之后,我仍然可以访问它。 在gem list G rails中的G是|GREP的别名。

如何摆脱Rails?

1个回答

9

如果要完全从OSX/Ubuntu中卸载rails 4,我目前唯一的方法是卸载railties,这将删除rails和任何相关的rails rubygem。如果您想删除特定版本(例如4.2.0),可以执行以下操作:

gem uninstall railties -v 4.2.0

我很好奇这是为什么?这是因为依赖关系吗?如果是的话,为什么卸载Rails不会删除Railties呢? - Filip Bartuzi
我记得有一段时间前我曾经发现了这个确切的答案,我相信它归结于 railties 用于版本命令。基本上,当你运行 rails -v 命令时,它输出的是 railties 的版本,即使你卸载了 rails,railties 仍然没有被卸载。由于 railties 只被 rails 使用,所以这有点不直观,这是 rubygems 没有理解 gem 的“独占依赖关系”的结果。也就是说,当你卸载 rails 时,rubygems 不知道 railties 是 rails 的一个独占依赖项,必须同时卸载。 - Chris

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