Я выполняю некоторую работу со старой базой кода, работающей с Ruby 1.9.3 и Rails 3.2.3. Однако мне пришлось обновить до Ruby 2 (я выбрал 2.1.5, потому что я использовал его в прошлом), чтобы исправить ошибку SSL, возникшую при использовании API PayPal (моя задача заключалась в внедрении PayPal для обработки кредитных карт) , Это вызвало ошибку в конвейере активов, и после некоторого расследования я обнаружил, что Rails 3.2.3 не поддерживал Ruby 2.1.5, поэтому мне пришлось обновить до Rails 3.2.19.Bundler :: GemNotFound при завершении замедленной остановки работы во время развертывания крышки
Все работает нормально на моей локальной машине. Когда пришло время развертывания, я установил rbenv на сервер (у него не было RVM или rbenv) и установлен Ruby 2.1.5.
Теперь скрипт развертывания проходит мимо установки пакета, но когда он пытается выполнить cd /var/www/cappwww/current && RAILS_ENV=production script/delayed_job stop
, он задыхается и говорит Could not find *** in any of the sources (Bundler::GemNotFound)
.
"***" является просто заполнителем; это произошло сначала с i18n, затем multi_json. Я вручную изменил запрошенные версии этих драгоценных камней и побежал bundle update
, и это, казалось, сработало. Тем не менее, теперь он запрашивает activesupport 3.2.3, и я не могу заставить его использовать это, потому что Rails 3.2.19 требует activesupport 3.2.19.
Насколько я могу судить, это не проблема delayed_job, требующая настоящих драгоценных камней, потому что 1) они будут установлены во время установки пакета, или установка пакета будет жаловаться, если была неразрешимая зависимость, и 2) delayed_job требует activesupport> = 3 в соответствии с rubygems, поэтому 3.2.19 должен делать только штраф.
Похоже, что по какой-то причине сценарий delayed_job ищет очень специфический гемсет, в частности старый гемсет. Однако я понятия не имею, что может заставить его сделать это.
Мой Gemfile является
source 'http://rubygems.org'
gem 'rake', '10.1.1'
gem 'rmagick'
gem 'rails', '3.2.19'
gem 'devise', '2.0'
gem 'haml', '3.1.4'
gem 'sass', '3.2.3'
gem 'formtastic', '2.1.0.rc'
gem 'cocaine', '0.3.2'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
#gem 'mysql2', '0.2.6'
gem 'mysql2', '0.3.11'
#gem 'less', '~> 2.0.8'
gem 'less', '~> 2.2.1'
gem 'tinymce-rails', '3.5.8'
gem 'will_paginate', '3.0.3'
gem 'country_select', '1.0.1'
gem 'paypal-sdk-rest'
# Use unicorn as the web server
gem 'unicorn'
gem 'jquery-rails', '2.1.4'
gem 'paperclip', '3.2.1'
gem 'feedzirra', '0.0.24'
gem 'delayed_job', '4.1.0'
gem 'delayed_job_active_record', '4.1.0'
gem 'daemons', '1.1.9'
gem 'therubyracer', '0.12.0'
# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
# gem 'ruby-debug'
# gem 'ruby-debug19'
# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri'
# gem 'sqlite3-ruby', :require => 'sqlite3'
# gem 'aws-s3', :require => 'aws/s3'
gem 'rsolr', '1.0.7'
gem 'sunspot', '1.3.3'
gem 'sunspot_solr', '1.3.3'
gem 'sunspot_rails', '1.3.3'
gem 'hpricot', '0.8.6'
gem 'roadie', '2.3.4'
group :assets do
gem 'sass-rails'
gem 'uglifier'
end
# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
group :development, :test do
# Deploy with Capistrano
gem 'capistrano', '2.13.5'
gem 'capistrano-rbenv'
gem 'rspec-rails', '~> 2.6'
gem 'machinist', '2.0'
gem 'faker', '1.0.1'
gem 'syntax', '1.0.0'
gem 'progress_bar', '0.4.0'
end
group :development do
gem 'active_record_query_trace', '1.1'
end
Любой помощь будет высоко оценен, как я нахожусь в довольно далек над моей головой.