Подтвердить что ты не робот

Использование Gemfile.lock в Rails?

Какова цель "Gemfile.lock" в Rails? Я искал вокруг, но не смог найти удовлетворительного ответа.

4b9b3361

Ответ 1

Вы должны прочитать всю документацию из bundler gem: http://gembundler.com/

THE GEMFILE.LOCK

Когда вы запускаете установку пакета, Bundler сохранит полные имена и версии всех драгоценных камней, которые вы использовали (включая зависимости драгоценных камней указанный в Gemfile (5)) в файл Gemfile.lock.

Bundler использует этот файл во всех последующих вызовах для установки пакета, который гарантирует, что вы всегда используете один и тот же точный код, даже если ваш приложение перемещается по машинам.

Из-за того, как работает разрешение зависимостей, даже кажущаяся маленькой изменить (например, обновление до точечного релиза зависимости драгоценный камень в вашем Gemfile (5)) может привести к радикально отличным камням необходимо для удовлетворения всех зависимостей.

В результате вы ДОЛЖНЫ проверить ваш Gemfile.lock на управление версиями. Если вы этого не сделаете, каждая машина, которая проверяет ваш репозиторий (включая ваш производственный сервер) разрешит все зависимости снова, что приведет к разным версиям стороннего кода используется, если какой-либо из драгоценных камней в Gemfile (5) или любой из их были обновлены зависимости.

Ответ 2

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