Вопрос или проблема
Я в настоящее время использую машину с Ubuntu 20.04 с небольшим объемом корневого раздела. Стандартная установка snap занимает ~1G пространства, хотя и с немногими пакетами. Когда я попытался удалить core
из snap, я получил следующую ошибку.
# snap remove core18
error: cannot remove "core18": snap "core18" is not removable: snap is being used by snaps gnome-3-34-1804, gtk-common-themes и snap-store.
Я понимаю, что могу обойти эту проблему, сначала вручную удалив зависимости, но есть ли однострочное решение, которое управляет зависимостями автоматически, чтобы все snaps и snapd можно было удалить за один раз?
Это не однострочное решение, но, если вы хотите полностью удалить все, что связано с snaps на вашей машине, выполните следующие шаги:
-
Откройте терминал
-
Список всех snaps, установленных на вашей системе, с помощью
snap list
. Вы увидите что-то вроде этого:Name Version Rev Tracking Publisher Notes chromium 87.0.4280.141 1444 latest/stable canonical✓ - core 16-2.48.2 10583 latest/stable canonical✓ core core18 20201210 1944 latest/stable canonical✓ base emote 1.3.0 12 latest/stable tom-james-watson - gnome-3-28-1804 3.28.0-19-g98f9e67.98f9e67 145 latest/stable canonical✓ - gnome-3-34-1804 0+git.3556cb3 66 latest/stable canonical✓ - gnome-system-monitor 3.36.0-12-g35f88a56d7 148 latest/stable/… canonical✓ - gtk-common-themes 0.1-50-gf7627e4 1514 latest/stable/… canonical✓ - snap-store 3.38.0-59-g494f078 518 latest/stable/… canonical✓ - spotify 1.1.46.916.g416cacf1 43 latest/stable spotify✓ - vlc 3.0.11 1700 latest/stable videolan✓ -
-
Удалите каждый snap, который вы могли выбрать для установки с помощью
sudo snap remove <package>
:sudo snap remove chromium sudo snap remove emote sudo snap remove spotify sudo snap remove vlc
-
Удалите core snaps в следующем порядке (ваш список может незначительно отличаться):
sudo snap remove snap-store sudo snap remove gtk-common-themes sudo snap remove gnome-system-monitor sudo snap remove gnome-3-34-1804 sudo snap remove gnome-3-28-1804 sudo snap remove core18 sudo snap remove snapd
-
Убедитесь, что на вашем компьютере больше не установлено snaps с использованием
snap list
. Вы должны увидеть сообщение вроде этого:No snaps are installed yet. Try 'snap install hello-world'.
-
Отмонтируйте точки монтирования snap с
sudo umount /snap/core/{point}
, заменив{point}
фактической точкой монтирования. Вы можете найти полный список с помощьюdf -h
.Примечание: В Ubuntu 20.10 (и старше) вам нужно сделать только это:
sudo umount /var/snap
. -
Удалите
snapd
с вашего компьютера с помощьюsudo apt purge snapd
-
Удалите любые оставшиеся каталоги, связанные с snap:
rm -rf ~/snap sudo rm -rf /snap sudo rm -rf /var/snap sudo rm -rf /var/lib/snapd
Теперь ваша система будет свободна от snaps.
Вы можете выполнить:
sudo snap remove $(snap list | awk '!/^Name|^core|^snapd/ {print $1}')
sudo apt purge snapd gnome-software-plugin-snap
Или одной строкой:
sudo snap remove $(snap list | awk '!/^Name|^core|^snapd/ {print $1}') && sudo apt purge snapd gnome-software-plugin-snap
Я должен добавить, что удаление snapd
и gnome-software-plugin-snap1
также удаляет ubuntu-software
, магазин программного обеспечения Ubuntu. Это можно исправить, выполнив
sudo apt install gnome-software
однако не все значки появятся обратно…
Ответ или решение
Для полного удаления Snap и Snapd с вашей системы Ubuntu 20.04, рекомендуется выполнить несколько шагов. Snap может занимать значительное пространство, особенно на системах с ограниченным объемом на корневом разделе. Вы, вероятно, столкнулись с проблемой при попытке удалить зависимости, такие как core18
, использующиеся другими пакетами. Однако, существует возможность облегчить этот процесс. Давайте разберем последовательность действий:
Шаги по удалению Snap и Snapd
-
Откройте Терминал
Запустите терминал, чтобы вводить команды. -
Получите список всех установленных пакетов Snap
Введите командуsnap list
, чтобы увидеть все установленные snap-пакеты. Вы получите что-то наподобие:Name Version Rev Tracking Publisher Notes chromium 87.0.4280.141 1444 latest/stable canonical✓ - ...
-
Удалите установленные snap-пакеты
Сначала удалите все пользовательские snap-пакеты, используя командуsudo snap remove <package>
:sudo snap remove chromium ...
-
Удалите системные snap-пакеты
Удалите оставшиеся системные snap-пакеты:sudo snap remove snap-store sudo snap remove gtk-common-themes sudo snap remove gnome-system-monitor ...
-
Проверьте, что все snap-пакеты удалены
Убедитесь, что все snap-пакеты удалены с помощьюsnap list
. Если пакеты отсутствуют, вы увидите сообщение:No snaps are installed yet. Try 'snap install hello-world'.
-
Размонтируйте точки монтирования snap
Используйтеdf -h
, чтобы найти точки монтирования snap и размонтировать их:sudo umount /snap/core/{точка}
Примечание: в Ubuntu 20.10 и новее можете использовать:
sudo umount /var/snap
. -
Удалите Snapd
Для удаления snapd введите:sudo apt purge snapd
-
Удалите оставшиеся директории Snap
Убедитесь, что все директории, связанные с snap, удалены:rm -rf ~/snap sudo rm -rf /snap sudo rm -rf /var/snap sudo rm -rf /var/lib/snapd
Альтернативное однострочное решение
Вы можете также использовать следующую однострочную команду для упрощенного подхода:
sudo snap remove $(snap list | awk '!/^Name|^core|^snapd/ {print $1}') && sudo apt purge snapd gnome-software-plugin-snap
Имейте в виду, что удаление snapd
и gnome-software-plugin-snap1
также приведет к удалению программного обеспечения Ubuntu, которое можно восстановить следующим образом:
sudo apt install gnome-software
Заключение
Эти шаги обеспечат полное удаление Snap и Snapd с вашего устройства, освобождая дополнительное место в системе. Обратите внимание на зависимости, чтобы избежать конфликта с необходимыми системными пакетами.