V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
humiaozuzu
V2EX  ›  问与答

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

  •  
  •   humiaozuzu · 2014-04-16 17:43:39 +08:00 · 2956 次点击
    这是一个创建于 3874 天前的主题,其中的信息可能已经有所发展或是发生改变。
    系统的某些服务依赖新版本的 libgnutls,自己编译了一个丢进了 /usr/local/lib

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

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

    求解答。。。
    5 条回复    1970-01-01 08:00:00 +08:00
    nanpuyue
        1
    nanpuyue  
       2014-04-17 08:49:55 +08:00   ❤️ 1
    可以试试针对那个奇葩的服务单独设置LD_PRELOAD环境变量。
    humiaozuzu
        2
    humiaozuzu  
    OP
       2014-04-17 10:14:59 +08:00
    @nanpuyue 后来用 LD_LIBRARY_PATH 解决,虽然还是很 dirty
    nanpuyue
        3
    nanpuyue  
       2014-04-17 22:45:28 +08:00
    @humiaozuzu 我本来想跟你说LD_LIBRARY_PATH的,但看到“无论是 /usr/local/lib 和 /usr/lib 谁先“这句我以为你试过了。
    LD_LIBRARY_PATH这个是有顺序的,前面的路径优先。
    julyclyde
        4
    julyclyde  
       2014-04-18 11:41:14 +08:00
    此时应该把系统整体升级到自带新版gnutls的版本
    humiaozuzu
        5
    humiaozuzu  
    OP
       2014-04-18 12:34:40 +08:00 via iPhone
    @julyclyde 条件不允许
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1864 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:29 · PVG 08:29 · LAX 16:29 · JFK 19:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.