Как удалить ruby, установленный через ruby-install

У меня много рубинов, установленных с помощью ruby-install ~/.rubies:

ls .rubies
ruby-1.9.3-p545 ruby-2.0.0-p598 ruby-2.1.3      ruby-2.1.5
ruby-2.0.0-p451 ruby-2.1.2      ruby-2.1.4      ruby-2.2.0

Я хочу удалить один из ruby, установленный с помощью ruby-install. Как мне это сделать?

5 ответов

К сожалению, кажется, что ruby-install просто скачивает и компилирует Ruby, без возможности удалить его, в отличие от RVM или же rbenv,

Так что, вероятно, вам нужно будет выполнить несколько ручных команд, чтобы удалить все установленные файлы.

1. Найдите это

Обычно ruby-install установит рубины в ~/.rubies/ папка.

Если вы не уверены, какой ruby ​​был установлен с помощью ruby-installнайдите файл .installed.list, поскольку у него есть список установленных файлов во время установки Ruby. Если вы хотите быстро найти его, просто запустите locate .installed.list и вы получите короткий список из них.

Затем запустите cat в файле, расположенном в версии, которую вы хотите удалить, чтобы убедиться, что является корневой папкой для установки ruby, которую вы хотите удалить.

2. Удалить это

Затем вы можете просто удалить папку, в которой находится целевая версия.

Если вы хотите удалить ruby-1.9.3-p545, бежать:

rm -Rf ~/.rubies/ruby-1.9.3-p545

На основе ответов на запрос функции, лучший способ удалить более старые версии Ruby - вернуться кsrc каталог и запустить make uninstall или rake uninstall. По умолчанию,ruby-install использует $HOME/src/ruby-$version для распакованных исходников версий ruby ​​при установке.

Например, удаление Ruby версии 2.6.3:

cd $HOME/src/ruby-2.6.3/ && make uninstall

К сожалению, несмотря на то, что эта ошибка / запрос была открыта в 2016 году, эта функция все еще не реализована в ruby-install.

Если вы установили рубиновую версию, используя местоположения по умолчанию, тогда вы должны быть в безопасности, удалив определенную подпапку внутри $HOME/.rubies/.

rm -rf $HOME/.rubies/ruby-2.6.3

Стоит отметить, что может потребоваться вручную удалить все драгоценные камни, установленные с этой версией ruby.

например

rm -rf $HOME/.gem/ruby/ruby-2.6.3

Если вы установили пакет 2.3x(+) и вам нужно удалить его, внутри корневого каталога будет удаленный исполняемый файл. Перейдите в C:/, и вы увидите там папку ruby, внутри нее будет файл unin.exe. Все зависит от того, где вы решили его установить.

У меня была точно такая же проблема с моей виртуальной машиной lubuntu! Я зашел в оболочку с экрана входа в систему (нажав CNTR + ALT + F3) и проверил версии ruby ​​и gem:

ruby -v
gem -v

тогда я бегу sudo apt-get purge -y ruby как предложено Чад. Он успешно удалил как рубин, так и драгоценный камень.

Затем я перезагрузился с:

reboot

И я снова смог нормально войти в систему!

Если вы устанавливаете soft с помощью dpkg или yum, то при его удалении вы также должны использовать dpkg или yum для его очистки.

например, мы хотим удалить fcitx,

sudo apt-get purge -y fcitx

в противном случае, для мягкой установки вручную, используйте конфигурацию && make && make install, просто удалите каталог, установленный при его удалении.

для тебя пример. просто

rm -rf ~/.rubies/ruby-2.2.0

если у вас есть сомнения в том, что целевой рубин явно удаляется, просто используйте команду find для подтверждения.

найти ~ / -name "ruby-2.2.0"

Вы просто удалите, где находится рубин.

Например, удалите ruby, установленный с помощью ruby-install (расположение по умолчанию: ~/.rubies):

rm ~/.rubies/ruby-2.2.0

Если вы видите такую ​​ошибку после удаления Ruby 2.2.0-preview2 и установки Ruby 2.2.0-p0, например:

$ bundle -v
zsh: /Users/Juan/.gem/ruby/2.2.0/bin/bundle: bad interpreter:
     /Users/Juan/.rubies/ruby-2.2.0-preview2/bin/ruby: no such file or directory

Вам нужно бежать

gem pristin --only-executables

Потому что всякий раз, когда рубин обновляется или, возможно, перемещается / именуется, из-за RubyGems генерирует явное #!/path/to/ruby для всех исполняемых файлов gem потребуется заново создать заглушки для бинов с новым путем к исполняемому файлу ruby.

Другие вопросы по тегам