Приложение Sinatra, работающее на Dreamhost, вдруг не работает - PullRequest
1 голос
/ 27 декабря 2010

Мое приложение Sinatra нормально работало на Dreamhost еще несколько дней назад (я точно не знаю, когда оно вышло из строя).Теперь, когда я захожу в мое приложение, я получаю эту ошибку:

can't activate rack (~> 1.1, runtime) for ["sinatra-1.1.2"], already activated rack-1.2.1 for []

Я понятия не имею, как это исправить.Я попытался обновить все свои драгоценные камни, затем коснулся файла app/tmp/restart.txt, но все еще не исправил.

Я не трогал ни файлы своего приложения, ни свою учетную запись Dreamhost.Он просто сломался сам по себе (я думаю, что DH изменил что-то на их сервере, что вызвало перебор).

Когда я первоначально развернул свое приложение, мне пришлось пройти через некоторые обручи, чтобы заставить его работать, и я, кажется,думать, что я использовал драгоценные камни в произвольном месте, но я не могу точно вспомнить, где и как.Я не очень хорошо разбираюсь в Rack / Passenger.

Вот мой config.ru: (в основном из Интернета, я его не совсем понимаю)

ENV['RACK_ENV'] = 'development' if ENV['RACK_ENV'].empty? 
#### Make sure my own gem path is included first 

ENV['GEM_HOME'] = "#{ENV['HOME']}/.gems"  
ENV['GEM_PATH'] = "#{ENV['HOME']}/.gems:" 
require 'rubygems'
Gem.clear_paths  ## NB! key part 
require 'sinatra'



set :env,  :production
disable :run

require 'MY_APP_NAME.rb'

run Sinatra::Application

Ответы [ 3 ]

0 голосов
/ 28 декабря 2010

Это типичная проблема активации драгоценных камней. Используйте Bundler, чтобы обойти это.

0 голосов
/ 28 декабря 2010

Вы можете попробовать «закрепить» ваши версии гемов до того, как они потребуются.Если у вас есть доступ из командной строки к серверу, попробуйте это:

gem list

Это должно показать вам, какие гемы установлены.Но вы говорите, что у вас есть несколько пользовательских путей к драгоценным камням, которые могут не работать для этого.Что-то вызывает 'require' rack '' с версией, отличной от той, которую ожидает ваше приложение.Это может быть Пассажир, что означает, что лучшее, на что вы можете надеяться, это обновить его до последней версии Sinatra.

После Gem.clear_paths вы можете попробовать это:

0 голосов
/ 27 декабря 2010

Похоже, вы попали в неподдерживаемую версию Sinatra, Rack, Tilt.

Посмотрите здесь, как решить эту проблему: http://codex.heroku.com/past/2010/12/14/sinatra_on_dreamhost/

...