Ruby on rails windows上的rubyracer宝石

Ruby on rails windows上的rubyracer宝石,ruby-on-rails,rubygems,bundler,devkit,Ruby On Rails,Rubygems,Bundler,Devkit,我已经在Windows上和平地开发了几个星期,没有添加任何gem,今天我决定进行捆绑更新,但我无法通过这个名为therubyracer的gem。我已经安装了devkit,它正在按照文档的验证程序工作 我的问题是:有没有办法在windows上安装这个gem 这个gem是rails 3.1需要的吗?这就是为什么现在我做了一个捆绑包更新,它被“滑入”到rails 3.0.8中,作为未来3.1迁移的早期启动姿态 编辑包括Gemfile和Gemfile.lock 为了回答您关于Rails 3.1的部分问题

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

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

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

编辑包括Gemfile和Gemfile.lock
为了回答您关于Rails 3.1的部分问题,这里是交易

Rails 3.1目前使用的gem要求在机器上安装javascript运行时。在Mac上,你通常不必担心这个问题,因为它已经有了一个,但是Linux(我认为Windows也是)你需要安装一个。因此,有时会安装rubyracer,或者有时安装node或nodej,因为它们提供了这一功能


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

不,据我所知,目前没有办法在Windows上安装此gem。问题是目前没有用于Windows的libv8 gem的预编译版本,源版本仅与*nix兼容。不一定要这样,只需要有人花点时间来编译Windows

也就是说,Windows应该附带一个JScript,即MicrosoftJavaScript运行时,Rails(via)将自动检测并使用它,因此您应该能够删除对RubyRacer的依赖


作为这颗宝石的维护者,这当然会让我感到难过,但这应该会让你走上正轨。

这就是尼克所做的,我相信:

在gem文件中,将TheRubyRacer gem与生产环境隔离,如下所示:

group :production do
  gem 'therubyracer-heroku', :platform => :ruby
end
在您的开发环境中,不要使用普通的
捆绑安装
do

bundle install --without production
或者,正如Nik所建议的,
捆绑安装开发
。当您部署到Heroku时,它将安装gem,因为它是生产环境


Rails专家:请建议进行编辑,使其不那么糟糕。

有。可以通过
gem安装therubyracer-0.11.0beta1-x86-mingw32手动下载和安装。gem

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

我已经编写了必要的DLL和gem文件,并将它们上传到github

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


噢,哇,很高兴您(维护人员)能回答我的问题,谢谢!!--谢谢你的提示,我会查的。抱歉打扰了,您知道如何在Rails中找到gem独立性吗?Nik,如果您所做的只是将VaniallRails 3.1资产管道与coffeescript一起使用,那么您应该能够只使用execjs gem,它将委托检测您是否在Windows上,并使用Microsoft JScript解释器。那么你根本不需要在你的Gemfile中安装therubyracer。我已经能够通过“bundle update development”更新Gemfile了——原因:我有一行,它的范围是Gemfile的:生产组,安装therubyracer,因为我在某处读到Heroku需要它(无论是否仍然需要,我不确定)因此每次我执行普通的“bundle update”时都会抛出相同的错误,但是如果我执行上述“bundle update development”它是有效的。--我读过很多博客文章,基本上都重申了你的观点,execjs应该介入并告诉rails使用本机MS引擎,但不是真的……嗨,只是想补充一点:你可以在gem文件中编写
gem'therubyracer',:platform=>:ruby
,这样
therubyracer
就只安装了在linux和OSX上,但不是Windows。Nathan,这是真的,但在cygwin下,你在Windows和:platform=>:ruby上没有效果,我看到Rails 3.1确实/可能需要这一点来进行资产打包。既然你提到了nodejs,我听说他们可能有一个Windows版本,我只是想在我的c上安装它首先用电脑查看rails是否“检测到”它,并忽略安装RubyRacer(目前)。谢谢。您是否也在Windows上部署该应用程序?如果不是(例如,您正在部署到Heroku)然后你可以在你的Windows环境中删除对RubyRacer的依赖。如果这是你的情况,很乐意扩展。@Dominic Sayers--不,不是在Windows上,而是在Heroku上。我猜,如果我不直接与一个根本不能安装在Windows上的gem交互,但是Heroku是Linux,那么应该可以。所以我不知道怎么做w将其从Rails应用程序的依赖项中排除。我的意思是,我从一开始就没有在Gemfile中指定它。它只是有一天在我的“bundle update”中突然出现。谢谢!是的,的确如此。我在过去几周使用的Gemfile看起来很相似,我确实进行了“bundle安装开发”为了避免任何错误消息。我希望Rails核心团队能够对Rails进行调整,从而使三个主要平台上的Rails安装/使用基本相同。感谢您不断回到这个问题,Dominicy您可以在gem文件中添加
gem'therubyracer',:platform=>:ruby
,以便
therubyracer
仅安装在linux和OSX上,而不是Windows。感谢nathan.f77的建议。我已按照您的建议编辑了我的答案。
错误:找不到有效的gem“therubyracer-0.11.0beta1-x86-mingw32.gem”(>=0)在任何存储库中
注意:您必须将gem下载到您的本地目录,并在本地引用它下载链接:@blockloop您能告诉我您是如何做到的吗?我克隆了目录,请跟随
bundle install --without production