Make Bundler verwenden verschiedene Edelsteine für verschiedene Plattformen
Ich arbeite daran, eine unserer Rails 2.3.8-Apps auf Rails 3 zu aktualisieren, und bin auf ein ärgerliches Problem mit Bundler und Bereitstellung gestoßen. Ich entwickle die Anwendung auf einem Windows-Computer, aber in der Produktionsumgebung wird Ubuntu Linux ausgeführt. Nun, mein Problem ist, dass der Bundler das @ ignoriemysql
Juwel in der Produktionsumgebung, und Passagier spuckt aus: "!!! Fehlender MySQL-Edelstein. Füge ihn zu deiner Gemfile hinzu: Edelstein 'MySQL', '2.8.1'"
Hier ist meinGemfile
:
# Edit this Gemfile to bundle your application's dependencies.
# This preamble is the current preamble for Rails 3 apps; edit as needed.
source 'http://rubygems.org'
gem 'rails', '3.0.0'
gem 'net-ldap', :require => 'net/ldap'
gem 'highline', :require => 'highline/import'
gem 'mysql', '2.8.1'
gem 'net-ssh', :require => 'net/ssh'
# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
group :development, :test do
gem 'fakeweb', :require => 'fakeweb'
gem 'flexmock', :require => 'flexmock/test_unit'
end
Wie Sie sehen können, diemysql
gem ist angegeben. Bei der Bereitstellung ignoriert der Bundler dies jedoch. Warum? Der Grund ist, dass Bundler das folgende @ generieGemfile.lock
(nur relevante Teile enthalten):
....
mime-types (1.16)
mysql (2.8.1-x86-mingw32)
net-ldap (0.1.1)
....
Bitte beachten Sie, dass es das plattformspezifische Juwel enthält. Dies ist offensichtlich NICHT das, was ich möchte, da dieses Juwel unter Linux nicht geeignet ist (und anscheinend ignoriert wird).
Also, hat Bundler eine Möglichkeit, mit diesen Problemen umzugehen? Oder muss ich daran denken, die Version von mysql gem im generierten @ manuell zu änderGemfile.lock
Jedes Mal, wenn ich die Bundle-Installation auf meinem Entwicklungscomputer ausführe?
Danke im Voraus
Aktualisiere
Es scheint, als ob das Bundlerteam davon Kenntnis hatProble.