Вызов приложения Sinatra напрямую
При запуске приложения Sinatra напрямую (например, с ruby app/website/website.rb
), чтобы указать, какой веб-сервер использовать в качестве встроенного сервера, вы используете :server
опция конфигурации (Thin будет использоваться по умолчанию, если он установлен):
set :server, :thin
Чтобы указать конкретную версию для использования, вам необходимо указать, какой гем загружен.Наилучший способ сделать это, вероятно, использовать Bundler с Gemfile
, а затем вызвать require 'bunlder/setup'
на ранней стадии вашего приложения.
Если вы не используете Bundler, вы можетеУкажите, какую версию гема загружать с помощью метода gem
в вашем приложении:
gem 'thin', '1.2.2'
(сделайте это после require
выделения рубинов, если вы используете Ruby 1.8.7 или более ранней версии).
Начиная с thin start
Если вы вызываете thin
напрямую с файлом config.ru
, вы можете указать нужную версию в командной строке:
thin _1.2.2_ start -R config.ru
(это то же самое для любого двоичного файла gem: используйте _x_
в качестве первого аргумента, и будет использоваться версия x
)
В этом случае я думаю, что вынеобходимо явно использовать параметр -R
- похоже, что Thin не может автоматически найти файл config.ru
, как при простом использовании thin start
.
Если вы указали, какую версию использовать в вашемфайл приложения, вам нужно убедиться, что вы указали ту же версию в командной строке, в противном случае вы получите такие ошибки, как can't activate thin-1.2.2, already activated thin-1.2.11 (Gem::LoadError)
.
Если вы решите использовать Bundler, то при вызове bundle exec thin start
будут использованы версии в Gemfile
.