如何卸载ruby-install安装的ruby

Jua*_*tas 16 ruby ruby-install

我在ruby-install下安装了很多rubies ~/.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
Run Code Online (Sandbox Code Playgroud)

我想卸载ruby-install安装的ruby之一,我该怎么做?

Rae*_*nha 16

不幸的是,ruby-install只是下载和编译Ruby,没有选择删除它,不像RVMrbenv.

所以,你可能需要在这里运行一些手动命令来删除所有已安装的文件.

1.找到它

通常ruby-install会在~/.rubies/文件夹中安装红宝石.

如果您不确定使用哪个ruby ruby-install,请找到该文件.installed.list,因为它在Ruby安装期间有已安装文件的列表.如果你想快速找到它,只需运行locate .installed.list,你就会得到一个简短的清单.

然后cat在位于要删除的版本的文件上运行a ,以确保哪个是要删除的ruby安装的根文件夹.

2.将其取下

然后,您只需删除目标版本所在的文件夹即可.

如果要删除ruby-1.9.3-p545,请运行:

rm -Rf ~/.rubies/ruby-1.9.3-p545
Run Code Online (Sandbox Code Playgroud)

  • 您还需要清除已安装的gem。对我来说,它们在`〜/ .gem / ruby​​ / *`中。 (2认同)

ILM*_*o_7 5

根据功能请求中的响应,删除较旧的 ruby​​ 版本的最佳方法是返回src目录并运行make uninstallrake uninstall。默认情况下,ruby-install用于$HOME/src/ruby-$version安装过程中解压的 ruby​​ 版本源。

例如,删除 ruby​​ 版本 2.6.3:

cd $HOME/src/ruby-2.6.3/ && make uninstall
Run Code Online (Sandbox Code Playgroud)

不幸的是,尽管这个 bug/请求是在 2016 年提出的,但这个功能仍然没有在ruby-install.

如果您使用默认位置安装了 ruby​​ 版本,那么您应该安全地删除$HOME/.rubies/.

rm -rf $HOME/.rubies/ruby-2.6.3
Run Code Online (Sandbox Code Playgroud)

值得注意的是,可能需要手动删除使用该 ruby​​ 版本安装的所有 gem。

例如

rm -rf $HOME/.gem/ruby/ruby-2.6.3
Run Code Online (Sandbox Code Playgroud)


Jua*_*tas 1

您只需删除红宝石所在的位置即可。

例如,卸载通过 ruby​​-install 安装的 ruby​​(默认安装位置为~/.rubies):

rm ~/.rubies/ruby-2.2.0
Run Code Online (Sandbox Code Playgroud)

如果您在删除 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
Run Code Online (Sandbox Code Playgroud)

你需要跑

gem pristin --only-executables
Run Code Online (Sandbox Code Playgroud)

因为每当 ruby​​ 更新或移动/命名时,由于 RubyGems 正在#!/path/to/ruby为所有 gem 可执行文件生成显式文件,因此需要使用 ruby​​ 可执行文件的新路径重新生成 gem bin 存根。