V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gam2046
V2EX  ›  问与答

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

  •  
  •   gam2046 · 72 天前 · 630 次点击
    这是一个创建于 72 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    5 条回复
    zizon
        1
    zizon  
       72 天前
    直接把 musl 镜像的拷过去?
    neptuneblank
        2
    neptuneblank  
       72 天前 via iPhone
    看看能不能用 patchelf 修改依赖?
    ysc3839
        3
    ysc3839  
       72 天前 via Android
    不使用 Docker 是什么原因?没有 root 权限?也许可以试试 podman ?
    gam2046
        4
    gam2046  
    OP
       72 天前
    @ysc3839 #3 因为是受限的嵌入式设备,一个资源占用紧张,另一个移植 docker 工程量大。
    ysc3839
        5
    ysc3839  
       72 天前 via Android
    @gam2046 这种情况下可以考虑用 chroot ,还是说可用空间连一个最小的 alpine 系统都放不下了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2832 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:43 · PVG 20:43 · LAX 04:43 · JFK 07:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.