Kể từ lần thứ hai thực hiện bundle install
, phụ thuộc được tải từ Gemfile.lock miễn là Gemfile không bị thay đổi.Điều gì sẽ xảy ra khi sửa đổi Gemfile.lock trực tiếp?
Nhưng tôi tự hỏi cách phát hiện thay đổi được thực hiện giữa hai tệp đó. Ví dụ, nếu tôi đang thêm một phụ thuộc mới trực tiếp vào Gemfile.lock mà không cần thêm nó vào Gemfile (trái ngược với cách thực hành tốt nhất kể từ khi Gemfile.lock được tạo tự động từ Gemfile), thì hãy xem xét Gemfile như là một Gemfile như là đã thay đổi?
Thật vậy, quy trình bundle install
có so sánh toàn bộ cây Gemfile và Gemfile.lock để phát hiện thay đổi không?
Nếu có, ngay cả khi tôi thêm phụ thuộc trực tiếp vào Gemfile.lock, Gemfile sẽ được phát hiện là đã thay đổi (kể từ khác) và sẽ xóa lại Gemfile.lock (do đó mất phụ thuộc bổ sung ...)
Quá trình bundle install
kể từ khi khởi chạy lần thứ hai là gì?
Để rõ ràng hơn, câu hỏi của tôi là:
Thay đổi chỉ dựa trên Gemfile? Điều đó có nghĩa là bundler sẽ giữ một ảnh chụp nhanh Gemfile của mỗi số thực thi bundle install
N và chỉ so sánh nó với thực thi bundle install
N + 1?
Hoặc không có ảnh chụp nhanh được tạo trong bộ nhớ bundler và bundler thực hiện so sánh với Gemfile.lock mỗi lần để phát hiện xem Gemfile có được coi là thay đổi hay không.
chỉ cần xóa tệp Gemlock, đặt đá quý cần thiết của bạn vào tệp gem và chạy 'bundle install'. Đó là nó. Tôi không nghĩ là ý tưởng tốt để suy nghĩ nhiều về tập tin gemlock. ;) – uday
@uDaY Tôi đồng ý với bạn nhưng tôi tò mò về quy trình này trong phần cài đặt gói :) – Mik378
Bạn đã đọc [this] (http://gembundler.com/rationale.html) và [this] (http://gembundler.com/man/bundle-install.1.html)? –