ruby - 如何从我的 Linux 系统中完全删除 ruby

标签 ruby linux

我这样做破坏了系统中的 ruby​​:

mkdir /tmp/ruby && cd /tmp/ruby
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p327.tar.gz
tar xfvz ruby-1.9.3-p327.tar.gz
cd ruby-1.9.3-p327
./configure
make
sudo make install

该问题发生在许多不同的情况下:

  • 尝试访问 IRB:

    $ irb
    <internal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb (LoadError)
    from <internal:gem_prelude>:1:in `<compiled>'
    
  • 尝试安装 gem:

    $ gem install rubygems-update
    <internal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb (LoadError)
    from <internal:gem_prelude>:1:in `<compiled>'
    

我尝试使用synaptic删除所有与ruby相关的软件包,并重新安装它,但它并没有解决我的问题。我没有通过rvm安装ruby,我使用了rbenv:

rbenv uninstall 2.2.3
rbenv install 2.2.3

我还尝试了清除命令。我不知道发生了什么事。我非常绝望地寻找解决方案。目录/tmp/Ruby 已被我删除...我使用 thunar 删除了它。 请有人帮助我。

最佳答案

如果您仍然有该 /tmp/ruby 目录,请转到那里并运行

$ sudo make uninstall

此命令将从该 ruby​​ 中卸载所有以前安装的文件。它通常安装到 /usr 目录中,因此如果您有一个系统 ruby​​(从 Synaptic 或 apt-get 安装(似乎您使用的是基于 Debian 的系统,例如 Ubuntu))也可能会破坏您的系统 ruby​​,您也需要重新安装它。您可以通过以下方式找到它:

$ sudo apt-get install aptitude # install aptitude for easy searching
$ aptitude search ruby | grep ^i # find all installed packages, containing ruby in their titles 

相比之下,rbenvrvm 不使用您的系统路径进行安装,而是使用您的主文件夹并安装到 ~/.rbenv 等路径,但由于您弄乱了系统文件夹 rbenv 可能会寻找不同的位置(很难确定现在发生了什么)。

清理不需要的 ruby​​ 安装后,使用 ruby-build使用 rbenv 安装所需的 ruby​​:

$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build # install ruby-build
$ rbenv install -l # list available versions
$ rbenv install 2.2.3 # install desired version

希望对您有所帮助。

关于ruby - 如何从我的 Linux 系统中完全删除 ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32517340/

相关文章:

ruby - 如何让 Yardoc 输出到 STDOUT?

ruby - 使用 Capistrano 3.x 启动或重启 Unicorn

ruby - 两个进程同时在数据库中保存一条记录

java - 查找 JPG 图像中文本的边界框

java - 指向 env var 的 jboss 缓存位置

linux - Docker - 访问主机/进程

C++ makefiles - 头文件与外部库的依赖关系

ruby-on-rails - Application.css.scss 导致 rails 4 出现问题

linux - 在多次 sed 运行中获取重复条目

java - Netbeans Maven 项目在 Windows 中运行,但在 Linux 中不运行