У меня есть один большой вопрос по поводу snaps. Он делится библиотеками? Причина, по которой я спрашиваю, в том, что это было одной из вещей, которая меня так впечатлила, когда я начал работать с ubuntu, что он делится библиотеками, и, следовательно, экономит место на диске. Snaps все еще делает это? Или я полностью ошибаюсь насчет apt?
решение1
Ни snaps, ни apt/dpkg не дают никаких гарантий, что используемое вами приложение использует общесистемные общие библиотеки для каждой имеющейся у них зависимости.
В зависимости от того, как построен snap, он может использовать некоторые библиотеки, общие с другими snap (например, core snap включает libc и libstdc++), но ни одно из направлений не так просто, как может показаться, когда речь идет о стабильности, безопасности и обеспечении пользователей новейшими функциями в приложениях.
решение2
Текущее состояние моей системы:
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
?Ничто, что я вижу (кроме «а что, если другой snap, содержащий библиотеку, не установлен?»), этому не препятствует,