ruby - 无法让 google-appengine 让 Jruby 工作

标签 ruby google-app-engine rubygems jruby

我一整天都在尝试让 app-engine sdk 工作,但没有任何进展。

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

sudo gem install google-appengine

我安装了以下 gem

[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

最佳答案

首先,您应该坚持使用 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。

关于ruby - 无法让 google-appengine 让 Jruby 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8228735/

相关文章:

ruby - 没有 Ruby 的 Angular 生成器

java - 如何在JSP中检索实体属性(从Servlet传递)

python - 在 Google App Engine 上创建大量数据存储对象的最节省内存的方法是什么?

ruby-on-rails - "bundle update"会更新系统上的所有 gem 还是只更新 Gemfile 中的 gem?

ruby - 使用 Docker 镜像运行 bundle 安装会忽略 bundle 配置设置

ruby-on-rails - bson Gem 构建 native 扩展失败

ruby - 经典选择器和 xpath 选择器的区别

Ruby - protected 方法

web-services - 使用 Google Apps Engine 或 Azure 的 Web 服务?

ruby - 如何创建 thor::group 生成器作为 my_command 的参数