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

78 天前
 gam2046

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

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

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

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

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

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

632 次点击
所在节点    问与答
5 条回复
zizon
78 天前
直接把 musl 镜像的拷过去?
neptuneblank
78 天前
看看能不能用 patchelf 修改依赖?
ysc3839
78 天前
不使用 Docker 是什么原因?没有 root 权限?也许可以试试 podman ?
gam2046
78 天前
@ysc3839 #3 因为是受限的嵌入式设备,一个资源占用紧张,另一个移植 docker 工程量大。
ysc3839
78 天前
@gam2046 这种情况下可以考虑用 chroot ,还是说可用空间连一个最小的 alpine 系统都放不下了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1067182

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX