如何为库和二进制文件创建环境?

如何为库和二进制文件创建环境?

我有一个工具无法在我的桌面 Linux 下运行。所以我想创建一个包含其所有要求的文件夹,并在该文件夹中运行它。由于某种原因,虚拟机或容器不是这里的解决方案。

我已经在 中引导了 Ubuntu Trusty /data/LTS,并通过在 中运行 chroot Jail 来安装该工具所需的一切/data/LTS

现在我发出:

PATH=/data/LTS/usr/local/sbin:/data/LTS/usr/local/bin:/data/LTS/usr/sbin:/data/LTS/usr/bin:/data/LTS/sbin:/data/LTS/bin \
LD_LIBRARY_PATH=/data/LTS/usr/local/lib:/data/LTS/usr/lib/x86_64-linux-gnu:/data/LTS/usr/lib:/data/LTS/lib/x86_64-linux-gnu:/data/LTS/lib \
PYTHONHOME=/data/LTS/usr \
/data/LTS/usr/bin/python /tmp/test.py

我得到:

ld.so 检测到不一致:dl-close.c:759:_dl_close:断言“map->l_init_used”失败!

我应该怎么办?

答案1

这看起来像是加载程序的问题。即您正在使用来自外部环境的加载程序。

尝试在命令前添加 /data/LTS/lib/ld.so 或 ld-XYso 这是加载程序,通过执行此操作,您将使用封闭系统中的加载程序。

答案2

原因找到了。这是因为ld.so的绝对路径。无需进一步修改,/data/LTS/usr/bin/python 将使用实际系统中的 ld.so 而不是假环境。

/data/LTS/lib/ld.so /data/LTS/usr/bin/python /tmp/test.py作品。

相关内容