【问题标题】:Unable to get google-appengine for Jruby to work无法让 Jruby 工作的 google-appengine
【发布时间】:2011-11-22 14:50:04
【问题描述】:

我整天都在努力让 app-engine sdk 工作,但没有真正形成。

我清空了一个 gemset 并通过执行安装了google-appengine gem

sudo gem install google-appengine

我安装了以下 gems

[gdev@vbox-gdev GAE]$ sudo gem list
Password: 

*** LOCAL GEMS ***

appengine-apis (0.0.24)
appengine-rack (0.0.13)
appengine-sdk (1.4.3)
appengine-tools (0.0.17)
bundler08 (0.8.5)
google-appengine (0.0.21)
jruby-jars (1.5.6)
jruby-rack (1.0.4)
rack (1.3.5)
rubyzip (0.9.4)
[gdev@vbox-gdev GAE]$ 

this 教程 (http://code.google.com/p/appengine-jruby/wiki/GettingStarted) 中所述 我正在使用 CRuby 而不是 Jruby

[gdev@vbox-gdev GAE]$ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [i686-linux]

我在第一步中遇到了错误

[gdev@vbox-gdev GAE]$ appcfg.rb generate_app hello
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead.
=> Generating gemfile
/usr/lib/ruby/gems/1.9.1/gems/appengine-tools-0.0.17/lib/appengine-tools/gem_bundler.rb:63: warning: already initialized constant RUBY_ENGINE
=> Bundling gems
ERROR:  While executing gem ... (RuntimeError)
    Unknown command bundle
[gdev@vbox-gdev GAE]$ 

安装bundler(1.0.21 或0.8 版)会引发同样的错误。

对解决这个问题有什么建议吗?

PS:我在 virtualbox 上使用 arch linux

【问题讨论】:

  • “我使用的是 CRuby 而不是 Jruby”——你为什么希望它可以工作?您只能在 App Engine 上使用 Jruby,因此不太可能在 CRuby 上测试该库。
  • 如果您阅读code.google.com/p/appengine-jruby/wiki/GettingStarted,它明确提到使用标准 ruby​​ (Cruby) 而不是 Jruby,这就是我实际使用它的原因,我确实尝试过使用 jruby,但它不起作用跨度>

标签: ruby google-app-engine rubygems jruby


【解决方案1】:

首先,您应该坚持使用 Ruby 1.8.7。 1.9.x 从未在 appengine-jruby 上真正起飞,尽管它是可能的。此外,您应该使用 Rubygems 1.3.7。

我的本​​地宝石是这些:

appengine-rack (0.0.13)
appengine-sdk (1.4.3)
appengine-tools (0.0.17)
bundler (1.0.21)
bundler08 (0.8.5)
google-appengine (0.0.21)
haml (3.1.4)
jruby-jars (1.5.6)
jruby-rack (1.0.4)
rack (1.4.0)
rubyzip (0.9.5)
sass (3.1.12)

但你猜怎么着,除了 google-appengine gem 之外,这些都不是很重要。更重要的是:ls .gems/bundler_gems/jruby/1.8/gems:

addressable-2.2.7              extlib-0.9.15        multipart-post-1.1.5
appengine-apis-0.0.22          faraday-0.7.6        oauth2-0.5.2
appengine-rack-0.0.12          haml-3.1.4           rack-1.2.1
Basaah-pony-gae-0.2.1          jruby-jars-1.5.6     rack-flash-0.1.2
bouncy-castle-java-1.5.0146.1  jruby-openssl-0.7.2  sass-3.1.15
dm-appengine-0.0.9             jruby-rack-1.0.5     sinatra-1.2.7
dm-core-0.10.2                 json_pure-1.6.5      tilt-1.3.3
dm-validations-0.10.2          multi_json-1.1.0

这至少会给你一个简单的开始。 (可以在 Gemfile 中配置版本)

顺便说一句,你使用 Linux 很好。

【讨论】:

    【解决方案2】:

    嗯...首先,我不确定您如何准确设置您的 jruby,或者您正在运行哪个版本的 jruby。您应该从内存中在 appengine 上运行 jruby 1.5.5。

    我强烈建议您遵循本指南:http://www.khelll.com/blog/ruby/google-app-engine-jruby-sinatra-and-some-fun/

    在大约 3 或 4 个类似的指南之后,这是唯一对我有用的配置。我在使用 ssl 时遇到了一些问题,但该应用使用应用引擎 gem 运行并成功部署到应用引擎。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      相关资源
      最近更新 更多