Ada beberapa contoh di mana saya ingin mengembalikan dan menghapus semua instalasi permata sebelumnya.
Misalnya, saya perlu membantu seorang teman memigrasi mesin pengembangan rel mereka untuk menggunakan RVM. Karena mereka sebelumnya menggunakan seluruh sistem gem
, ia mengalami banyak sakit kepala ketika bekerja dengan beberapa proyek. Pada dasarnya, dia adalah anak poster untuk seorang RVM yang bertobat.
Bagaimana saya bisa menghapus semua permata dengan elegan di sistem OSX-nya?
yes Y | gem uninstall -a -I
Jawaban:
Rubygems> = 2.1.0
a
menghapus semua versiI
mengabaikan dependensix
termasuk executableRubgem <2.1.0
sumber
ERROR: While executing gem ... (Gem::InstallError) gem "test-unit" cannot be uninstalled because it is a default gem
(permata 2.0.3)for i in `gem list --no-versions`; do gem uninstall -aIx $i 2>/dev/null; done
Anda juga bisa membangun Gemfile baru dan lari
bundle clean --force
. Ini akan menghapus semua permata lain yang tidak termasuk dalam Gemfile baru.sumber
Versi berbeda yang paling sedikit, melewatkan langkah memotong, mengambil keuntungan dari opsi '--tidak ada versi':
Karena Anda menghapus semuanya, saya tidak melihat perlunya opsi 'I'. Kapan saja permata itu dihapus, tidak apa-apa.
sumber
sudo
seharusnya tidak diperlukan jika permata dipasang oleh pengguna biasa.Pertama, pastikan Anda memiliki setidaknya permata versi 2.1.0
Untuk menghapus cukup jalankan:
Anda mungkin perlu menggunakan
sudo
perintah:sumber
Gunakan salah satunya
atau
Tergantung pada apa yang Anda inginkan, Anda mungkin perlu menjalankan keduanya, karena "daftar permata" dan "daftar permata sudo" menyediakan daftar independen.
Jangan mencampur "daftar permata" yang normal dengan "permata instal" sudo-ed atau sebaliknya, Anda mungkin akhirnya menghapus permata yang diinstal sudo (sebelumnya) atau mendapatkan banyak kesalahan (yang terakhir).
sumber
Jika Anda menggunakan rubygems versi 2.1.0 atau lambat, Anda dapat mencoba:
gem uninstall --all
.sumber
Jika Anda suka melakukannya menggunakan ruby:
Bersulang
sumber
Rubygems> = 2.1.0
Jika Terminal mengembalikan kesalahan di bawah ini
Kemudian tulis perintah di atas seperti di bawah ini
Dan masukkan kata sandi akun os mac Anda Selesai !!
sumber
Dan bagi Anda yang ada di sini karena Anda ingin menghapus semua permata dengan awalan tertentu ( ahem saya melihat Anda aws-sdk!), Anda dapat menjalankan sesuatu seperti ini:
Jelas dimasukkan dalam kueri Anda, bukan
aws-sdk-
. Anda perlu-I
di sana untuk mengabaikan dependensi.Diadopsi dari jawaban Ando sebelumnya
sumber
Satu-satunya perintah membantu saya untuk membersihkan semua permata dan mengabaikan permata default, yang tidak dapat dihapus
sumber
Saya melakukan itu belum lama ini (situasi RVM switcher poster-child yang sama):
Mengambil daftar semua permata (termasuk barang versi), memotongnya untuk menyimpan hanya nama permata, lalu mencopot pemasangan semua versi permata tersebut.
Ini
sudo
hanya berguna jika Anda menginstal permata di seluruh sistem, dan tidak boleh dimasukkan kecuali diperlukan.sumber
Ketika mencoba untuk menghapus permata yang diinstal sebagai root, xargs tampaknya berhenti ketika menemukan kesalahan yang mencoba untuk menghapus instalan permata default:
Ini tidak akan berfungsi untuk semua orang, tetapi inilah yang saya gunakan sebagai gantinya:
sumber
grep di sini tidak termasuk permata default. Semua permata lainnya akan dihapus. Anda juga dapat mengawalinya dengan
sudo
jika Anda mendapatkan masalah izin.sumber