我知道这个工具存在,但我不记得谷歌的搜索词。
我正在寻找一个工具,它采用 Linux 上具有动态库依赖项的二进制文件,并将该二进制文件通过 chroot 包装到环境的本地副本中,以便我可以将该目录复制到新机器上,并且所有动态库都位于该目录中,二进制文件可以找到它们。
我正在寻找什么工具?
答案1
你可能正在寻找的是静态器(http://statifier.sourceforge.net) 和貂(http://www.magicermine.com)。
Statifier 是免费软件,而 Ermine 是专有软件。
如果你只想在创建文件的同一发行版上使用它,你也可以看看 AppImageKit (http://www.portablelinuxapps.org)
答案2
向您显示“所有”依赖项的工具称为“ldd”。我不知道有什么可以将 ldd 和打包程序结合起来。
为什么所有文件周围都加引号?因为 ldd 会在启动时显示依赖项。它通过检查二进制文件以查看哪些文件被硬编码为所需的库来显示已满足的依赖项。但二进制文件在运行时总是可以请求其他库。
除此之外,二进制文件可能正在调用编译到特定已知位置的配置文件。 ldd 在这里无法为您做任何事情。
您可能需要更多像 strace 这样的工具,可以查看应用程序接触的每个文件,而不仅仅是动态行。