Gỡ cài đặt các phiên bản cũ của đá quý Ruby


381

Tôi có một vài phiên bản của đá quý Ruby:

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

Làm cách nào để xóa phiên bản cũ nhưng vẫn giữ phiên bản mới nhất?

Câu trả lời:


654
# remove all old versions of the gem
gem cleanup rjb

# choose which ones you want to remove
gem uninstall rjb

# remove version 1.1.9 only
gem uninstall rjb --version 1.1.9

# remove all versions less than 1.3.4
gem uninstall rjb --version '<1.3.4'

259

Để xóa các phiên bản cũ hơn của tất cả các đá quý đã cài đặt, 2 lệnh sau đây rất hữu ích:

 gem cleanup --dryrun

Lệnh trên sẽ xem trước những gì đá quý sẽ được loại bỏ.

 gem cleanup

Lệnh trên sẽ thực sự loại bỏ chúng.


Không hoạt động trong thiết lập
Ubuntu9

13

Hãy thử một cái gì đó như gem uninstall rjb --version 1.3.4.


1
câu hỏi là "Làm thế nào tôi có thể loại bỏ các phiên bản cũ nhưng giữ phiên bản mới nhất?" Phản hồi này sẽ loại bỏ phiên bản mới nhất.
austinheiman

10

Cách để làm sạch bất kỳ phiên bản cũ của đá quý.

sudo gem cleanup

Nếu bạn chỉ muốn xem danh sách những thứ sẽ bị xóa, bạn có thể sử dụng:

sudo gem cleanup -d

Bạn cũng có thể dọn sạch chỉ một loại đá quý cụ thể bằng cách chỉ định tên của nó:

sudo gem cleanup gemname

chỉ xóa phiên bản cụ thể như 1.1.9

gem uninstall gemname --version 1.1.9

Nếu bạn vẫn gặp phải một số ngoại lệ để cài đặt gem, như:

gem không hợp lệ: gói bị hỏng, ngoại lệ trong khi xác minh: phương thức không xác định `size 'cho nil: NilClass (NoMethodError) trong /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.2. đá quý

, bạn có thể xóa nó khỏi bộ đệm:

rm /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem

Để biết thêm chi tiết:

http://blog.ginteruby.com/2015/04/way-to-clean-up-gem-or-remove-old.html


Có lẽ bạn không nên sử dụngsudo
PR Whitehead

8

gem cleanupsử dụng các lệnh hệ thống. Đá quý được cài đặt chỉ là các thư mục trong hệ thống tập tin. Nếu bạn muốn xóa hàng loạt, sử dụng rm -R.

  1. gem environment và lưu ý giá trị của GEM PATHS
  2. cd <your-gem-paths>/gems
  3. ls -1 |grep rjb- |xargs rm -R

2
"Đá quý được cài đặt chỉ là các thư mục trong hệ thống tập tin." thật tốt khi biết, cảm ơn
philant

0

Bạn có thể cần phải thiết lập GEM_HOMEđể dọn dẹp hoạt động. Bạn có thể kiểm tra đường dẫn nào tồn tại cho gemfiles bằng cách chạy:

gem env

Hãy lưu ý phần GEM PATHS.

Trong trường hợp của tôi, ví dụ, với đá quý được cài đặt trong nhà người dùng của tôi:

export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.