2017-09-18 86 views
0

我使用Linux的第16节pysnmp转换(.my)为(.py)问题。为什么总是要我安装软件包?

我成功地安装pysnmp包。我想给.my转换为.py,但我面对的错误:

使用这个命令:smidump -f python custom-mib.my | libsmi2pysnmp>custom-mib.py

产量为:

smidump: module 'custom-mib' contains errors, expect flawed output 
smidump: aborting due to severe parsing errors 
smidump: use the -k option to force continuation 
The program 'libsmi2pysnmp' is currently not installed. 
      You can install it by typing: apt install python-pysnmp4 

(包已安装为了确保,当我申请的命令:apt install python-pysnmp4,结果是“python-pysnmp4 is already the newest version

2. 当我使用命令:build-pysnmp-mib -o custom-mib.py custom-mib.my, 我面临着同样的错误说安装相同的包。

回答

0

你在运行什么pysnmp版本?它已经过了4.3.x(含),你并不需要手工进行任何MIB转换 - 它们都是由pysnmp/pysmi包相互作用的being done automatically。在你的查询中你只需要pass pysnmp MIB name - 它应该能够完成剩下的工作。

如果您不能升级到最新版本pysnmp,您可以使用来自pysmi包,而不是(很长一段时间已过时)smidump/build-pysnmp-mib/libsmi2pysnmp工具集的mibdump工具。我转换成的.py和pass those .py MIBs您旧的pysnmp实例。

下面是一个例子mibdump.py工具调用该IF-MIB转换成pysnmp类:

$ pip install pysmi 
... 
$ mibdump.py --mib-source /my/mib/dir \ 
      --mib-source http://mibs.snmplabs.com/asn1/@[email protected] \ 
      --destination-format pysnmp \ 
      IF-MIB 
Source MIB repositories: /my/mib/dir, http://mibs.snmplabs.com/asn1/@[email protected] 
Borrow missing/failed MIBs from: http://mibs.snmplabs.com/pysnmp/notexts/@[email protected] 
Existing/compiled MIB locations: pysnmp.smi.mibs, pysnmp_mibs 
Compiled MIBs destination directory: /home/user/.pysnmp/mibs 
MIBs excluded from code generation: INET-ADDRESS-MIB, PYSNMP-USM-MIB, RFC-1212, RFC-1215, RFC1065-SMI, RFC1155-SMI, RFC1158-MIB, RFC1213-MIB, SNMP-FRAMEWORK-MIB, SNMP-TARGET-MIB, SNMPv2-CONF, SNMPv2-SMI, SNMPv2-TC, SNMPv2-TM, TRANSPORT-ADDRESS-MIB 
MIBs to compile: IF-MIB 
Destination format: pysnmp 
Parser grammar cache directory: not used 
Also compile all relevant MIBs: yes 
Rebuild MIBs regardless of age: no 
Dry run mode: no 
Create/update MIBs: yes 
Byte-compile Python modules: yes (optimization level no) 
Ignore compilation errors: no 
Generate OID->MIB index: no 
Generate texts in MIBs: no 
Keep original texts layout: no 
Try various file names while searching for MIB module: yes 
Created/updated MIBs: IANAifType-MIB, IF-MIB 
Pre-compiled MIBs borrowed: 
Up to date MIBs: SNMPv2-CONF, SNMPv2-MIB, SNMPv2-SMI, SNMPv2-TC 
Missing source MIBs: 
Ignored MIBs: 
Failed MIBs: 

编译的MIB最终在~/.pysnmp/mibs除非你改变默认的目标目录。

+0

你好,它说我已经下载了最新的pysnmp版本。我已经上传带有(.my)扩展名的Mib文件,我想将它们转换为(.py)。我应该使用IWhat查询吗? –

+0

@halanakhle更新了答案 –

+0

你好,但我使用Ubuntu 16,其中pysmi包装不包含:https://repology.org/metapackage/python:pysmi/versions。正确? –

相关问题