Невозможно обновить драгоценные камни на рабочем сервере - программирование

Невозможно обновить драгоценные камни на рабочем сервере

Невозможно обновить камни на рабочем сервере.

Я пробовал bundle install --deployment и bundle install --without development test

Но продолжайте получать:

You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.

If this is a development machine, remove the Gemfile freeze 
by running `bundle install --no-deployment

ИЗМЕНИТЬ

Я не знаю, правильно ли это, но нужно быстро исправить. Я запустил bundle install --no-deployment, затем bundle update, а затем снова запустил bundle install --deployment

4b9b3361

Ответ 1

Инструкции, вероятно, немного запутываются. Он сказал, что вы изменили свой Gemfile на своей машине разработки и просто нажали эти изменения, а не выполнили bundle install ПЕРЕД записью изменений.

Запустив bundle install, вы обновите файл Gemfile.lock. Это должно быть перенесено на ваш сервер, поскольку это более важно, чем Gemfile. Рассмотрим Gemfile планы для файла Gemfile.lock.

Всегда помните:

  • Запустите bundle install, если вы измените свой Gemfile, даже чтобы убедиться. Если он слишком медленный, пройдите --local, благодаря которому он сможет использовать локальные камни для разрешения своих зависимостей.
  • Зафиксируйте файл Gemfile и Gemfile.lock в вашем репозитории
  • Разверните Gemfile и Gemfile.lock на своих производственных серверах, чтобы убедиться, что они работают с теми же зависимостями, что и среда разработки.

Выполнение bundle update само по себе может быть истолковано как опасное, что будет обновлять все зависимости вашего приложения. В основном это опасно, если у вас нет твердых номеров версий, указанных в Gemfile. я написал об этом здесь.

Ответ 2

FWIW У меня была эта проблема и исправлена ​​ее, удалив некоторые условные операторы из моего Gemfile (условные обозначения для ОС) и набор для повторного использования.

Ответ 3

FYI: Вы также можете получить эту ошибку, если используете исходные блоки следующим образом:

source 'https://rails-assets.org' do
  gem 'rails-assets-jquery'
end

Вы увидите восклицательный знак в Gemfile.lock для этого драгоценного камня:

  rails-assets-jquery!

Просто укажите дополнительный источник, т.е.

source 'https://rails-assets.org'
gem 'rails-assets-jquery'

(BTW cf. здесь об использовании нескольких источников драгоценных камней.)

Ответ 4

У меня возникла проблема с тем, что мой производственный сервер по-прежнему использовал старую версию драгоценного камня, хотя Gemfile.lock показал правильную обновленную версию. Мой сервер был запущен на Unicorn - и выключение/запуск его резервного копирования снова устранило проблему - вместо отправки сигнала HUP, который сделал все, чтобы устранить проблему.

Ответ 5

Это может быть вызвано старой версией драгоценного камня поставщика на сервере, на котором вы развертываете (в данном случае - производство). Вход в сервер и запуск gem update bundler решил проблему для меня. Сервер, на котором я развертывал, выполнял версию 1.7.4, а текущая версия - 1,9.

Ответ 6

Не удалось установить пакет на моей машине разработки из-за mysql-gem на osx...

Мне также понадобилось быстрое исправление. Поэтому я клонировал репо в новую папку на производственной машине, запустил "bundle install" и передал Gemfile.lock в репо.

Ответ 7

У меня была эта проблема (Ubuntu 12.10 и 12.04, одна из которых за прокси-сервером). Моя проблема заключалась в том, что у меня были некоторые протоколы git:// в Gemfile. Изменение этого параметра на http:// помогло мне заставить все это работать.