V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
ntdll
V2EX  ›  问与答

glibc based 环境下,如何运行 musl based 编译的程序?

  •  
  •   ntdll · Aug 23, 2024 · 1298 views
    This topic created in 625 days ago, the information mentioned may be changed or developed.

    说来也是一个比较奇怪的需求。

    一个第三方程序(无源码,无法再次编译),原本是在 arm64 alpine 中运行,现在出于种种原因,需要把这个程序拿到 arm64 debian 里运行。

    于是就出现了 musl 引用动态库的一些问题。

    要求不使用 docker ,需要直接运行。

    我尝试在原本能运行的环境中,把所有用到的动态库都复制过来,并通过 LD_LIBRARY_PATH 指定其位置,最终还是会提示一个libstdc++.so.6: secure_getenv: symbol not found

    有大佬能提供个思路嘛,有什么简单的方法,能把 musl 相关的动态库都一次性补齐了

    zizon
        1
    zizon  
       Aug 23, 2024
    直接把 musl 镜像的拷过去?
    neptuneblank
        2
    neptuneblank  
       Aug 23, 2024 via iPhone
    看看能不能用 patchelf 修改依赖?
    ysc3839
        3
    ysc3839  
       Aug 23, 2024 via Android
    不使用 Docker 是什么原因?没有 root 权限?也许可以试试 podman ?
    ntdll
        4
    ntdll  
    OP
       Aug 23, 2024
    @ysc3839 #3 因为是受限的嵌入式设备,一个资源占用紧张,另一个移植 docker 工程量大。
    ysc3839
        5
    ysc3839  
       Aug 23, 2024 via Android
    @gam2046 这种情况下可以考虑用 chroot ,还是说可用空间连一个最小的 alpine 系统都放不下了?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1068 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 23:13 · PVG 07:13 · LAX 16:13 · JFK 19:13
    ♥ Do have faith in what you're doing.