Обновление Rails 3 - PullRequest
       1

Обновление Rails 3

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

У меня есть приложение, работающее на тонком 1.2.11 за nginx.Я пытался обновить свое приложение до последней версии его драгоценных камней, используя bundle update на компьютере разработчика, передавая команду git, затем запуская cap deploy.Тем не менее, thin выдаёт мне следующую ошибку:

/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.14/lib/bundler/runtime.rb:31:in `block in setup': You have already activated rack 1.3.0, but your Gemfile requires rack 1.2.3. Consider using bundle exec. (Gem::LoadError)

На сервере у меня установлены следующие гемы:

bundler (1.0.14)
daemons (1.1.3)
eventmachine (0.12.10)
rack (1.3.0)
rake (0.9.2)
thin (1.2.11)

Мой Gemfile для моего приложения:

source 'http://rubygems.org'

gem 'rails', '3.0.7'
gem 'sqlite3'
gem 'capistrano'
gem 'thin'
gem 'RedCloth'
gem 'will_paginate', '3.0.pre2'
gem 'jquery-rails'

Я считаю, что для thin требуется стойка 1.3, а для чего-то в моем Gemfile требуется стойка 1.2.3.Я неправильно управляю своими драгоценными камнями?Как правильно управлять развертыванием и надлежащим контролем гемов?

Я обнаружил, что использование bundle exec thin start работает, но я предпочитаю решение, позволяющее мне использовать /etc/init.d/thin start.

Ответы [ 2 ]

3 голосов
/ 06 июня 2011

Пожалуйста, прочитайте это: http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/, прежде чем сказать нам, что вы предпочитаете.

Проблема в том, что вы предпочитаете запускать команду из gem, установленного в систему, для запуска приложения, которое имеет свои собственные зависимости (например, стойку)) указано в Gemfile.Вы не можете загружать две версии одной и той же библиотеки одновременно, поэтому это вызывает проблему с необходимостью 'bundle exec' в каждой команде.

0 голосов
/ 23 августа 2011

Просто сделайте bundle exec в начале ваших скриптов шапки, и он будет забирать драгоценные камни из упаковщика.

Часто у меня возникает такая же проблема, если я использую в системном / используемом в настоящее время наборе новых версий некоторых драгоценных камней.

У меня даже есть псевдоним be в оболочке для bundle exec.Новые версии rvm также автоматически связывают exec:).

...