私はWindows上で開発し、Linuxに配備しているRailsアプリケーションを持っています。私は、将来私がLinuxに全面的に切り替えると思う。とにかく、Linuxでは私は 'execjs'と 'therubyracer'が必要ですが、Win7ではそれらは必要ありません。だから、私はgemfileにこれらの行を置く:gemfileの作業で ":platforms =>"を使用していますか?
gem 'therubyracer', :platforms => :ruby
gem 'execjs', :platforms => :ruby
は、Linux VM上bundle install
蘭とアプリは罰金を起動しました。しかし、Windows上で私が手:
Uncaught exception: Could not find execjs-1.2.11 in any of the sources
さて、私は(PLATFORMS下here)読んだもの、それは宝石だけ特定のプラットフォームで使用されるか、またはプラットフォームを設定しなければならない場合は、ユーザーが指定することができます」と言われますから、 "ruby C Ruby (MRI) or Rubinius, but NOT Windows
:彼らは」
gem "weakling", :platforms => :jruby
そして、それは言うと、サンプルはこれです"。だから私には、バンドルラーはWindowsのexecjs
行を無視するべきだと言われています。私はドキュメントについて何かが欠けていたりバンドラーは、プラットフォームのコマンドを無視している私に言うだから
Installing execjs (1.2.11)
:しかし、私はbundle install
を実行したときに、Windows上で、私はこれを見ました。私は何か間違っているのですか?
PS>bundle -v
Bundler version 1.0.21
必要な情報は、GemfileのプラットフォームがOSではなくRubyの実装を指していることです。 :ruby ==:mriすべてのOSプラットフォーム上にあるので、宝石が1つのOSにインストールされないようにすることはできません。 – ffoeg
@ffoegドキュメントの行(ruby:C Ruby ... NOT Windows)はあなたに同意しません – jcollum
私は訂正します。あなたの質問に対する答えは変わりません。 Bundlerのプラットフォームは動作しますが、この場合に使用するメカニズムではありません。下の私の答えを見てください。 – ffoeg