首页 > 解决方案 > 如何在 shell 启动期间修复此加载错误?

问题描述

每当我启动外壳程序时,我都会收到一个错误,说它无法加载一个宝石,奇怪地命名为ubygems(注意缺少r)。

➜ reload                       
Traceback (most recent call last):
    1: from /home/ux/.asdf/installs/ruby/2.5.5/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/home/ux/.asdf/installs/ruby/2.5.5/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- ubygems (LoadError)

 * keychain 2.8.2 ~ http://www.funtoo.org
 * Found existing ssh-agent: 6895
 * Known ssh key: /home/ux/.ssh/id_rsa

Startup time: 623610 ms

这是 asdf 的问题还是可能是其他问题?

标签: rubyshellzshrcasdf-vm

解决方案


该功能 ( ubygems.rb) 在 ruby​​ 2.5 中被删除:https ://github.com/rubygems/rubygems/issues/2393

它用于require "rubygems"从命令行执行,如下所示:

ruby -rubygems ...

请注意,“r”中的“r”-rubygems是一个标志,意思是“需要”。而“ubygems”就是它需要的东西。默认情况下未加载 ruby​​gems 时需要它。但现在它们是,所以这个功能不再有意义了。

您应该更改打开 shell 的命令。或者在 2.5 之前切换到 ruby


推荐阅读