我尝试使用import.rb导入我的供应商的MIB,
我已将.mib文件放入名为mib的目录中。
/snmp-1.2.0#ls ./mib /
cpq54nn.mib cpqdmii.mib cpqhost.mib cpql2mgt.mib cpqrack.mib cpqservice.mib cpqstsys.mib .......
操作系统安装了libsmi软件包:
libsmi2-dev install
libsmi2ldbl:amd64 install
我得到了如下的错误信息,
snmp-1.2.0$ ruby -d import.rb mibs/
/usr/lib/ruby/2.1.0/rubygems.rb:1203上的异常LoadError' - 无法加载此类文件 - rubygems / defaults / ruby ExceptionNameError'at /usr/lib/ruby/2.1.0/psych/class_loader.rb:67 - 未初始化的常量BigDecimal 异常NameError'at /usr/lib/ruby/2.1.0/psych/class_loader.rb:67 - 未初始化的常量DateTime ExceptionNameError'at /usr/lib/ruby/2.1.0/psych/core_ext.rb:16 - methodto_yaml'未在Object中定义 在/usr/lib/ruby/2.1.0/psych/core_ext.rb:29中的ExceptionNameError' - 在模块中未定义methodyaml_as ExceptionNameError'at /usr/lib/ruby/2.1.0/psych/deprecated.rb:81 - undefined methodto_yaml_properties'for classObject' 我真的很感激......你帮助我解决问题。
答案 0 :(得分:0)
如果你正在加载一个没有定义冻结类的YAML文件,那么你必须在反序列化这个文件之前加载它们。
我不知道你会遇到什么,它会一直运行直到它遇到第一件事,但如果你需要DateTime
那么require 'date'
可能会解决这个问题。无论缺少什么课程,你都需要做同样的事情,在require
部分之前追踪它的定义和YAML.load
。