Cách xóa RVM (Trình quản lý phiên bản Ruby) khỏi hệ thống của tôi


575

Làm cách nào tôi có thể xóa RVM (Trình quản lý phiên bản Ruby) khỏi hệ thống của mình?


9
Không chắc chắn về ý định loại bỏ của bạn rvm- đó có thể là 'sự khó chịu' - nhưng rbenvlà một lựa chọn đáng giá. Bạn vẫn có thể quản lý nhiều phiên bản Ruby trên hệ thống của mình, nhưng nó không ghi đè các lệnh shell, không quản lý các viên ngọc ( Bundler là quá đủ) và không cần phải nạp vào shell.
Joool Schulenklopper

Câu trả lời:


923

Có một lệnh đơn giản được tích hợp sẵn sẽ kéo nó:

rvm implode

Điều này sẽ loại bỏ rvm/thư mục và tất cả các viên hồng ngọc được xây dựng trong đó. Để xóa dấu vết cuối cùng của rvm, bạn cũng cần xóa đá quý rvm:

gem uninstall rvm

Nếu bạn đã thực hiện các sửa đổi cho bạn, PATHbạn cũng có thể muốn kéo chúng. Kiểm tra .bashrc, .profile.bash_profilecác tập tin của bạn , trong số những thứ khác.

Bạn cũng có thể có một /etc/rvmrctập tin, hoặc một trong thư mục nhà của bạn ~/.rvmrccũng có thể cần phải xóa.


21
+1 để lưu ý cài đặt cấu hình và gỡ cài đặt đá quý, nếu bạn không nghe Wayne ở nơi đầu tiên và cài đặt nó làm đá quý. :)
Jed Schneider

7
Nếu bạn giống như tôi - đã cấu hình rvm trong hành khách, hãy đảm bảo cài đặt lại hành khách sau đó.
berkes

4
Nó có thể phá vỡ nó tạm thời cho đến khi bạn tạo một lớp vỏ mới, vì đó chỉ là cách mọi thứ bashhoạt động khi bạn thực hiện các lệnh thực thi PATH.
tadman

14
Tôi cũng đã có một tài liệu tham khảo về RVM trong~/.zshrc
Nate Cook

8
Bất cứ ai khác cảm thấy như gỡ cài đặt rvm nên dễ dàng hơn thế này? Nước sốt ngon
mycargus

56

Nếu các câu trả lời khác không loại bỏ RVM đủ cho bạn, trang Xử lý sự cố của RVM có phần này:

Làm cách nào để xóa hoàn toàn mọi dấu vết RVM khỏi hệ thống của tôi, kể cả đối với các cài đặt trên toàn hệ thống?

Đây là một kịch bản tùy chỉnh mà chúng tôi đặt tên là cleanout-rvm. Mặc dù bạn chắc chắn có thể sử dụng rvm implodenhư một người dùng thông thường hoặc rvmsudo rvm implodeđể cài đặt toàn hệ thống, tập lệnh này rất hữu ích vì nó hoàn toàn nằm ngoài RVM và dọn sạch RVM mà không cần sử dụng RVM, không để lại dấu vết.

#!/bin/bash
/usr/bin/sudo rm -rf $HOME/.rvm $HOME/.rvmrc /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm /usr/local/bin/rvm
/usr/bin/sudo /usr/sbin/groupdel rvm
/bin/echo "RVM is removed. Please check all .bashrc|.bash_profile|.profile|.zshrc for RVM source lines and delete
or comment out if this was a Per-User installation."

37

Khi sử dụng implodevà bạn thấy:

Psychologist intervened, cancelling implosion, crisis avoided :)

Sau đó, bạn có thể muốn sử dụng --force

rvm implode --force

Sau đó xóa RVM khỏi các vị trí sau:

rm -rf /usr/local/rvm
sudo rm /etc/profile.d/rvm.sh
sudo rm /etc/rvmrc
sudo rm ~/.rvmrc

Kiểm tra các tệp sau đây và xóa hoặc nhận xét các tham chiếu đến RVM:

~/.bashrc 
~/.bash_profile 
~/.profile 
~/.zshrc
~/.zlogin

Nhận xét / xóa các dòng sau khỏi / etc / profile:

 source /etc/profile.d/sm.sh
 source /etc/profile.d/rvm.sh

/ etc / profile là một tệp chỉ đọc nên sử dụng:

sudo vim /etc/profile

Và sau khi thực hiện thay đổi viết bằng cách sử dụng một tiếng nổ!

:w!

Cuối cùng đăng nhập lại / khởi động lại thiết bị đầu cuối của bạn.


Điều gì làm cho thông điệp ban đầu đó xuất hiện?
Newbyte

1
Nếu RVM đã được cài đặt cho một người dùng, thì nó không nên được sử dụng sudoban đầu, vì vậy không có tệp nào trong đó có trong đường dẫn /etchoặc /usr. Chỉ khi nó được cài đặt bằng nhiều người dùng hoặc sudobạn sẽ thấy điều đó, và sự tồn tại của chúng là những gợi ý mạnh mẽ rằng tài liệu cài đặt RVM KHÔNG được theo dõi để cài đặt nó ở nơi đầu tiên.
Tin Man

17

Ngoài câu trả lời của @ tadman, tôi đã loại bỏ các hàm bao trong /usr/local/bintệp /etc/profile.d/rvm.

Các hàm bao gồm:

erb
gem
irb
rake
rdoc
ri
ruby
testrb

3
Lưu ý: /usr/local/binkhông, không phải /user/local/bin.
bfontaine

7

Rất nhiều người mắc một lỗi phổ biến khi nghĩ rằng 'rvm implode' làm điều đó. Bạn cần xóa tất cả dấu vết của bất kỳ tệp .rm nào. Ngoài ra, nó sẽ mất một số xóa thủ công từ root. Hãy chắc chắn rằng nó sẽ bị xóa và tất cả các phiên bản ruby ​​bạn đã cài đặt bằng cách sử dụng nó.


6

Xóa tập lệnh tải RVM khỏi /.bash_rc hoặc /.zsh_rc, sau đó sử dụng:

rm -rf /.rvm

Hoặc là:

rvm implode

2
Là rvm rm -rf /.rvmhay rm -rf ~/.rvm?
rõ ràng

5

Chạy:

rvm implode

Bây giờ bạn cần gỡ cài đặt đá quý RVM bằng cách sử dụng:

gem uninstall rvm

Kiểm tra nếu có bất kỳ tệp RVM còn lại trong thư mục nhà của bạn, nếu có loại bỏ chúng.

Chuyển đến thư mục chính và liệt kê tất cả các tập tin ẩn:

ls -a

rm  .rvm
rm  .rvmrc

Lưu ý: RVM không phải là đá quý nên gem uninstall rvmsẽ thất bại.
Tin Man

3

Lưu ý rằng nếu bạn đã cài đặt RVM thông qua apt-get, bạn phải chạy thêm một số bước nữa rvm implodehoặc apt-get remove ruby-rvmđể làm cho nó thực sự gỡ cài đặt.

Xem " Cài đặt RVM trên Ubuntu ".


2

Nếu bạn vẫn nhận được env: ruby_executable_hooks: No such file or directorykhi gọi một số gói Ruby, điều đó có nghĩa là RVM để lại một món quà nhỏ cho bạn $PATH.

Chạy các bước sau để tìm các tập lệnh vi phạm:

grep '#!/usr/bin/env ruby_executable_hooks' /usr/local/bin/*

Sau đó rmtất cả các trận đấu. Tất nhiên, bạn sẽ phải cài đặt lại tất cả các thư viện đó với RVM-free gem.


2

Đối với những người mới sử dụng shell khác đang cố gắng sửa biến PATH

Sau khi làm theo các hướng dẫn trong câu trả lời được chấp nhận, hãy kiểm tra và sửa đổi biến PATH của bạn nếu cần:

env | grep PATH 

nếu bạn thấy "rvm" ở bất cứ đâu, bạn cần tìm ra nơi bạn đang đặt PATH và sửa đổi. Tôi đã thiết lập nó trong 3 tệp - vì vậy hãy kiểm tra tất cả các tệp sau:

vim .bashrc  

Xóa các dòng trong tệp tham chiếu rvm bằng lệnh dd. : wq để lưu và thoát.
source .bashrcđể "tải lại"

Lặp lại quy trình này (bắt đầu bằng lệnh vim) cho .profile và .bash_profile


Đây là một điểm tuyệt vời .
Tin Man

0

Theo tài liệu khắc phục sự cố của RVM " Làm cách nào để xóa hoàn toàn mọi dấu vết RVM khỏi hệ thống của tôi, bao gồm cả cài đặt trên toàn hệ thống? ":

Đây là một tập lệnh tùy chỉnh mà chúng tôi đặt tên là 'dọn dẹp-rvm'. Mặc dù bạn chắc chắn có thể sử dụng rvm implodenhư một người dùng thông thường hoặc rvmsudo rvm implodeđể cài đặt toàn hệ thống, tập lệnh này rất hữu ích vì nó hoàn toàn nằm ngoài RVM và dọn sạch RVM mà không cần sử dụng RVM, không để lại dấu vết.

#!/bin/bash
/usr/bin/sudo rm -rf $HOME/.rvm $HOME/.rvmrc /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm /usr/local/bin/rvm
/usr/bin/sudo /usr/sbin/groupdel rvm
/bin/echo "RVM is removed. Please check all .bashrc|.bash_profile|.profile|.zshrc for RVM source lines and delete or comment out if this was a Per-User installation."

0

Tôi đang chạy Ubuntu 19.04 và làm theo tất cả các hướng dẫn ở trên và sau đó một số. Cuối cùng, điều làm việc cho tôi là chạy

sudo apt autoremove rvm

và bây giờ khi tôi thử và cài đặt lại RVM, nó thực sự đã biến mất. RVM là xâm lấn, để nói rằng ít nhất.


Có rất nhiều nỗ lực để giải thích cách cài đặt RVM trên internet, và hầu hết đều rất lỗi thời và khá sai vì ứng dụng đã phát triển rất nhiều trong những năm kể từ khi nó được phát hành. Trang web của RVM là nguồn chính xác cho thông tin về cài đặt, xóa hoặc sử dụng nó. Có nhiều trang vì đây là công cụ linh hoạt, nhưng nếu bạn làm theo cài đặt cơ bản, bạn sẽ thấy nó hoàn toàn không xâm lấn và khá dễ quản lý hoặc gỡ bỏ.
Tin Man

-1

Tôi đã thử các lệnh trên để loại bỏ RVM khỏi macOS, nhưng bằng cách nào đó nó vẫn hiển thị trong đường dẫn.

Đây là những gì tôi đã làm, đã làm việc:

$ open ~/.bash_profile

Thêm vào hồ sơ bash của bạn như sau:

unset GEM_PATH
unset MY_RUBY_HOME
unset GEM_HOME

Sau đó, trong thiết bị đầu cuối chạy:

$ source ~/.bash_profile

Nó phải được khởi tạo ở một nơi nào đó; grepĐối với các biến đó trong thư mục nhà của bạn và tỷ lệ cược là tốt, bạn sẽ tìm ra nơi. Trong một cài đặt nhiều người dùng, họ có thể được trong /env/bash_profile.
Tin Man

Tôi đã sử dụng grep. Tôi đã quên không đề cập. Lời xin lỗi.
Sumi

Bạn có thể chỉnh sửa câu trả lời của mình và sửa đổi để hiển thị chính xác hơn những gì bạn đã làm. Hãy nhớ rằng, SO không phải là giải pháp tức thời cho OP cũng như về câu trả lời dài hạn cho những người khác trong tương lai đang tìm kiếm giải pháp. Mọi người quên rằng đây không phải là một trang web hấp dẫn, đó là về việc tạo ra những thay đổi tích cực trong mã lập trình viên.
Tin Man
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.