如何从 /usr/local 卸载 Ruby?
Posted
技术标签:
【中文标题】如何从 /usr/local 卸载 Ruby?【英文标题】:How to uninstall Ruby from /usr/local? 【发布时间】:2011-02-05 04:44:23 【问题描述】:一切都运行良好,直到我们决定将 ruby 从 1.8.6 升级到 1.8.7,然后一切都崩溃了。当我们从源代码编译 Ruby 1.8.7 时,它安装到 /usr/local/bin 中,而 Ruby 1.8.6 保留在 /usr/bin 中。 目前,我们已经卸载了 ruby 1.8.6,并且我们从 /usr/local 中删除了 ruby 1.8.7 文件。
当我们尝试“which ruby”时,它指向/usr/local。 如果有人可以帮助我们回到正轨,我们将不胜感激。并且知道如何从 /usr/local 卸载 ruby。 我们尝试了 yum remove ruby ,它从 /usr/bin 中删除了 ruby。谢谢和干杯!
【问题讨论】:
对于 Mac OS 用户,> brew uninstall ruby 应该可以工作 【参考方案1】:编辑:正如 cmets 中所建议的那样。此解决方案适用于 Linux 操作系统。如果您从包管理器手动安装了 ruby,那也是如此。
如果你想拥有多个 ruby 版本,最好拥有RVM。在这种情况下,您不需要删除 ruby 旧版本。
如果要删除,请按照以下步骤操作:
首先你应该找到 Ruby 在哪里:
whereis ruby
将列出它在您的系统上存在的所有位置,然后您可以显式删除它们。或者你可以使用这样的东西:
rm -rf /usr/local/lib/ruby
rm -rf /usr/lib/ruby
rm -f /usr/local/bin/ruby
rm -f /usr/bin/ruby
rm -f /usr/local/bin/irb
rm -f /usr/bin/irb
rm -f /usr/local/bin/gem
rm -f /usr/bin/gem
【讨论】:
在建议某人从/usr
中删除 Ruby 之前,找出它运行的操作系统和版本真的很重要。 Apple 在 Snow Leopard 中包含 Ruby,并有代码从应用程序中调用它。删除这些将静默地破坏应用程序。如果它是 Linux 系统,并且 Ruby 是通过包管理器安装的,那么应该使用它来删除文件。而且,在任何一种情况下,使用 RVM 之类的东西都可以完全消除删除预安装 Ruby 的需要。
如果有人复制/粘贴了 rm 命令的那块,就会感到悲伤。不要在没有阅读孩子的情况下复制/粘贴。
在删除 ruby 时,不要忘记删除其他与 ruby 相关的内容,例如 erb
、gem
、irb
、rake
、rdoc
、ri
、@987654331 @(对我来说,/usr/local/bin
)。【参考方案2】:
如果 1.8.6 在 /usr/bin
中,卸载它不是一个好主意。它归操作系统所有,预计会存在。
如果您将/usr/local/bin
放在您的PATH 中/usr/bin
之前,那么您在/usr/local/bin
中安装的东西将在/usr/bin
中任何同名的东西之前找到,有效地覆盖或更新它们,而实际上并没有这样做。您仍然可以通过在您的 #! 中明确使用 /usr/bin
来联系他们。代码顶部的解释器调用行。
@Anurag 推荐使用 RVM,我将支持它。除了操作系统的 1.8.6 之外,我还使用它来管理 1.8.7 和 1.9.1。
【讨论】:
【参考方案3】:在 /usr/bin 中创建一个名为“ruby”的symlink,并将其指向最新安装的 ruby。
你可以使用ln -s /usr/bin/ruby /to/the/installed/ruby/binary
之类的东西
希望这会有所帮助。
【讨论】:
您的意思是 /etc/bin/ruby 还是 /usr/bin/ruby?此外,还有一些额外的与 ruby 相关的名称需要链接,例如 irb、rdoc 等。 Greg,我的错...你指出的正确,它是 /usr/bin/ruby,就像第一行一样。我会纠正它。谢谢:-) 如果操作系统默认将 Ruby 安装在/usr/bin
中,我建议不要在 /usr/bin
中链接到其他版本的 Ruby。在 Apple 的 Snow Leopard 上,Apple 现在正在安装使用预装在 /usr/bin
中的 Ruby 1.8.7 的代码。弄乱它可能会导致该应用程序或以后出现的任何细微错误/故障。我认为最好使用 RVM 来管理沙盒红宝石或安装到 /usr/local/bin
或可能在 /opt/
下的某个地方并调整您的路径;把它放在系统不会看到的地方。【参考方案4】:
如果 ruby 是按以下方式安装的:
./configure --prefix=/usr/local
make
sudo make install
您可以通过以下方式卸载它:
检查已安装的 ruby 版本;让我们假设 2.1.2
wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.bz2
bunzip ...
tar xfv ...
cd ruby-2.1.2
./configure --prefix=/usr/local
make
sudo checkinstall
# will build deb or rpm package and try to install it
安装后,您现在可以删除软件包,它将删除目录/文件/等。
sudo rpm -e ruby # or dpkg -P ruby (for Debian-like systems)
可能还有一些工件:
Removing ruby ...
warning: while removing ruby, directory '/usr/local/lib/ruby/gems/2.1.0/gems' not empty so not removed.
...
手动删除它们。
【讨论】:
【参考方案5】:sudo make uninstall
使用官方下载页面中的 Ruby 2.4 tar 为我解决了问题。
【讨论】:
【参考方案6】:这样做:
sudo apt purge ruby
【讨论】:
以上是关于如何从 /usr/local 卸载 Ruby?的主要内容,如果未能解决你的问题,请参考以下文章