Copot versi permata Ruby yang lama


381

Saya memiliki beberapa versi permata Ruby:

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

Bagaimana saya bisa menghapus versi lama tetapi tetap terbaru?

Jawaban:


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

Untuk menghapus versi lama dari semua permata yang diinstal, 2 perintah berikut berguna:

 gem cleanup --dryrun

Perintah di atas akan mempratinjau permata apa yang akan dihapus.

 gem cleanup

Perintah di atas sebenarnya akan menghapusnya.


Tidak berfungsi dalam pengaturan cloud9 ubuntu saya ... harus dijalankan dengan sudo
Mirv - Matt

13

Coba sesuatu seperti gem uninstall rjb --version 1.3.4.


1
pertanyaannya adalah "Bagaimana saya bisa menghapus versi lama tetapi tetap terbaru?" respons ini akan menghapus versi terbaru.
austinheiman

10

Cara untuk membersihkan versi permata yang lama.

sudo gem cleanup

Jika Anda hanya ingin melihat daftar apa yang akan dihapus, Anda dapat menggunakan:

sudo gem cleanup -d

Anda juga dapat membersihkan hanya permata tertentu dengan menentukan namanya:

sudo gem cleanup gemname

untuk menghapus versi spesifik seperti 1.1.9 saja

gem uninstall gemname --version 1.1.9

Jika Anda masih menghadapi beberapa pengecualian untuk memasang permata, seperti:

permata tidak valid: paket rusak, pengecualian saat memverifikasi: metode `ukuran 'tidak terdefinisi untuk nihil: NilClass (NoMethodError) di /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2. permata

itu, Anda dapat menghapusnya dari cache:

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

Untuk lebih detail:

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


Anda mungkin tidak boleh menggunakansudo
PR Whitehead

8

gem cleanupmenggunakan perintah sistem. Permata yang diinstal hanyalah direktori dalam sistem file. Jika Anda ingin menghapus batch, gunakan rm -R.

  1. gem environment dan perhatikan nilai GEM PATHS
  2. cd <your-gem-paths>/gems
  3. ls -1 |grep rjb- |xargs rm -R

2
"Permata yang diinstal hanyalah direktori di sistem file." senang tahu, terima kasih
filant

0

Anda mungkin perlu mengatur GEM_HOMEagar pembersihan berfungsi. Anda dapat memeriksa jalur apa yang ada untuk gemfiles dengan menjalankan:

gem env

Perhatikan bagian GEM PATHS.

Dalam kasus saya, misalnya, dengan permata yang dipasang di rumah pengguna saya:

export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.