0

ここのガイドに従おうとしています: http://docs.cloudfoundry.com/frameworks/ruby/rails-3-1.html

jquery gem など、すでに多くの問題を解決してきましたが、will_paginate gem に対処するドキュメントは見つかりませんでした。cloudfoundry が wi​​ll_paginate を嫌う理由を知っている人はいますか?

cloud_controller.stderr.log から

ERROR:  While executing gem ... (ArgumentError)
invalid byte sequence in US-ASCII
/var/vcap/packages/cloud_controller/cloud_controller/vendor/bundle/ruby/1.9.1/gems/vcap_staging-0.1.37/lib/vcap/staging/plugin/gemfile_task.rb:90:in `block in install_gems': Failed installing will_paginate-3.0.3.gem (RuntimeError)
from /var/vcap/packages/cloud_controller/cloud_controller/vendor/bundle/ruby/1.9.1/gems/vcap_staging-0.1.37/lib/vcap/staging/plugin/gemfile_task.rb:78:in `each'
from /var/vcap/packages/cloud_controller/cloud_controller/vendor/bundle/ruby/1.9.1/gems/vcap_staging-0.1.37/lib/vcap/staging/plugin/gemfile_task.rb:78:in `install_gems'
from /var/vcap/packages/cloud_controller/cloud_controller/vendor/bundle/ruby/1.9.1/gems/vcap_staging-0.1.37/lib/vcap/staging/plugin/gemfile_task.rb:47:in `install'
from /var/vcap/packages/cloud_controller/cloud_controller/vendor/bundle/ruby/1.9.1/gems/vcap_staging-0.1.37/lib/vcap/staging/plugin/gemfile_support.rb:34:in `compile_gems'
from /var/vcap/packages/cloud_controller/cloud_controller/vendor/bundle/ruby/1.9.1/gems/vcap_staging-0.1.37/lib/vcap/staging/plugin/rails3/plugin.rb:49:in `block in stage_application'
from /var/vcap/packages/cloud_controller/cloud_controller/vendor/bundle/ruby/1.9.1/gems/vcap_staging-0.1.37/lib/vcap/staging/plugin/rails3/plugin.rb:45:in `chdir'
from /var/vcap/packages/cloud_controller/cloud_controller/vendor/bundle/ruby/1.9.1/gems/vcap_staging-0.1.37/lib/vcap/staging/plugin/rails3/plugin.rb:45:in `stage_application'
from /var/vcap/data/packages/cloud_controller/32/cloud_controller/script/run_plugin.rb:30:in `<main>'
4

2 に答える 2

2

また、will_paginate がバンドルされた状態で Rails アプリケーションを cloudfoundry.com にデプロイすることも確認できます。

Gemfile の内容を投稿できれば非常に役に立ちます。問題を少し読んだ後、will_paginate のエラーは赤いニシンである可能性があると思います。

また、Rails 3.1 を実際に使用する必要はなく、最新バージョンの 3.2.5 でも問題なく動作することも注目に値します。

====更新====

OK、micro CloudFoundry で問題を再現し、テスト アプリケーションで、8 オクタンが回答で使用したのと同じ Gemfile を使用しました。

この問題は、実際には will_paginate 自体の問題ではなく、gem 自体内のファイルのエンコーディングの問題です。will_paginate は Mislav Marohnić によって作成されました。文字通り、github の gemspec から彼の名前をコピーしました。彼の名前に二重文字があることに注意してください! これで私と一緒にいてください...

Cloudfoundry.com と Micro Cloudfoundry が gem をインストールする方法には微妙な違いがあります。どちらも「env」ツールを使用して「gem install」を実行するための環境を設定しますが、Micro Cloudfoundry は少し古いバージョンの vcap を実行しています。 -staging gem には、言語を UTF8 に設定する env オプションが含まれておらず、デフォルトで env が US-ASCII を使用しているようです。

したがって、この小さな問題を解決するには、Micro Cloudfoundry インスタンスに SSH 接続し、root として編集するだけです。

/var/vcap/packages/cloud_controller/cloud_controller/vendor/bundle/ruby/1.9.1/gems/vcap_staging-0.1.37/lib/vcap/staging/plugin/gemfile_support.rb

次のブロックを変更します。

safe_env << " PATH='%s'" % [ path.uniq.join(":") ]

base_dir = StagingPlugin.platform_config["cache"]

のように見えるように;

safe_env << " PATH='%s'" % [ path.uniq.join(":") ]
safe_env << " LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8"

base_dir = StagingPlugin.platform_config["cache"] 

何も再起動する必要はありません。アプリをもう一度プッシュするだけで、すべて正常に動作するはずです。

于 2012-06-08T07:36:10.777 に答える
2

最初に、最初のテストとして以下を cloudfoundry.com にプッシュしたとしましょう。まだMCFに取り組んでおり、それを確認したら更新を送信します.

私は非常に単純な postapp を作成し、次の [単純な] Gemfile を使用しました。

source 'https://rubygems.org'
gem 'rails', '3.1.1'
gem 'sqlite3'
gem 'mysql2'
gem 'json'
gem 'thin'
gem 'will_paginate', '~> 3.0'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
  #gem 'sass-rails',   '~> 3.2.3'
  #gem 'coffee-rails', '~> 3.2.1'
  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platform => :ruby
  gem 'uglifier', '>= 1.0.3'
end

gem 'cloudfoundry-jquery-rails'

それからした:

bundle package

vmc push postappg --runtime=ruby19

....そしてそれはうまくいきました。

于 2012-06-07T22:33:39.857 に答える