【问题标题】:'rails' command creates directory with /vendor/rails which uses wrong version of rails“rails”命令使用 /vendor/rails 创建目录,该目录使用错误版本的 rails
【发布时间】:2010-01-08 02:40:07
【问题描述】:

由于某种原因,当我运行 rails 命令时,它会在 /vendor/rails 中安装 2.2.3 版本的 Rails,而 webbrick 使用该版本而不是作为 gem 安装的 2.3.5。

如果我删除它,那么它会使用正确的目录。我记得曾经使用过 git submodule,但我认为这与此无关。

我该如何纠正这个问题?谢谢

编辑:

我从未安装过 Rails 2.2.3。虽然我确实隐约记得使用 git submodule,如果这对任何人都有帮助的话。

【问题讨论】:

  • 澄清一下,您是在运行rails myapp 并获取供应商的rails,还是在生成应用程序后运行rake rails:freeze:gemsrake rails:freeze:edge
  • 我只是运行“rails appname”,它从供应商的 Rails 2.3.3 开始。我必须使用 bash 脚本从供应商中删除 rails 并在 environment.rb 中注释掉行

标签: ruby-on-rails rubygems


【解决方案1】:

检查您的本地 gem 和您的系统 gem。或许,您在用户的 bin 中安装了 2.2.3。

【讨论】:

  • 我在 /home/senthil/.gem/ruby/1.8/gems 本地确实有一些 gem,但后来我从那里卸载了所有东西。我认为我一开始就没有 Rails。此外,我从未安装过 Rails 2.2.3。我最近才接触到 Rails,肯定是在 2.3.5 发布之后。
  • 尝试运行 '$ which rails' 和 '$ rails -v' 以获取更多信息
  • 其实你是泰勒。我查看了 usr/bin/rails。原来有一个部分是从另一个文件夹复制 Rails 的。我将其注释掉并在 environment.rb 中注释了另一行,它现在可以工作了。谢谢!
【解决方案2】:

尝试运行:

rake rails::unfreeze

发生的事情是 2.2.3 被冻结到您的供应商目录中。

至于为什么会这样,我不确定。确保您确实拥有 2.3.5。并且解冻/重新冻结应该可以解决它。

rake rails::freeze::gems

【讨论】:

  • 好吧,我还是要去手动更新 environment.rb。当我执行 rails appname 时,我希望不能在我的供应商中获得 Rails 2.2.3。
【解决方案3】:

rails gem 是否在您创建应用程序的同时进行销售?如果是这样,那似乎很奇怪。

如果您使用的是 linux 或 mac,那么您的 bash 配置文件中可能有一些东西覆盖了 rails 命令。老实说,当您创建应用程序时,这听起来像是在运行 rails 模板......

如果你做不到这一点,是否有可能你的机器上运行了类似“instant rails”之类的东西,并且它正在控制而不是 rails gem?

很奇怪。你在什么操作系统上?有时尝试创建一个新的用户配置文件并查看您在登录该帐户时是否遇到同样的问题会有所帮助....

【讨论】:

  • 感谢您的回复。我在 Ubuntu (9.10) 上。我创建了新用户,但它仍然使用 rails 2.2.3。我不记得安装 Instant rails 或其他类似的东西。我查看了我的 .bashrc 和 .gemrc,没有什么不寻常的地方。它在我的 gem 列表中显示 2.3.5,所以我不知道它从哪里获得 2.2.3。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 2018-06-23
  • 2015-11-08
  • 1970-01-01
相关资源
最近更新 更多