Rails связывают развертывание только нескольких драгоценных камней - PullRequest
0 голосов
/ 24 февраля 2011

Мои приложения 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, а какие - из системного каталога гемов.

  1. Возможно ли это с помощью упаковщика?

  2. Как лучше всего решить эту проблему?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 01 июня 2011

Вы проверили свой файл gemlock для ссылок на -x86 gem?У меня была похожая проблема при развертывании из Windows XP на 64-битную Ubuntu.Измените их, чтобы удалить часть -x86 и снова запустите установку комплекта, это должно создать 64-битный собственный гем, если все библиотеки находятся на экземпляре.

0 голосов
/ 24 февраля 2011

Проверьте ваш файл database.yml.Убедитесь, что вы не имеете в виду адаптер, который не установлен в вашей среде.

...