Можете ли вы перечислить все файлы .so, на которые ссылается двоичный файл?
Это нужно для упаковки и развертывания двоичного файла вместе со всеми необходимыми файлами .so на серверах. Насколько я понимаю, вы не можете статически связываться с файлами .so, но вы, вероятно, можете сделать самораспаковывающийся архив.
Это то, что 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).