关于从源码编译 lib 时和系统的 lib 冲突的问题

2014-04-16 17:43:39 +08:00
 humiaozuzu
系统的某些服务依赖新版本的 libgnutls,自己编译了一个丢进了 /usr/local/lib

如果是是直接安装到 /usr/lib 会覆盖系统的文件,系统那些依赖这个动态链接库的因为覆盖的那货版本太新,运行会失败。

但是,丢 /usr/local/lib,无论是 /usr/local/lib 和 /usr/lib 谁先,都会让 libgnutls 有问题,因为他们都叫 libgnutls.so.28

求解答。。。
2948 次点击
所在节点    问与答
5 条回复
nanpuyue
2014-04-17 08:49:55 +08:00
可以试试针对那个奇葩的服务单独设置LD_PRELOAD环境变量。
humiaozuzu
2014-04-17 10:14:59 +08:00
@nanpuyue 后来用 LD_LIBRARY_PATH 解决,虽然还是很 dirty
nanpuyue
2014-04-17 22:45:28 +08:00
@humiaozuzu 我本来想跟你说LD_LIBRARY_PATH的,但看到“无论是 /usr/local/lib 和 /usr/lib 谁先“这句我以为你试过了。
LD_LIBRARY_PATH这个是有顺序的,前面的路径优先。
julyclyde
2014-04-18 11:41:14 +08:00
此时应该把系统整体升级到自带新版gnutls的版本
humiaozuzu
2014-04-18 12:34:40 +08:00
@julyclyde 条件不允许

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/108852

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX