每次我在工作的时候,当我试图启动任何gem,如mailcatcher,启动我的服务器或运行命令 rails c,我看到这个错误消息,我不知道为什么它看起来像某种错误版本un ruby。
/home/圣地亚哥/.rvm/rubies/ruby-2.7.0/lib/ruby/2.7.0/net/protocol.rb:66:warning:already initialized constant Net::ProtocRetryError
/home/圣地亚哥/.rvm/gems/ruby-2.7.0/gems/net-protocol-0.2.1/lib/net/protocol.rb:68:warning:previous definition of ProtocRetryError was here
/home/圣地亚哥/.rvm/rubies/ruby-2.7.0/lib/ruby/2.7.0/net/protocol.rb:206:warning:already initialized constant Net::BufferedIO::BUFSIZE
/home/圣地亚哥/.rvm/gems/ruby-2.7.0/gems/net-protocol-0.2.1/lib/net/protocol.rb:214:warning:先前定义的BUFSIZE在这里
/home/圣地亚哥/.rvm/rubies/ruby-2.7.0/lib/ruby/2.7.0/net/protocol.rb:503:warning:already initialized constant Net::NetPrivate::Socket
/home/圣地亚哥/.rvm/gems/ruby-2.7.0/gems/net-protocol-0.2.1/lib/net/protocol.rb:541:warning:以前定义的Socket在这里
我正在使用这个ruby版本:ruby 2.7.0p0(2019-12-25 revision 647 ee 6 f091)[x86_64-Linux]
Rails版本:Rails 6.0.4.7。
我用Michal Papis,Piotr Kuczynski,韦恩E.塞甘的rvm 1.29.12(latest)安装了ruby [https://rvm.io]。
x1c 0d1x的数据
我尝试更新net-protocol gem,将ruby版本更改为2.7.0的另一个版本,但不起作用。
我想知道为什么会发生这种情况,并解决它,不再看到这种信息。
2条答案
按热度按时间0lvr5msh1#
在Ruby 3.0前后,一些(也许是全部,我不确定)Net::* 类从stdlib转移到了gem(它们被gemified)。从那时起,对于Ruby 3.0之前的版本,依赖于Net::* 类的gem(比如法拉第)可能会两次加载同一个类。一次从stdlib加载,一次从gem加载。
解决方案1升级到ruby 3.X(我不能应用这个解决方案)。解决方案2解释将net-http添加到您的gem文件中,适用于看不到消息。
2g32fytz2#
打开
net-protocol
gem,它是stdlib的一部分。