rails app runtime сообщает об иной версии гема пакета действий, чем инсталляционные пакеты - PullRequest
0 голосов
/ 26 марта 2019

После обновления до OS X 10.14 мое приложение rails больше не работает.Я пытаюсь понять, почему.Я получаю исключение, вызванное active_support_ (5.0.0.1) _lib / active_support / message_encryptor.rb в строке, которая пытается присвоить @secret для cipher.key.Исключение говорит, что ключ должен быть 32 байта.

На этом этапе моей попытки разрешения я задаюсь вопросом, почему запуск установки пакета из каталога приложения сообщает, что он устанавливает activesupport 5.0.7.2, но когда приложениезапускается (через puma), исключение выдается кодом в activesupport 5.0.0.1.rvm - мой менеджер версий ruby.Он сообщает, что работает под управлением ruby ​​2.4.1 (это версия, которую я установил до обновления).Я думаю, что OS X 10.14 поставляется с 2.3.7, но это не проблема.Rails находится на версии 5.0.0.1.Я думал, что попробую обновить Rails до 5.0.7.2.Я прочитал страницу Upgrading Ruby on Rails и изменил свой Gemfile, указав rails ~ = 5.0.7 (обычно ~ ~ 5.0.2), затем запустил rake rails :: update, который выдает ошибку «Вы уже активировали rake 12.3»..2 но ваш Gemfile требует рейка 11.3.0. '.Я не могу найти ссылку на рейк в моем Gemfile.Ошибка выдается boot.rb в требуемом 'bundler / setup'.

Я надеюсь, что кто-то может сказать мне, как обновить rails до более новой версии в надежде, что после этогоМоя первоначальная проблема исчезнет.Полный стек из журнала сервера:

ArgumentError (key must be 32 bytes):

activesupport (5.0.0.1) lib/active_support/message_encryptor.rb:72:in `key='
activesupport (5.0.0.1) lib/active_support/message_encryptor.rb:72:in `_encrypt'
activesupport (5.0.0.1) lib/active_support/message_encryptor.rb:58:in `encrypt_and_sign'
actionpack (5.0.0.1) lib/action_dispatch/middleware/cookies.rb:592:in `commit'
actionpack (5.0.0.1) lib/action_dispatch/middleware/cookies.rb:465:in `[]='
actionpack (5.0.0.1) lib/action_dispatch/middleware/session/cookie_store.rb:117:in `set_cookie'
rack (2.0.1) lib/rack/session/abstract/id.rb:353:in `commit_session'
rack (2.0.1) lib/rack/session/abstract/id.rb:224:in `context'
rack (2.0.1) lib/rack/session/abstract/id.rb:216:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/cookies.rb:613:in `call'
activerecord (5.0.0.1) lib/active_record/migration.rb:552:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
activesupport (5.0.0.1) lib/active_support/callbacks.rb:97:in `__run_callbacks__'
activesupport (5.0.0.1) lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
activesupport (5.0.0.1) lib/active_support/callbacks.rb:90:in `run_callbacks'
actionpack (5.0.0.1) lib/action_dispatch/middleware/callbacks.rb:36:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
web-console (3.4.0) lib/web_console/middleware.rb:135:in `call_app'
web-console (3.4.0) lib/web_console/middleware.rb:28:in `block in call'
web-console (3.4.0) lib/web_console/middleware.rb:18:in `catch'
web-console (3.4.0) lib/web_console/middleware.rb:18:in `call'
actionpack (5.0.0.1) > lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
railties (5.0.0.1) lib/rails/rack/logger.rb:36:in `call_app'
railties (5.0.0.1) lib/rails/rack/logger.rb:24:in `block in call'
activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:70:in `block in tagged'
activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:70:in `tagged'
railties (5.0.0.1) lib/rails/rack/logger.rb:24:in `call'
sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/request_id.rb:24:in `call'
rack (2.0.1) lib/rack/method_override.rb:22:in `call'
rack (2.0.1) lib/rack/runtime.rb:22:in `call'
activesupport (5.0.0.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/static.rb:136:in `call'
rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
railties (5.0.0.1) lib/rails/engine.rb:522:in `call'
puma (3.12.0) lib/puma/configuration.rb:225:in `call'
puma (3.12.0) lib/puma/server.rb:658:in `handle_request'
puma (3.12.0) lib/puma/server.rb:472:in `process_client'
puma (3.12.0) lib/puma/server.rb:332:in `block in run'
puma (3.12.0) lib/puma/thread_pool.rb:133:in `block in spawn_thread'
  Rendering /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
  Rendering /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
  Rendered /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (1.8ms)
  Rendering /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
  Rendered /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.1ms)
  Rendering /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
  Rendered /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (0.6ms)
  Rendered /Users/jboss/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (84.1ms)
Started PUT "/__web_console/repl_sessions/2b97efeccea3498fd96b79db013b3da9" for 127.0.0.1 at 2019-03-26 10:59:35 -0400
Started PUT "/__web_console/repl_sessions/2b97efeccea3498fd96b79db013b3da9" for 127.0.0.1 at 2019-03-26 10:59:36 -0400

Из Gemfile.lock:

    actioncable (5.0.7.2)
      actionpack (= 5.0.7.2)
      nio4r (>= 1.2, < 3.0)
      websocket-driver (~> 0.6.1)
    actionmailer (5.0.7.2)
      actionpack (= 5.0.7.2)
      actionview (= 5.0.7.2)
      activejob (= 5.0.7.2)
      mail (~> 2.5, >= 2.5.4)
      rails-dom-testing (~> 2.0)
    actionpack (5.0.7.2)
      actionview (= 5.0.7.2)
      activesupport (= 5.0.7.2)
      rack (~> 2.0)
      rack-test (~> 0.6.3)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.0, >= 1.0.2)
    actionview (5.0.7.2)
      activesupport (= 5.0.7.2)
      builder (~> 3.1)
      erubis (~> 2.7.0)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.0, >= 1.0.3)
    activejob (5.0.7.2)
      activesupport (= 5.0.7.2)
      globalid (>= 0.3.6)
    activemodel (5.0.7.2)
      activesupport (= 5.0.7.2)
    activerecord (5.0.7.2)
      activemodel (= 5.0.7.2)
      activesupport (= 5.0.7.2)
      arel (~> 7.0)
    activesupport (5.0.7.2)
      concurrent-ruby (~> 1.0, >= 1.0.2)
      i18n (>= 0.7, < 2)
      minitest (~> 5.1)
      tzinfo (~> 1.1)
.
.
.
    railties (5.0.7.2)
      actionpack (= 5.0.7.2)
      activesupport (= 5.0.7.2)
      method_source
      rake (>= 0.8.7)
      thor (>= 0.18.1, < 2.0)
    rake (12.3.2)

1 Ответ

0 голосов
/ 27 марта 2019

Что выглядит хорошо, так это то, что из вашей трассировки стека используется правильная версия ruby.Кажется странным, что ваш gemfile.lock говорит, что вы заблокированы другими драгоценными камнями, так почему же они не запускаются?(activesupport 5.0.0.1, а не 5.0.7.2)

Лично я считаю, что вам нужно включить обновление / или удалить блокировку и снова запустить установку пакета.Или отыщите драгоценности создателя проблемы и обновите их.Возможно, даже добавление ruby '2.4.1' в ваш gemfile может заставить ваш упаковщик убедиться, что он использует правильную версию ruby.Одна вещь, которая может помочь вам найти гем (ы), которые используют этот старый рейк: gem dependency rake --reverse-dependencies Как мне узнать, какой камень имеет конкретную зависимость? Затем выполните поиск до граблей 11.3.0 ипосмотрите, что его использует.

На самом деле у вас есть старая ошибка, о которой говорили: https://github.com/rails/rails/issues/25185, которая предположительно была исправлена ​​с помощью: https://github.com/rails/rails/pull/25192

Вопрос в том, почемуваши рельсы ведут себя так, как будто все еще работает 5.0.0.1, когда вы обновились?Интересно, есть ли в вашем обновленном файле gem 2.4.1 новые обновленные гемы или ваш сборщик каким-то образом устанавливает их в другую версию?Возможно, также проверьте bundle show activesupport, чтобы увидеть, что трассировка ведет обратно в вашу папку rvm 2.4.1.

Этот парень может иметь возможный ответ для вас, он ответил на свой вопрос: Ошибка продукции Rails 5 activesupport

Так что, возможно, полное обновление до более высоких рельсов может спасти вас.

Надеюсь, что это поможет вам выбрать правильный путь!

...