如何将现有库添加到 Ubuntu snap 核心?

如何将现有库添加到 Ubuntu snap 核心?

我对折断. 如果这个问题无关紧要,请见谅。

snap当我尝试在稍微定制的 Ubuntu 系统上使用时,遇到了意想不到的副作用。

我的轻微定制是:

libjemalloc为了用(性能更好,运行良好,从未遇到问题)替换标准 malloc ,我有这个/etc/ld.so.preload

#--override the system malloc--#
/usr/lib/x86_64-linux-gnu/libjemalloc.so

可以理解的是,libjemalloc.so它不包含在 ubuntu snap 核心包中。

尝试使用时会导致以下副作用snap

$ snap list
Name         Version  Rev  Developer  Notes
core         16.04.1  888  canonical  -
hello        2.10     20   canonical  -

$ /snap/bin/hello
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libjemalloc.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libjemalloc.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libjemalloc.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
Hello, world!

问题:

  • 为什么错误重复 3 次?这是一个错误吗?
  • 为什么snap系统会尝试继承此预加载。容器不应该是自包含的并与调用者用户空间环境隔离吗?这是一个错误吗?
  • libjemalloc.so添加到核心快照的最简单方法是什么,最好作为不包含所有核心的覆盖?

相关内容