首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从红宝石需要的稀树树那里得到警告

从红宝石需要的稀树树那里得到警告
EN

Stack Overflow用户
提问于 2022-04-12 20:34:05
回答 1查看 35关注 0票数 0

Ubuntu 18.04卢比2.5.1p57

我有一个红宝石程序,我使用了许多不同的linux系统。在其中一种情况下,它产生了来自require 'savon'的警告。

代码语言:javascript
复制
elasticsearch@secesprd02:~$ ruby /usr/local/tools/dev/es-cluster/bin/send-json.rb  -v --cluster test -c /usr/local/tools/dev/conf/conf.json  -r name=ES-api-winlogbeat json/winlogbeat-api-key
/var/lib/gems/2.5.0/gems/akami-1.3.1/lib/akami/wsse.rb:99: warning: shadowing outer local variable - key
/var/lib/gems/2.5.0/gems/akami-1.3.1/lib/akami/wsse.rb:99: warning: shadowing outer local variable - v1
/var/lib/gems/2.5.0/gems/akami-1.3.1/lib/akami/wsse.rb:99: warning: shadowing outer local variable - v2
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59: warning: loading in progress, circular require considered harmful - /var/lib/gems/2.5.0/gems/gyoku-1.3.1/lib/gyoku/hash.rb
    from /usr/local/tools/dev/es-cluster/bin/send-json.rb:8:in  `<main>'
    from /usr/local/tools/dev/es-cluster/bin/send-json.rb:8:in  `require_relative'
    from /usr/local/tools/dev/common-library/lib/app-configure.rb:3:in  `<top (required)>'
    from /usr/local/tools/dev/common-library/lib/app-configure.rb:3:in  `require_relative'
    from /usr/local/tools/common-library/lib/SecretServer.rb:1:in  `<top (required)>'
    from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39:in  `require'
    from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in  `rescue in require'
    from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in  `require'
    from /var/lib/gems/2.5.0/gems/savon-2.12.1/lib/savon.rb:26:in  `<top (required)>'
    from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in  `require'
...

该程序运行时除了翘曲之外没有任何明显的问题。

我更新了稀树草原和akami宝石,但这并没有什么区别。

EN

回答 1

Stack Overflow用户

发布于 2022-04-13 08:42:56

此警告是由于

加载过程中,循环要求被认为是有害的- /var/lib/gems/2.5.0/gems/gyoku-1.3.1/lib/gyoku/hash.rb

这不应对您造成任何损害,因为require跟踪已经加载的文件,因此应用程序的行为不应受到任何影响。

这方面的一个很好的概述可以在这个答案上找到。

在正常情况下,要求同一个文件两次是可以的,因为require保存了它已加载的库的记录,而忽略了第二个调用。看起来,如果您所需要的库以某种方式要求自己,那么您就会得到这个错误,而这不是需要处理的东西--在将库添加到列表之前,大概需要完成要求操作。因此,如果在a.rb中需要b.rb,在b.rb中需要a.rb。然后当你写require "a"的时候 *开始需要a.rb *开始需要b.rb *重新开始要求a.rb,并意识到有什么可怕的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71848828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档