2017-09-18 92 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。正確? –

相關問題