Мои приложения rails запускаются на общем хосте. У меня нет доступа к командной строке и я не могу выполнить команду bundle. Я могу запустить несколько предварительно выбранных команд рейка.
На моей машине для разработки я сделал bundle install --deployment
, так что все мои драгоценные камни находятся в вендоре / связке.
Однако проблема в том, что моя машина разработки не совместима с моим общим хостом (32/64 бита), поэтому собственное расширение gem mysql2 не работает на общем хосте. На общедоступном хосте установлен mysql2, однако.
Если я удаляю «mysql2» из Gemfile, я получаю эту ошибку: !!! Missing the mysql2 gem. Add it to your Gemfile: gem 'mysql2'
(<= это потому, что в файле database.yml для адаптера было установлено mysql вместо mysql2: </p>
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: db
pool: 5
username: user
password: pass
socket: /var/run/mysqld/mysqld.sock
(то же самое для испытания / производства)
Если я сохраню gem 'mysql2'
в своем Gemfile, я получу эту ошибку (что имеет смысл, поскольку собственное расширение было скомпилировано на другом компьютере:
/home/project/vendor/bundle/ruby/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.so: wrong ELF class: ELFCLASS32 - /home/project/vendor/bundle/ruby/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.so
Если я удалю gem 'mysql2'
, я получу:
Please install the mysql2 adapter: 'gem install activerecord-mysql2-adapter' (no such file to load -- active_record/connection_adapters/mysql2_adapter)
Я хотел бы указать, какие гемы следует загружать из каталога моего собственного приложения vendor / bundle, а какие - из системного каталога гемов.
Возможно ли это с помощью упаковщика?
Как лучше всего решить эту проблему?
Спасибо.