您能列出二进制文件引用的所有 .so 文件吗?
这是将二进制文件及其所需的所有 .so 文件打包并部署到服务器。据我所知,您无法静态链接 .so 文件,但您可能可以制作一个自解压档案。
答案1
这就是ldd
程序的作用。给定可执行文件的路径,没有其他选项,它将列出程序所需的共享库,以及这些共享库在系统上的当前路径(如果存在)。
例如:
$ ldd /usr/bin/bash
linux-vdso.so.1 (0x00007ffc19b28000)
libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007fb815da1000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fb815b9d000)
libc.so.6 => /lib64/libc.so.6 (0x00007fb8157d7000)
/lib64/ld-linux-x86-64.so.2 (0x000056504b842000)
所以,是的,你可以,但这并没有像你想象的那么有帮助。
您不应该手动创建自己的档案,而应该使用诸如 rpm 或 deb(具体取决于目标发行版)或较新的 Flatpak(这可能是未来 Linux 发行版中大多数应用程序的分发方式)。