代码之家  ›  专栏  ›  技术社区  ›  Ondra Žižka David Lilljegren

如何在alpine linux中为进程提供“snprintf-chk”

  •  2
  • Ondra Žižka David Lilljegren  · 技术社区  · 7 年前

    我已经编译了一个PostgreSQL插件, wal2json ,但当尝试将其加载到PostgreSQL时,它会抱怨:

    错误:无法加载库“/usr/local/lib/postgresql/wal2json.so”:重新定位/usr/local/lib/postgresql/wal2json时出错。so:\uu snprintf_chk:找不到符号

    我找到了这份文件 __snprintf_chk 是的。

    它在哪里,我应该怎么做才能提供给插件?

    我的猜测是它在某个核心库中,但在我的版本中不存在。也许我可以静态链接它?


    更新:我发现这是Alpine Linux的一个问题,它使用 musl 而不是 glibc 是的。 我已经为 浮华 ,如中所述 https://github.com/jeanblanchard/docker-alpine-glibc/blob/master/Dockerfile 是的。没用,还是一样的错误。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ondra Žižka David Lilljegren    7 年前

    我换了另一个基本的Docker图片,Ubuntu。 结果是图像变大了一点,但是 __snprintf_chk 可用且有效。

    另外,postgresql的docker映像已经 wal2json 有,我最后用它来制作。