Является ли оснастка общими библиотеками?

У меня есть один большой вопрос в отношении снимков. Это общие библиотеки? Причина, по которой я спрашиваю, состоит в том, что это было одной из вещей, которые меня так впечатлили при запуске с Ubuntu, что он делился библиотеками и, следовательно, экономил место на диске. Snaps все еще делают это? или я совершенно не прав по поводу apt?

2 ответа

Ни с оснастками, ни с apt/dpkg не гарантируется, что используемое приложение полагается на общесистемные общие библиотеки для каждой зависимости, которую они имеют.

В зависимости от того, как построена привязка, она может использовать некоторые библиотеки, совместно используемые с другими оснастками (например, оснастка ядра включает в себя libc и libstdC++), но ни одно из направлений не так просто, как может показаться, когда дело доходит до стабильности, безопасности и обеспечение пользователей новейшими функциями в приложениях.

Для текущего состояния моей системы:

walt@bat:~(0)$ lsb_release -a;snap list
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:    16.04
Codename:   xenial
Name                 Version    Rev   Tracking  Publisher           Notes
bw                   1.8.0      13    stable    bitwarden✓          -
core                 16-2.42.1  8039  stable    canonical✓          core
large-pcap-analyzer  3.6.0      97    stable    francesco-montorsi  -
mpv                  0.26.0     1     beta      casept              -
mpv-casept           0.24.0     2     stable    casept              disabled
walt@bat:~(0)$ 

Эта команда ответит на ваш вопрос для МОЕЙ системы, на данный момент:

find /snap -type f -executable | \
  xargs file |\
  grep ELF |\
  cut -d: -f1 |\
  xargs -n 1 ldd |\
  grep /snap
  1. использование find найти все "исполняемые" файлы в /snap,
  2. Спросить file - это файлы скриптов или исполняемых файлов или как?
  3. Мы заботимся только о файлах "ELF", так как они используют общие библиотеки.
  4. file выводит имя файла, двоеточие, некоторые пробелы и описание. Все, что я хочу, это имя файла.
  5. Тогда я использую xargs кормить имена файлов, по одному (-n 1) чтобы ldd перечислить динамические библиотеки, используемые каждым исполняемым файлом ELF.
  6. Любая из библиотек в /snap?

    Ничто из того, что я вижу (кроме "что делать, если другая, содержащая библиотеку оснастка не установлена?") Предотвращает это,

Другие вопросы по тегам