Gemfile с точными версиями против Gemfile.lock

#ruby #rubygems #bundler #gemfile #gemfile.lock

#ruby #rubygems #bundler #gemfile #gemfile.lock

Вопрос:

Есть ли какая-либо разница между указанием точных версий сторонних библиотек в Gemfile и использованием Gemfile.lock ?

Если я использую точные версии, Gemfile будет ли это так же, как распространение Gemfile.lock ?

Ответ №1:

Нет, точно указанный Gemfile и использующий a Gemfile.lock — это не одно и то же.

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

Кроме того: у вас могут быть версии gems или gem Gemfile , которые несовместимы друг с другом. A Gemfile.lock генерируется bundler и представляет набор версий gem, которые совместимы друг с другом. Если bundler не может выполнить все требуемые зависимости, он не будет генерировать Gemfile.lock .

Тем не менее: закрепите только Gemfile те версии, которые вам нужно закрепить из-за требований к версии вашего приложения. Пусть bundler найдет допустимую комбинацию и проверит ее Gemfile.lock в системе управления версиями.

Ответ №2:

если я переименую Gemfile.блокировка в Gemfile bundle install завершается ошибкой синтаксиса.