Как определить, какие привязки являются зависимостями, а какие установлены вручную

Я установил несколько пакетов snap (snap install …). я могу использоватьsnap listперечислить их. Однако я не могу сказать, какие из них были установлены вручную, а какие были установлены, потому что от них зависят другие пакеты (autoв кв). Я хочу удалить автоматически установленные пакеты (apt autoremove в кв), (docker system prune в докере).

4 ответа

snap connections | grep XYZгде XYZ — это пакет, зависимости которого вы хотите проверить.

Например, у меня есть куча версий Gnome в/snapкаталог. Я не знаю, что оставить, а от чего избавиться. Поэтому по прихоти я удалил «старые» версии. Затем выясняется, что некоторые программы больше не запускаются, потому что они зависели от удаленных версий Gnome.

      user@~ $simplenote 
ERROR: not connected to the gnome-3-28-1804 content interface.

Это плохой способ узнать, что вы удалили что-то, что нужно другим приложениям.

Когда я делаюsnap connections | grep gnome, вывод включает следующие строки:

      user@~ $snap connections | grep gnome

content[gnome-3-38-2004]  firefox:gnome-3-38-2004                 gnome-3-38-2004:gnome-3-38-2004  -
content[gnome-3-28-1804]  simplenote:gnome-3-28-1804              gnome-3-28-1804:gnome-3-28-1804  -

Это указывает на то, что версии Gnome 3.28 и 3.38 все еще используются некоторыми программами и не должны удаляться.

Насколько я могу судить, в настоящее время нет функции обрезки/автоматического удаления, но вы можете попробовать

      snap connections

В нем будут перечислены соединения, которые различные привязки обеспечивают и имеют друг с другом и с системой, поэтому вы можете попытаться выяснить, какие из них не связаны каким-либо значимым образом с чем-либо, что вам действительно нужно, и их вручную.

Престижность этому ответу за то, что он указал мне правильное направление.

I could do a script to show unconnected snaps:

show-unconnected-snaps

      #!/bin/bash

list_connected_snaps_sorted() {
  snap connections \
    | tail -n +2 \
    | awk '{print $1}' \
    | sort \
    | uniq
}

list_all_snaps_sorted() {
  snap list \
    | tail -n +2 \
    | awk '{print $1}' \
    | sort

}

echo "Unconneted snaps:"
(
  diff -U0 -u \
    <(list_connected_snaps_sorted) \
    <(list_all_snaps_sorted) \
) \
     | grep '^+' \
     | tail -n +2 \
     | cut -c2-

hopeit helps

      snap remove <snap name>

Является кувалдой, но не сможет указать зависимость, если она существует.

Например, при установленной оснастке firefox попытайтесь удалить ее основную структуру:

      snap install firefox
snap remove core20

Состояния ошибок snap is being used by firefox.

Есть также более мягкие зависимости, которые находятся в соединениях, например

      snap install firefox
snap connections | grep gtk-common-themes
snap remove gtk-common-themes
Другие вопросы по тегам