Я работаю над обновлением одного из наших приложений Rails 2.3.8 до Rails 3 и столкнулся с раздражающей проблемой с пакетом и развертыванием. Я разрабатываю приложение на компьютере под управлением Windows, но в рабочей среде работает Ubuntu Linux. Теперь моя проблема заключается в том, что связка игнорирует драгоценный камень mysql
в рабочей среде, а Passenger выплевывает: "!!! Отсутствует gem mysql. Добавьте его в свой Gemfile: gem 'mysql', '2.8. 1'"
Вот мой Gemfile
:
# Edit this Gemfile to bundle your application 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
Как вы можете видеть, указан камень mysql
. Однако при развертывании диспетчер игнорирует его. Зачем? Причина в том, что Bundler генерирует следующие Gemfile.lock
(только соответствующие части включены):
....
mime-types (1.16)
mysql (2.8.1-x86-mingw32)
net-ldap (0.1.1)
....
Обратите внимание, что он включает в себя конкретную платформу. Это, очевидно, НЕ то, что я хочу сделать, поскольку этот камень не подходит (и игнорируется) при работе под Linux.
Итак, подходит ли Bundler для решения этих проблем? Или я должен помнить, чтобы вручную изменить версию gem mysql в сгенерированном Gemfile.lock
каждый раз, когда я запускаю установку пакета на моей машине разработки?
Заранее благодарю вас!
Обновление
Кажется, что сборщик знает об этом issue.