Libraries
如何為庫和二進製文件創建環境?
我有一個無法在我的桌面 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_call”失敗!
我該怎麼辦?
這看起來像是載入程序的問題。即您正在使用來自外部環境的載入程序。
嘗試在命令前加上 /data/LTS/lib/ld.so 或 ld-XYso 這是載入程序,通過這樣做,您將使用封閉系統中的載入程序。
找到原因。這是因為 ld.so 的絕對路徑。無需進一步修改, /data/LTS/usr/bin/python 將使用來自實際系統的 ld.so 而不是假環境。
/data/LTS/lib/ld.so /data/LTS/usr/bin/python /tmp/test.py
作品。