【问题标题】:Running into issues when running Rails on Ubuntu在 Ubuntu 上运行 Rails 时遇到问题
【发布时间】:2010-09-20 21:17:28
【问题描述】:

首先是一些背景。我正在尝试在全新安装的 Ubuntu 上运行 Community Engine。 CE 是一个在 Rails 上运行的开放 src 社交网络插件。我能够在没有问题的情况下在我的 Windows 盒子上启动并运行 CE。我现在决定使用 Ubuntu 8.10 作为我的开发环境,并且被困在这个问题上。我在过去的几个晚上对此进行了研究,但仍然卡住了。

当我到达指令的这一步时会发生什么 (found here):

  Generate the community engine migrations:

  $ script/generate plugin_migration

我收到以下错误:

myuser@compy:~/Projects/MyProject$ script/generate plugin_migration
/home/myuser/Projects/MyProject/config/../vendor/plugins/engines/boot.rb:4: This version of the engines plugin requires Rails 2.1.1 or later! (RuntimeError)
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /home/myuser/Projects/MyProject/config/environment.rb:12
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /home/myuser/Projects/MyProject/vendor/rails/railties/lib/commands/generate.rb:1
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from script/generate:3

这是我的 ruby​​ 版本:

myuser@compy:~/Projects/MyProject$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]

和我安装的宝石:

myuser@compy:~/Projects/MyProject$ gem list

*** LOCAL GEMS ***

actionmailer (2.2.0, 2.1.2, 2.1.1)
actionpack (2.2.0, 2.1.2, 2.1.1)
activerecord (2.2.0, 2.1.2, 2.1.1)
activeresource (2.2.0, 2.1.2, 2.1.1)
activesupport (2.2.0, 2.1.2, 2.1.1)
aws-s3 (0.5.1)
builder (2.1.2)
capistrano (2.5.0)
cgi_multipart_eof_fix (2.5.0)
daemons (1.0.10)
fastthread (1.0.1)
gem_plugin (0.2.3)
haml (2.0.4)
highline (1.4.0)
hpricot (0.6.164)
htmlentities (4.0.0)
mime-types (1.15)
mongrel (1.1.5)
net-scp (1.0.1)
net-sftp (2.0.1)
net-ssh (2.0.4)
net-ssh-gateway (1.0.0)
rails (2.2.0, 2.1.2, 2.1.1)  <--- clearly I have rails 2.1.1 or greater
rake (0.8.3)
RedCloth (4.1.0)
rmagick (2.7.1)
sqlite3-ruby (1.2.4)
xml-simple (1.0.11)

当我也只有 rails 2.1.1 时,我遇到了这个错误。

是的,我拥有的宝石比 CE 所需的要多,但在试图追查这一点时,这就是我最终得到的。我有一个偷偷摸摸的怀疑,无论问题是什么,它都是愚蠢的,我应该抓住它。但在这一点上,我对 XP 机器上的简单过程感到非常沮丧。

我在 Community Engine google 小组中提出了这个问题,但是,我感觉这与我在机器上设置 Ruby 和 Rails 的关系比与 CE 本身更相关。

我们将不胜感激。

【问题讨论】:

    标签: mysql ruby-on-rails ruby communityengine


    【解决方案1】:

    “问题”不是来自 CommunityEngine 本身,而是来自底层的“引擎”插件 (http://github.com/lazyatom/engines)。

    looking at the source code of boot.rb in the engines plugin 我们可以看到它只是检查标准 Rails::VERSION 字段,所以问题也不存在。

    现在,当您创建一个 rails 应用程序时,它会与您在第一次创建 rails 应用程序时使用的特定版本相关联。只是将 rails 2.1.1/2 gems 放在您的系统上并不意味着它们会自动被使用。

    要检查您的实际 rails 应用程序本身,请查看您的 rails 应用程序中的 config/environment.rb 文件。你会看到这样的东西:

    # Specifies gem version of Rails to use when vendor/rails is not present
    RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION
    

    如果低于 2.1.1,那么您需要升级您的 rails 应用程序。
    这很简单:

    1. config/environment.rb 中的RAILS_GEM_VERSION 字符串更改为2.1.1 或更高版本
    2. 运行rake rails:upgrade

    希望这能解决您的问题 :-)

    【讨论】:

      【解决方案2】:

      这个问题最终是由于没有使用 sudo 来安装 rails。我最终完全吹走红宝石并重新安装它。我还密切关注了我需要安装的各种 gem 的输出,以确保它们下载并运行。我很惊讶地发现其中许多都无法下载,必须运行第二次,甚至第三次才能安装。

      关于 Orion 的建议,我检查了 RAILS_GEM_VERSION,它是 2.1.1 或更高版本。这就是这个问题最令人困惑的原因,因为它说的是需要什么版本,然后 gem -v 会告诉我正确的版本。

      【讨论】:

      • 您是如何实际解决问题的?通过重新安装红宝石?!
      • 嗯,有点。由于我是全新安装,并且 ubuntu 安装相当轻松,我铺平了我的机器并重新开始。大锤子换小钉子,但要简单得多。
      • "...我铺好了我的机器,然后重新开始。用大锤子换个小钉子,但要简单得多。"。这不就像用核武器消灭蟑螂一样吗?不,等等,这行不通。 :-) 为了将来参考,您可能需要考虑使用 RVM 来管理 whole-server configuration。它将处理 Ruby 安装,然后使管理 gem 变得非常容易。对于系统范围的安装,您仍将使用sudo,但如果您做了以后后悔的事情,则更容易清理。
      猜你喜欢
      • 2022-10-12
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多