2013-07-22 44 views
14

Tôi đã loại bỏ đá quý 'mygem' khỏi Gemfile, nhưng bây giờ tôi nhận ra nó vẫn được cài đặt.Phải làm gì sau khi loại bỏ một viên ngọc từ Gemfile?

Vậy làm cách nào để yêu cầu trình bao gộp quét lại Gemfile và cập nhật Gemfile.lock, mà không cần cập nhật mọi đá quý?

Đến từ php, đây là cách tôi đã sử dụng để thực hiện việc này: composer update nothing. Có tương đương với bundler không?

Trả lời

25

Bạn có thể chạy chỉ bundle hoặc bundle install để cài đặt đá quý dựa trên Gemfile của bạn. Điều đó sẽ loại bỏ thể hiện của mygem từ tệp Gemfile.lock của bạn. Nó sẽ không, tuy nhiên, loại bỏ đá quý từ hệ thống của bạn. Để làm điều đó, hãy chạy gem uninstall mygem.

Không hoàn toàn liên quan, nhưng vẫn hữu ích:

  • bundle outdated sẽ cho bạn thấy những viên đá quý mà không phải là phiên bản mới nhất. Không nhận được quá gắn liền với danh sách này - nó khá phổ biến để có đá quý không có trên phiên bản mới nhất, bởi vì một số đá quý được cài đặt dưới dạng phụ thuộc & một đá quý có thể yêu cầu phiên bản cũ hơn của đá quý khác.
  • bundle upgrade mygem sẽ nâng cấp chỉ đá quý đó và sẽ cập nhật phụ thuộc của nó. Điều đó có nghĩa là các đá quý khác cũng có thể được nâng cấp hoặc cài đặt.
  • Bạn có thể tìm kiếm RubyGems để xem phụ thuộc của đá quý trên mỗi phiên bản của nó. Là một người dùng gem, bạn sẽ chỉ cần quan tâm đến danh sách 'Dependencies Runtime' ở dưới cùng của trang gem.
+6

Ngoài ra còn có rất tiện dụng 'lệnh clean' bó để tự động loại bỏ đá quý cũ và không sử dụng. Không làm việc với Bundler> = 1.1 và nếu đá quý được cài đặt với tùy chọn '--path'. – Torimus

+0

Ồ, tuyệt! Tôi đã sử dụng 'gem cleanup' ... Bất kỳ ý tưởng nào khác nhau? –

+0

Tôi thích các câu trả lời toàn diện như các phần này – Donato

1

Dọn dẹp đá quý chưa được sử dụng trong thư mục bundler của bạn: bó sạch --force