0

最初にいくつかの背景。Ubuntu の新規インストールでCommunity Engineを実行しようとしています。CE は、Rails 上で動作するオープンな src ソーシャル ネットワーキング プラグインです。問題なく Windows ボックスで CE を起動して実行することができました。現在、開発環境として Ubuntu 8.10 を使用することに決めており、この問題で立ち往生しています。私は過去数晩これを調査しましたが、まだ立ち往生しています.

何が起こるかは、命令のこのステップに到達したときです (ここにあります):

  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

私のバージョンのルビーは次のとおりです。

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 グループでこの質問をしましたが、これは CE 自体よりも、自分のマシンでの Ruby と Rails のセットアップに関連していると感じています。

助けていただければ幸いです。

4

2 に答える 2

5

「問題」はCommunityEngine自体に起因するのではなく、基盤となる「engines」プラグイン(http://github.com/lazyatom/engines)に起因します。

エンジンプラグインのboot.rbのソースコードを見ると、標準のRails :: VERSIONフィールドをチェックするだけなので、問題もありません。

これで、Railsアプリを作成すると、Railsアプリを最初に作成したときに使用した特定のバージョンに関連付けられます。レール2.1.1/2ジェムをシステムに配置するだけでは、レールが自動的に使用されるわけではありません。

実際のRailsアプリ自体を確認するにconfig/environment.rbは、Railsアプリでファイルを確認してください。次のようなものが表示されます。

# 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. RAILS_GEM_VERSION文字列config/environment.rbを2.1.1以上に変更します
  2. 走るrake rails:upgrade

うまくいけば、これはあなたの問題を解決します:-)

于 2008-11-05T20:27:45.423 に答える
2

この問題は、レールのインストールに sudo を使用しなかったことが原因でした。結局、ルビーを完全に吹き飛ばして再インストールしました。また、ダウンロードして実行したことを確認するために、インストールする必要のあるさまざまな gem の出力にも注意を払いました。それらの多くがダウンロードに失敗し、インストールする前に 2 回または 3 回実行する必要があることに驚きました。

Orion の提案に関して、RAILS_GEM_VERSION を確認したところ、2.1.1 以上でした。それがこの問題で最も混乱を引き起こしていたもので、必要なバージョンが示されていたため、 gem -v が正しいバージョンを表示してくれました。

于 2008-11-06T20:47:33.747 に答える