更新到 GLIBC_2.29 时缺少 libcap.so.2

libcap.so.2 missing while updating to GLIBC_2.29

我在执行 c 中编译的 exe 文件时遇到 GLIBC 版本问题。

/lib/x86_64-linux-gnu/libm.so.6: version 'GLIBC_2.29' not found

我发现我正在使用 GLIBC_2.27。如 post 所述,我已更新为 GLIBC_2.29 安装 GLIBC_2.29 后,我使用 patchelf 命令设置库路径,如下所示,

patchelf --set-interpreter /path/to/newglibc/ld-linux.so.2 --set-rpath /path/to/newglibc/ myapp

现在我遇到了一个新的错误,

error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory

在检查提到的文件 libcap.so.2 时,我可以看到它在 /lib/x86_64-linux-gnu/ 路径中。

我不确定如何设置 libcap 的路径,因为我已经设置了 glib 的路径。

我是不是把路径设置错了?。上面步骤的路径设置有没有遗漏什么?

NOTE : My Operating system is Ubuntu 18.01

I am not sure how to set path for the libcap as I already set path to the glib.

您可以像这样设置多个 RUNPATH

patchelf --set-interpreter /path/to/newglibc/ld-linux.so.2 \
  --set-rpath /path/to/newglibc:/lib myapp