私はWindowsとLinuxの両方でSinatraを開発しています。問題は私がWebrickの代わりにThinを使っていることです.Windows用のイベントマシンは、プレリリース版でのみ動作し、Linuxは最新の安定版を使用しています。この問題を回避する方法があった場合、私は何を、多分WindowsおよびLinuxのための1 gemfileのための1 gemfileを使用して、思っていた異なるプラットフォーム用に異なるバージョンのgemをロードするためにbundlerを使用する
gem "eventmachine", "~> 1.0.0.beta.4.1", :group => :development_win
gem "eventmachine", group => :development_linux
gem "thin
:gemfileにもちろん、あなたはそうのような異なるバージョンと同じ宝石を含めることはできませんコマンドがどちらか一方をロードすることになります。
また、2つの異なるプラットフォーム用のgemfileをおそらくgitファイルで管理する方法があります。おそらくファイルのブランチを介してgitファイルを管理する方法があります。
ええと、最初の解決策は、gemfileで指定された2つのgemを持つという同じエラーを投げます。条件文は正常に動作します。 – indigo0086
2番目のアプローチは無効です.1つまたは別のgemバージョンを 'Gemfile.lock'に保存するためです。両方を保存することはできません。したがって、Win32のマシンで 'Gemfile.lock'を準備し、それをLinuxにデプロイすれば、同じバージョンの間違いが発生します。 したがって、私はまだ有効な解決策を探しています。 –
プラットフォーム:プラットフォームのアプローチは、プラットフォームによって異なる(名前のついた)宝石だけが必要な場合にはうまくいきます.Gemfile.lockをコミットして安定させることも可能です(if-elseアプローチとは違い) – prusswan