Невозможно обновить драгоценные камни на рабочем сервере
Невозможно обновить камни на рабочем сервере.
Я пробовал 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
Ответы
Ответ 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://
помогло мне заставить все это работать.