Назад | Перейти на главную страницу

Пакет и развертывание двоичного файла Linux

Можете ли вы перечислить все файлы .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).