如何通过yum安装wireshark但是依赖于libpcap这是构建安装

时间:2016-09-22 03:25:08

标签: wireshark yum libpcap

我已经构建了安装libpcap 1.7.4。

现在我想通过yum安装wireshark,但它提示需要依赖libpcap 1.4.0。

The install info

如何通过yum安装wireshark,但是使用我自己安装的依赖libpcap 1.7.4。

1 个答案:

答案 0 :(得分:0)

原则上你不能。 CentOS存储库中的Wireshark动态链接到libpcap包中的libpcap。 wireshark二进制文件知道要搜索的内容(我的wireshark被编译为wireshark-gtk):

$ readelf -d /usr/bin/wireshark-gtk | grep libpcap
 0x0000000000000001 (NEEDED)             Shared library: [libpcap.so.1]

它将搜索libpcap.so.1的动态库路径。 yum知道它(因为打包器在制作RPM时很小心)并且不允许你在没有安装lib的情况下安装wireshark。无论你自己编写的是什么都无关紧要,责任包装商还没有看到它,因此yum不会考虑它。

绝对没有什么可以做的。如果要通过libpcap-1.4.0安装wireshark,则需要安装yum。然而,这并不意味着当wireshark运行时你需要使用 libpcap-1.4.0

黑客攻击

出于测试目的,GNU ld(包含共享库的链接器)了解名为LD_LIBRARY_PATH的环境变量。首先搜索该变量中的路径(目录)以加载共享库。因此,您可以执行以下操作:

$ export LD_LIBRARY_PATH=/path/to/your/compiled/libpcap
$ wireshark

这将加载wireshark并在从给定路径加载到内存中的libpcap而不是由yum安装的libpcap(在/usr/lib中)。请注意,您需要确保您有一个名为libpcap.so.1的软链接指向libpcap.so.1.7.4(该创建应创建它)。

免责声明:这可能会破裂!在生产环境中使用LD_LIBRARY_PATH是一个非常糟糕的主意(但wireshark不是一个经常在关键任务环境中使用的软件)。您现在不依赖于发行版维护者(在最新系统的场景中测试他们的软件包),但是对于wireshark和libpcap的开发人员要小心不要引入破坏的向后兼容性(通常不会测试)。

理论上,没有什么可以破解,因为共享库中的sonames应该向后兼容。即libpcap-1.7.4应与libpcap-1.4.0完全向后兼容。但有时会弹出向后兼容性问题。