Ubuntu 18.04卢比2.5.1p57
我有一个红宝石程序,我使用了许多不同的linux系统。在其中一种情况下,它产生了来自require 'savon'的警告。
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宝石,但这并没有什么区别。
发布于 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,并意识到有什么可怕的错误。
https://stackoverflow.com/questions/71848828
复制相似问题