如何為庫和二進位檔案建立環境?

如何為庫和二進位檔案建立環境?

我有一個工具無法在我的桌面 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作品。

相關內容