(dlopen failed: undefined symbol: memdup) 对 SNMP 有什么影响?

What are the impacts of (dlopen failed: undefined symbol: memdup) with respect to SNMP?

在使用 SNMP 时,我无法执行 snmpwalksnmpset。然后我检查了 snmpd -H.

我看到一个错误:

dlopen(/lib/libvcpeLiTapMediationTable.so) failed: /lib/libvcpeLiTapMediationTable.so: undefined symbol: memdup dlopen(/lib/libvcpeLiTapStreamTable.so) failed: /lib/libvcpeLiTapStreamTable.so: undefined symbol: memdup

我认为我的图书馆可能因此无法动态打开。

当我在 CentOS 中以 rpms 加载我的包时,我没有错误。 但是对于相同的代码,当我将 Ubuntu 中的包作为 debian 包加载时,我看到了这个错误。

查询:

  1. SNMP 安装有什么问题吗(因为它可以在 CentOS 上运行,但不能在 Ubuntu 上运行)?还是我的 debian 软件包中缺少某些东西?

  2. 请解释这个错误对我操作的影响。

任何相关的答案都会有所帮助,因为我是新手。

谢谢。

您的 libvcpeLiTapMediationTable.so 取决于函数 memdup()。这是在你的 CentOS 上定义的,无论它是在哪里构建的,在 Net-SNMP 或它或 libvcpeLiTapMediationTable.so 在 运行 链接到的库之一中定义,但没有在你的 Ubuntu 上定义.因此,它无法加载。

Net-SNMP 在 snmplib/tools.c 中定义了 memdup(),但已重命名为 netsnmp_memdup() 以避免与可能根据 change history 定义自己版本的其他库发生冲突.也许您在两个发行版之间使用了两个不同版本的 Net-SNMP,一个有更改,一个没有更改。