Отключение Snap в Ubuntu 20.04

centerapps

Не поймите меня неправильно, снимки — это здорово в теории. Если вы не знакомы, snap-пакет похож на изолированное приложение, которое упаковано таким образом, что:

  • Вы можете быть уверены, что выполняете именно то, что задумал разработчик приложения, поскольку все зависимости и ресурсы объединены в пакет приложения snap.
  • Приложение snap обычно не владеет всей вашей системой, оно работает в своего рода песочнице приложения.
  • Снапсы являются кроссплатформенными и распространяются независимо от пакетов apt/deb, поэтому они обычно более актуальны, чем те, которые содержатся в apt.

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

Я лично считаю, что если я хочу запустить приложение в песочнице, я больше склоняюсь к Flatpak, поскольку он более производительный и кажется немного более зрелым, чем система привязок Canonical.

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

1. Удалите существующие привязки

При новой установке Ubuntu предустановлено несколько снимков. Вы можете увидеть их список с помощью команды snap list:

snap list

Получаем ответ:

Название Версия Правка Канал Издатель Примечание
core18 20200707 1880 latest/stable canonical✓ base
gnome-3-34-1804 0+git.3009fc7 36 latest/stable/… canonical✓ -
gtk-common-themes 0.1-36-gc75f853 1506 latest/stable/… canonical✓ -
snap-store 3.36.0-80-g208fd61 467 latest/stable/… canonical✓ -
snapd 2.45.2 8542 latest/stable canonical✓ snapd

Чтобы удалить предустановленные snap, выполните команду для каждого пакекта sudo snap remove <snap-pack>.

Выполните следующую команду, чтобы удалить их все:

sudo snap remove snap-store
sudo snap remove gtk-common-themes
sudo snap remove gnome-3-34-1804
sudo snap remove core18

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

2. Отключите службу ядра Snap

Вам нужно будет заменить xxxx на фактический идентификатор внутри основного каталога в вашей системе, который вы можете узнать, запустив df

df

Получаем ответ:

Файл.система 1K-блоков Использовано Доступно Использовано% Cмонтировано в
udev 8049600 0 8049600 0% /dev
tmpfs 1615552 1872 1613680 1% /run
/dev/nvme0n1p2 244568380 7719832 224355492 4% /
tmpfs 8077756 74316 8003440 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 8077756 0 8077756 0% /sys/fs/cgroup
/dev/loop4 30720 30720 0 100% /snap/snapd/8542
/dev/nvme0n1p1 523248 27600 495648 6% /boot/efi
tmpfs 1615548 116 1615432 1% /run/user/1000

Вот узнали идентификатор как 8542, теперь используя его можно отмонтировать ресурс:

sudo umount /snap/snapd/8542

или

sudo umount /snap/core/xxxx

Проверяем командой, что у нас осталось:

df

Получаем ответ:

Файл.система 1K-блоков Использовано Доступно Использовано% Cмонтировано в
udev 8049600 0 8049600 0% /dev
tmpfs 1615552 1876 1613676 1% /run
/dev/nvme0n1p2 244568380 7138848 224936476 4% /
tmpfs 8077756 74324 8003432 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 8077756 0 8077756 0% /sys/fs/cgroup
/dev/nvme0n1p1 523248 27600 495648 6% /boot/efi
tmpfs 1615548 128 1615420 1% /run/user/1000

3. Удалите с очисткой пакет snapd

Затем, чтобы удалить пакет snapd и все связанные с ним службы, запустите:

sudo apt purge snapd

4. Удалите все устаревшие каталоги оснастки

Наконец, вы можете удалить оставшиеся каталоги оснастки в системе. После шага 3 у вас может не быть ни одного из этих каталогов, и это нормально. У меня не было этих каталогов при новой установке Ubuntu 20.04 после удаления snapd, но ваш опыт может отличаться от моего.

rm -rf ~/snap
sudo rm -rf /snap
sudo rm -rf /var/snap
sudo rm -rf /var/lib/snapd

Вуаля!

P.S. Не забудьте установить Центр приложений, который поможет вам простым способом устанавливать приложения как в былые времена из deb-пакетов.