Является ли оснастка общими библиотеками?
У меня есть один большой вопрос в отношении снимков. Это общие библиотеки? Причина, по которой я спрашиваю, состоит в том, что это было одной из вещей, которые меня так впечатлили при запуске с 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
- использование
find
найти все "исполняемые" файлы в/snap
, - Спросить
file
- это файлы скриптов или исполняемых файлов или как? - Мы заботимся только о файлах "ELF", так как они используют общие библиотеки.
file
выводит имя файла, двоеточие, некоторые пробелы и описание. Все, что я хочу, это имя файла.- Тогда я использую
xargs
кормить имена файлов, по одному (-n 1
) чтобыldd
перечислить динамические библиотеки, используемые каждым исполняемым файлом ELF. Любая из библиотек в
/snap
?Ничто из того, что я вижу (кроме "что делать, если другая, содержащая библиотеку оснастка не установлена?") Предотвращает это,