我的程序依赖于libcurl.so.3
,但是在RHEL6中没有符号链接libcurl.so.3 ⇾ libcurl.so.4
(我可以创建此链接以使程序顺利运行)。然而,有符号链接libcurl.so ⇾ libcurl.so.4
。
我想修改libcurl.so.3.0.0.0
文件中嵌入的SONAME
,将其从libcurl.so.3
修改为libcurl.so
,这样我就可以在RHEL 6上运行我的程序而不必创建符号链接了。
我的解决方案可能不是最优的,但我认为学习如何直接修改二进制文件是有价值的。
$readelf -d libcurl.so.3.0.0
Dynamic segment at offset 0x303cc contains 25 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libssl.so.2]
0x0000000e (SONAME) Library soname: [libcurl.so.3]
我想把上面的libcurl.so.3
改成libcurl.so
。