gem 和 ruby 命令导致“需要”:无法加载此类文件 -- 监视器

gem and ruby commands causing `require': cannot load such file -- monitor

我正在 red hat 7 服务器上安装 ruby。

任何使用 gem 或 ruby 的命令,例如 $ gem$ ruby,都会产生以下错误:

/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:7:in `require': cannot load such file -- monitor (LoadError)
from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:7:in `<top (required)>'
from /usr/share/rubygems/rubygems.rb:1107:in `require'
from /usr/share/rubygems/rubygems.rb:1107:in `<top (required)>'
from <internal:gem_prelude>:1:in `require'
from <internal:gem_prelude>:1:in `<compiled>'

我试过多次卸载和重新安装 ruby,以及查找和删除 ruby 的其他版本(我目前使用的是 2.0.0)。

有人可以帮我解决这个问题吗?

您可以尝试使用 ruby 版本管理器(例如 rvmrbenv 来设置 ruby,而不是乱用系统 ruby:

rvm: https://rvm.io/

rbenv: https://github.com/sstephenson/rbenv

无法相信使用 Ruby 版本管理器的建议被接受为答案。

您真正面临的问题是您的Ruby打不开 /usr/share/ruby/monitor.rb 文件。您可以通过 运行 strace ruby -rmonitor -e '' 确认这一点。所以文件明显不见了

由于此文件来自 RHEL 7 上的 ruby-libs 软件包,请通过 运行 重新安装:

sudo yum reinstall ruby-libs

就是这样。