【问题标题】:How to copy an executable with all needed libraries?如何使用所有需要的库复制可执行文件?
【发布时间】:2017-08-21 04:22:04
【问题描述】:

我有两个完全相同的 (Linux-) 系统,但一个只安装了一组最少的软件包。在一个系统上,我有一个正在运行的(二进制/ELF)可执行文件,我想将它复制到另一个系统(使用最少的设置)。

现在我还需要一种方法来复制所有需要的共享库。目前我在源系统上启动应用程序,然后通过输出

lsof | grep <PID> 

ldd <FILE>

获取应用程序当前加载的所有库的列表并手动复制它们。

现在我的问题是:在我开始自动化这种方法并遇到许多小问题并最终得到另一个重新发明的轮子之前 - 有没有一种工具已经为我实现了自动化?我现在梦寐以求的工具会像这样工作:

$ pack-bin-for-copy <MY_EXE>

它创建了一个.tgz,其中包含运行此可执行文件所需的所有共享库。

$ cp-bin <MY_EXE> user@target:/target/path/

只复制一次二进制文件..

注意:我不需要专业的方式部署应用程序(通过 RPM/apt/等)。我正在寻找“暂时”的解决方案。

【问题讨论】:

标签: linux dependencies shared-libraries executable


【解决方案1】:

如果您还在链接时启用-Wl,--no-dynamic-lookupldd 的用法是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-03
    • 2011-08-23
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2021-03-05
    相关资源
    最近更新 更多