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?
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?
Câu trả lời:
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, PATH
bạn cũng có thể muốn kéo chúng. Kiểm tra .bashrc
, .profile
và .bash_profile
cá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/rvmrc
tập tin, hoặc một trong thư mục nhà của bạn ~/.rvmrc
cũng có thể cần phải xóa.
bash
hoạt động khi bạn thực hiện các lệnh thực thi PATH
.
~/.zshrc
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ụngrvm implode
như một người dùng thông thường hoặcrvmsudo 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."
Khi sử dụng implode
và 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.
sudo
ban đầu, vì vậy không có tệp nào trong đó có trong đường dẫn /etc
hoặc /usr
. Chỉ khi nó được cài đặt bằng nhiều người dùng hoặc sudo
bạ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.
Ngoài câu trả lời của @ tadman, tôi đã loại bỏ các hàm bao trong /usr/local/bin
tệp /etc/profile.d/rvm
.
Các hàm bao gồm:
erb
gem
irb
rake
rdoc
ri
ruby
testrb
/usr/local/bin
không, không phải /user/local/bin
.
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ó.
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
rm -rf /.rvm
hay rm -rf ~/.rvm
?
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
gem uninstall rvm
sẽ thất bại.
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 implode
hoặ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 ".
Nếu bạn vẫn nhận được env: ruby_executable_hooks: No such file or directory
khi 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 đó rm
tấ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
.
Đố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
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 implode
như một người dùng thông thường hoặcrvmsudo 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."
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.
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
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
.
rvm
- đó có thể là 'sự khó chịu' - nhưngrbenv
là 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.