#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
завершается ошибкой синтаксиса.