50

几个星期以来,我一直在没有添加任何 gem 的情况下在 Windows 上进行和平开发,今天我决定进行捆绑更新,但我无法通过这个名为 therubyracer 的 gem。我已经安装了 devkit,它正在按照文档的验证程序工作。

我的问题是:有没有办法在 Windows 上安装这个 gem?

Rails 3.1 是否需要这个 gem,这就是为什么现在我做了一个包更新,它被“滑入”到 rails 3.0.8 作为未来 3.1 迁移的早期启动的姿态?

编辑包括 Gemfile 和 Gemfile.lock

# Gemfile
# source 'http://rubygems.org'
source :rubygems

gem 'rails'
gem 'rake', '0.8.7'
gem 'youtube_it'
gem 'panda'
gem "nifty-generators"
# gem "mongoid", "2.0.0.rc.7"
gem "mongoid"
gem "mongoid-eager-loading"
# gem 'mongoid_search'
gem "bson_ext", ">1.1.5"
gem 'devise'
gem 'cancan'
gem 'hirb'
# gem 'heroku'
gem 'rest-client'
gem 'less' # needs the more plugin
# gem 'hash_extension'
gem 'aws-s3', :require => 'aws/s3' # s3.rb
gem 'jquery-rails', ">= 0.2.7" # rails g jquery:install
# gem 'mongrel', ">= 1.2.0.pre2"
gem 'delayed_job'
gem 'delayed_job_mongoid'
gem 'kaminari'



# Gemfile.lock
GEM
  remote: http://rubygems.org/
  specs:
    abstract (1.0.0)
    actionmailer (3.0.8)
      actionpack (= 3.0.8)
      mail (~> 2.2.19)
    actionpack (3.0.8)
      activemodel (= 3.0.8)
      activesupport (= 3.0.8)
      builder (~> 2.1.2)
      erubis (~> 2.6.6)
      i18n (~> 0.5.0)
      rack (~> 1.2.1)
      rack-mount (~> 0.6.14)
      rack-test (~> 0.5.7)
      tzinfo (~> 0.3.23)
    activemodel (3.0.8)
      activesupport (= 3.0.8)
      builder (~> 2.1.2)
      i18n (~> 0.5.0)
    activerecord (3.0.8)
      activemodel (= 3.0.8)
      activesupport (= 3.0.8)
      arel (~> 2.0.10)
      tzinfo (~> 0.3.23)
    activeresource (3.0.8)
      activemodel (= 3.0.8)
      activesupport (= 3.0.8)
    activesupport (3.0.8)
    arel (2.0.10)
    aws-s3 (0.6.2)
      builder
      mime-types
      xml-simple
    bcrypt-ruby (2.1.4-x86-mingw32)
    bson (1.3.1)
    bson_ext (1.3.1)
    builder (2.1.2)
    cancan (1.6.5)
    daemons (1.1.3)
    delayed_job (2.1.4)
      activesupport (~> 3.0)
      daemons
    delayed_job_mongoid (1.0.2)
      delayed_job (~> 2.1.1)
      mongoid (~> 2.0.0.rc)
    devise (1.3.4)
      bcrypt-ruby (~> 2.1.2)
      orm_adapter (~> 0.0.3)
      warden (~> 1.0.3)
    erubis (2.6.6)
      abstract (>= 1.0.0)
    hirb (0.4.5)
    i18n (0.5.0)
    jquery-rails (1.0.10)
      railties (~> 3.0)
      thor (~> 0.14)
    json (1.5.2)
    kaminari (0.12.4)
      rails (>= 3.0.0)
    less (1.2.21)
      mutter (>= 0.4.2)
      treetop (>= 1.4.2)
    mail (2.2.19)
      activesupport (>= 2.3.6)
      i18n (>= 0.4.0)
      mime-types (~> 1.16)
      treetop (~> 1.4.8)
    mime-types (1.16)
    mongo (1.3.1)
      bson (>= 1.3.1)
    mongoid (2.0.2)
      activemodel (~> 3.0)
      mongo (~> 1.3)
      tzinfo (~> 0.3.22)
    mongoid-eager-loading (0.3.1)
    mutter (0.5.3)
    nifty-generators (0.4.6)
    oauth (0.4.4)
    orm_adapter (0.0.5)
    panda (1.4.2)
      json
      rest-client
      ruby-hmac (>= 0.3.2)
    polyglot (0.3.1)
    rack (1.2.3)
    rack-mount (0.6.14)
      rack (>= 1.0.0)
    rack-test (0.5.7)
      rack (>= 1.0)
    rails (3.0.8)
      actionmailer (= 3.0.8)
      actionpack (= 3.0.8)
      activerecord (= 3.0.8)
      activeresource (= 3.0.8)
      activesupport (= 3.0.8)
      bundler (~> 1.0)
      railties (= 3.0.8)
    railties (3.0.8)
      actionpack (= 3.0.8)
      activesupport (= 3.0.8)
      rake (>= 0.8.7)
      thor (~> 0.14.4)
    rake (0.8.7)
    rest-client (1.6.1)
      mime-types (>= 1.16)
    ruby-hmac (0.4.0)
    thor (0.14.6)
    treetop (1.4.9)
      polyglot (>= 0.3.1)
    tzinfo (0.3.28)
    warden (1.0.4)
      rack (>= 1.0)
    xml-simple (1.0.16)
    youtube_it (1.4.2)
      builder
      oauth (>= 0.4.4)

PLATFORMS
  x86-mingw32

DEPENDENCIES
  aws-s3
  bson_ext (> 1.1.5)
  cancan
  delayed_job
  delayed_job_mongoid
  devise
  hirb
  jquery-rails (>= 0.2.7)
  kaminari
  less
  mongoid
  mongoid-eager-loading
  nifty-generators
  panda
  rails
  rake (= 0.8.7)
  rest-client
  youtube_it
4

5 回答 5

67

不,我知道目前无法在 Windows 上安装这个 gem。问题是目前没有针对Windows的libv8 gem的预编译版本,源码版本只兼容*nix。不一定非要这样,它只需要有人花时间让编译工作在 Windows 上工作。https://github.com/cowboyd/libv8

也就是说,Windows 应该附带一个 JScript,即 Microsoft JavaScript 运行时,Rails(通过execjs)会自动检测和使用它,因此您应该能够删除对 therubyracer 的依赖。

作为该 gem 的维护者,这当然会让我感到难过,但它应该能让你走上自己的道路。

于 2011-06-15T14:24:14.007 回答
13

这基本上就是 Nik 所做的,我相信:

在您的 Gemfile 中,将 TheRubyRacer gem 隔离到生产环境,如下所示:

group :production do
  gem 'therubyracer-heroku', :platform => :ruby
end

在您的开发环境中,而不是简单的bundle install

bundle install --without production

或者,正如尼克建议的那样,bundle install development. 当您部署到 Heroku 时,它将安装 gem,因为它是生产环境。

Rails 大师:请提出修改建议以减少麻烦。

于 2011-07-22T21:02:46.573 回答
11

所有这些问题的原因是 therubyracer-0.11.0beta1-x86-mingw32.gem 和 v8.dll。

我已经编译了必要的 dll 和 gem 文件并将它们上传到 github。

下载软件包并按照说明进行操作。

https://github.com/eakmotion/therubyracer_for_windows

于 2012-12-03T07:37:09.120 回答
4

适用于 windows 的构建。可以手动下载安装gem install therubyracer-0.11.0beta1-x86-mingw32.gem

于 2012-10-10T16:17:16.250 回答
2

要回答您关于 Rails 3.1 的部分问题,这里是交易......

Rails 3.1 当前使用需要在机器上安装 javascript 运行时的 gem。在 Mac 上,您通常不必担心这一点,因为它已经有一个,但 Linux(我认为 Windows 也是)您需要安装一个。因此,有时会安装 therubyracer,或者有时会安装 node 或 nodejs,因为它们提供了这些。

然而,Rails 的一位主要人员表示,他们计划在 Rails 3.1 最终版本发布之前修复该依赖关系,因此希望这会发生并且依赖关系将会消失。

于 2011-06-15T13:27:32.830 回答