Gemfile.lock Использовать в Rails? - PullRequest
24 голосов
/ 09 февраля 2012

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

Ответы [ 2 ]

26 голосов
/ 09 февраля 2012

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

GEMFILE.LOCK

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

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

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

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

6 голосов
/ 09 февраля 2012

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

...