使用mibdump.py转换私有MIB至.py时缺失依赖MIB的解决问询
解决mibdump.py转换私有MIB时缺少依赖MIB的问题
刚接触MIB和SNMP模拟碰到这种依赖问题太正常了,我来给你一步步梳理解决方法:
1. 先搞定标准依赖MIB的安装
你的私有MIB里引用了SNMPv2-SMI这些标准模块,Ubuntu系统默认可能没装全这些MIB文件。先通过包管理器一键安装:
sudo apt-get update && sudo apt-get install snmp-mibs-downloader
这个包会自动把常用的标准MIB(包括SNMPv2-SMI、SNMPv2-CONF、SNMPv2-TC)下载到/usr/share/snmp/mibs/目录下。你可以用下面的命令确认安装结果:
ls /usr/share/snmp/mibs/ | grep -E "SNMPv2-(SMI|CONF|TC)"
2. 给mibdump.py指定所有MIB源路径
mibdump.py需要同时找到你的私有MIB和依赖的标准MIB,所以得用多个--mib-source参数分别指定它们的路径。假设你的myMIB.mib放在/usr/share/snmp/my-mibs/目录下,命令应该这么写:
mibdump.py --mib-source=file:///usr/share/snmp/mibs/ --mib-source=file:///usr/share/snmp/my-mibs/ myMIB
这样工具会先去标准MIB目录找依赖模块,再去你的私有MIB目录找要转换的myMIB。
3. 小细节:确保MIB文件名和导入名匹配
有时候标准MIB的文件名可能是.txt后缀(比如SNMPv2-SMI.txt),工具一般能自动识别,但如果还是报错,可以把文件名改成和导入模块名一致的.mib后缀(比如SNMPv2-SMI.mib),避免识别问题。
4. 转换成功后继续snmpsim模拟
等你成功生成myMIB.py和myMIB.pyc文件后,把它们放到snmpsim的MIB搜索路径里(通常是/usr/local/lib/python2.7/dist-packages/snmpsim/data/mibs/,也可以通过环境变量自定义路径),再运行mib2dev.py就不会出现找不到.py[co]文件的错误了。
内容的提问来源于stack exchange,提问作者Martin Cash
相关产品推荐
相关产品推荐

