Невозможно обновить драгоценные камни на производственном сервере - PullRequest
31 голосов
/ 22 июля 2011

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

Я пробовал 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

EDIT

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

Ответы [ 7 ]

46 голосов
/ 22 июля 2011

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

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

Всегда не забывайте:

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

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

9 голосов
/ 31 декабря 2011

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

7 голосов
/ 14 марта 2015

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

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'

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

3 голосов
/ 14 мая 2015

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

2 голосов
/ 02 февраля 2012

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

1 голос
/ 21 февраля 2013

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

1 голос
/ 17 апреля 2012
Не удалось установить

bundle на моей машине "разработки" из-за mysql-gem на osx ...

Мне также потребовалось быстрое исправление.Поэтому я клонировал репо в новую папку на производственном компьютере, запустил там «комплектную установку» и зафиксировал Gemfile.lock в репо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...