Поиск по сайту:

Миграция с пакетов Snap на Flatpak с помощью Unsnap

Переход от пакетов Snap к Flatpak: введение в Unsnap

Вы хотите перейти от использования защелкивающихся пакетов к плоским упаковкам? Если да, то вы находитесь в правильном месте! В этой статье мы познакомим вас с фантастическим инструментом под названием Unsnap, который упрощает процесс перехода с пакетов Snap на Flatpak в Ubuntu и его производных.

Что такое Unsnap?

Unsnap — это сценарий оболочки, который позволяет быстро и легко перейти от использования snap-пакетов для приложений к Flatpak. Как следует из названия, цель Unsnap — помочь пользователям «отсоединиться» или отсоединиться от пакетов моментальных снимков и перейти к использованию Flatpak.

Unsnap, разработанный бывшим со-разработчиком Snap Аланом Поупом, позволяет пользователям легко переходить от использования Snap для приложений к Flatpak в Ubuntu и системах на базе Ubuntu.

Unsnap лицензируется по лицензии MIT, что означает, что он бесплатен и имеет открытый исходный код.

Как работает отстегивание?

Unsnap работает как двухэтапный процесс. Первоначально Unsnap генерирует набор скриптов, отвечающих за выполнение фактической миграции из Snap-пакетов в Flatpak. Эта функция позволяет пользователям просматривать и, при необходимости, редактировать сценарии перед выполнением, чтобы проверить или изменить их в соответствии со своими потребностями.

После создания сценариев пользователи могут запускать их последовательно, чтобы завершить процесс миграции. Процедура довольно проста: клонируйте репозиторий Unsnap, перейдите в каталог Unsnap и запустите команду Unsnap. Для пользователей, которые предпочитают пропускать действия, выполняемые вручную, есть опция автоматически, которая автоматически генерирует и запускает сценарии.

Как перейти с Snap на Flatpak с помощью Unsnap

Запуск Unsnap — простой процесс. Все, что вам нужно сделать, это клонировать репозиторий GitHub и запустить команду unsnap. Это действие создаст набор скриптов. Затем вы последовательно запускаете эти сгенерированные сценарии, чтобы добиться устойчивости. Альтернативно вы можете запустить unsnap с опцией auto, чтобы немедленно сгенерировать и запустить сценарии.

Вот пошаговый процесс замены пакетов Snap на Flatpaks с помощью Unsnap:

Сначала клонируйте репозиторий:

git clone https://github.com/popey/unsnap

Измените каталог на клонированный репозиторий:

cd unsnap

Запустите команду unsnap:

sudo ./unsnap

Или запустите unsnap с опцией auto:

sudo ./unsnap auto

Миграция с Snap на Flatpak с помощью Unsnap

Это займет некоторое время в зависимости от количества установленных Snap в вашей системе. Пожалуйста, будьте терпеливы!

После успешной миграции Flatpak вы увидите примерно такой результат:

[...]
INFO: flatpaks installed
INFO: These flatpaks are now installed:
Freedesktop Platform	org.freedesktop.Platform	22.08.12.1	22.08	system
Mesa	org.freedesktop.Platform.GL.default	23.1.1	22.08	system
Mesa (Extra)	org.freedesktop.Platform.GL.default	23.1.1	22.08-extra	system
openh264	org.freedesktop.Platform.openh264	2.1.0	2.2.0	system
Firefox	org.mozilla.firefox	114.0.2	stable	system
INFO: Removing snaps
firefox removed
INFO: Snaps removed
WARNING: These snaps are still installed:
Name                       Version           Rev    Tracking         Publisher    Notes
bare                       1.0               5      latest/stable    canonical**  base
core20                     20230613          1950   latest/stable    canonical**  base
core22                     20230612          766    latest/stable    canonical**  base
gnome-3-38-2004            0+git.6f39565     140    latest/stable/…  canonical**  -
gtk-common-themes          0.1-81-g442e511   1535   latest/stable/…  canonical**  -
snap-store                 41.3-71-g709398e  959    latest/stable/…  canonical**  -
snapd                      2.59.5            19457  latest/stable    canonical**  snapd
snapd-desktop-integration  0.9               83     latest/stable/…  canonical**  -

Переключитесь с Snap на Flatpak с помощью Unsnap

Вывод выше показывает, что приложение Firefox Snap было удалено и впоследствии заменено версией Flatpak.

Вот список установленных Snaps перед запуском Unsnap в моей системе Ubuntu 22.04 LTS:

snap list 
Name                       Version           Rev    Tracking         Publisher    Notes
bare                       1.0               5      latest/stable    canonical**  base
core20                     20230613          1950   latest/stable    canonical**  base
core22                     20230612          766    latest/stable    canonical**  base
firefox                    103.0-1           1589   latest/stable/…  mozilla**    -
gnome-3-38-2004            0+git.6f39565     140    latest/stable/…  canonical**  -
gtk-common-themes          0.1-81-g442e511   1535   latest/stable/…  canonical**  -
snap-store                 41.3-71-g709398e  959    latest/stable/…  canonical**  -
snapd                      2.59.5            19457  latest/stable    canonical**  snapd
snapd-desktop-integration  0.9               83     latest/stable/…  canonical**  -

Вывод списка пакетов Snap перед запуском Unsnap

А вот выходные данные команды snap list после переноса Snap в Flatpaks.

snap list 
Name                       Version           Rev    Tracking         Publisher    Notes
bare                       1.0               5      latest/stable    canonical**  base
core20                     20230613          1950   latest/stable    canonical**  base
core22                     20230612          766    latest/stable    canonical**  base
gnome-3-38-2004            0+git.6f39565     140    latest/stable/…  canonical**  -
gtk-common-themes          0.1-81-g442e511   1535   latest/stable/…  canonical**  -
snap-store                 41.3-71-g709398e  959    latest/stable/…  canonical**  -
snapd                      2.59.5            19457  latest/stable    canonical**  snapd
snapd-desktop-integration  0.9               83     latest/stable/…  canonical**  -

Видеть? Snap-версия Firefox удалена.

Какие скрипты генерирует Unsnap?

Как уже говорилось, Unsnap генерирует серию сценариев для облегчения процесса миграции. Каждый скрипт выполняет определенную функцию.

Вот краткий обзор скриптов, созданных Unsnap, и их функций:

  1. 00-backup: этот сценарий запускает команду snap save для каждого переносимого установленного Snap. Это гарантирует, что у вас будет резервная копия всех ваших данных, прежде чем приступить к миграции.
  2. 01-install-flatpak: если этот сценарий еще не установлен, этот сценарий устанавливает менеджер пакетов Flatpak в вашей системе.
  3. 02-enable-flathub: этот скрипт добавляет удаленное местоположение FlatHub в FlatPak, если оно еще не включено.
  4. 03-install-flatpaks: этот сценарий устанавливает эквивалентные пакеты Flatpaks для каждого идентифицированного пакета моментальных снимков.
  5. 04-remove-snaps: после успешной установки плоских пакетов этот скрипт удаляет соответствующие снимки.
  6. 99-remove-snapd: этот сценарий удаляет сам snapd, что, в свою очередь, удаляет все пакеты Snap из вашей системы.

Сопоставление пакетов

Одной из ключевых особенностей Unsnap является возможность «Сопоставление пакетов». Unsnap поставляется с файлом с именем «applist.csv», который содержит сопоставление имен пакетов Snap с именами Flatpak. Это сопоставление «один к одному», хотя и не совсем полное, охватывает значительную часть приложений, доступных в Snap Store и FlatHub.

Режим проверки

Чтобы облегчить проверку имен Snap и Flatpak в файле «applist.csv», в Unsnap предусмотрен «Режим проверки». Этот режим позволяет пользователям проверять точность сопоставления между пакетами Snap и плоскими пакетами, обеспечивая плавный процесс миграции.

Обратите внимание, что в режиме «Проверка» программа Unsnap не генерирует никаких скриптов, не изменяет какие-либо данные и не устанавливает никаких Flatpaks. Вместо этого он создает unsnap.logfile для справки и отслеживания.

Данные Приложения

В настоящее время Unsnap выполняет сохранение моментальной копии для каждой переносимой моментальной копии. Эта операция использует внутренний механизм snapd для создания резервных копий данных приложения. Очень важно обеспечить достаточное дисковое пространство и время для этого процесса, учитывая, что некоторые приложения могут иметь значительный объем данных для резервного копирования.

Более подробную информацию о сохранении моментальных снимков можно найти в документации по моментальным снимкам.

Если вы предпочитаете пропустить резервное копирование, просто не запускайте сценарии резервного копирования до начала фактической миграции.

По умолчанию резервные копии, созданные с помощью мгновенного сохранения, сохраняются в виде zip-файлов в каталоге /var/lib/snapd/snapshots.

На данный момент задача восстановления данных при необходимости остается за пользователем.

Ведение журнала

Unsnap обеспечивает вывод как на консоль, так и в файл журнала. Файл журнала с именем unsnap.log находится в подкаталоге ./log-YYYY-MM-DD.HH.MM.SS текущего каталога, в котором находится Unsnap. ведется.

Исключенные снимки

Файл excluded_snaps.txt содержит список снимков, у которых нет прямых эквивалентов на Flathub. В этот список входят такие привязки, как bare, core18 и core20 . . Таким образом, бесполезно предлагать пользователям переходить с этих конкретных снимков на другой Flatpak.

Стоит отметить, что, хотя на Flathub доступны концептуально схожие пакеты, они автоматически включаются во время установки соответствующих приложений и не требуют обработки со стороны Unsnap.

Роль excluded_snaps.txt заключается не в каталогизации пакетов, которые еще не доступны в виде Flatpak, а в идентификации пакетов, которые, скорее всего, никогда не будут преобразованы в Flatpak.

Ниже приведен список исключенных Snap в моей системе Ubuntu 22.04 LTS:

bare
canonical-livepatch
core
core18
core20
core22
gnome-3-28-1804
gnome-3-34-1804
gnome-3-38-2004
godot-runtime
gtk-common-themes
gtk2-common-themes
kde-frameworks-5
qt513
qt551
snapd
wine-platform-3-stable
wine-platform-5-stable
wine-platform-6-stable
wine-platform-runtime

Статус проекта

На данный момент Unsnap находится на стадии пре-альфа. Это означает, что он был протестирован и показал многообещающие результаты на компьютере разработчика. Однако, если вы не планируете участвовать в проекте, он, вероятно, еще не готов для вас. Работа над этим еще продолжается, и вклад в улучшение его функциональности и универсальности приветствуется!

Часто задаваемые вопросы

Вот FAQ по Unsnap.

Вопрос: Что такое отмена привязки?

О: Unsnap — это инструмент, призванный помочь пользователям перейти с использования пакетов Snap на Flatpak. Он работает путем создания сценариев, управляющих процессом миграции, которые пользователи могут просматривать и изменять перед выполнением.

Вопрос: Кто разработчик Unsnap?

Ответ: Unsnap был разработан Аланом Поупом, бывшим соавтором Snap. Поуп проработал в Canonical, материнской компании Ubuntu, 10 лет, прежде чем уйти в 2021 году. После своего ухода он создал Unsnap, чтобы помочь пользователям перейти с пакетов Snap на Flatpak.

Вопрос: Как использовать Unsnap?

О: Чтобы использовать Unsnap, вам необходимо клонировать репозиторий GitHub и запустить команду unsnap. Это действие создаст набор скриптов. Затем вы последовательно запускаете эти сгенерированные сценарии для перехода с Snap на Flatpak.

Вопрос: Какие сценарии создаются?

О: Unsnap генерирует серию скриптов для облегчения процесса миграции. Они включают сценарии для резервного копирования данных Snap, установки Flatpak, включения Flathub, установки эквивалентных пакетов Flatpaks и удаления исходных Snaps и napd.

Вопрос: Что такое режим проверки?

О: Режим «Проверка» — это функция Unsnap, которая позволяет вам проверять имена Snap и Flatpak в файле applist.csv без внесения каких-либо изменений в вашу систему или установки каких-либо пакетов Flatpak. Он также генерирует unsnap.logfile.

Вопрос: Что такое файл applist.csv?

Файл applist.csv в Unsnap содержит сопоставление имен пакетов Snap с именами Flatpak. Это облегчает однозначное сопоставление между ними, облегчая процесс миграции.

Вопрос: Что такое файл excluded_snaps.txt?

В файле excluded_snaps.txt перечислены пакеты Snap, которые не имеют прямых эквивалентов на Flathub, например bare, core18 и core20. Unsnap не будет предлагать пользователям перенести эти конкретные пакеты.

Вопрос: Готов ли Unsnap к использованию?

О: На данный момент Unsnap находится на стадии пре-альфа. Хотя он показал многообещающие результаты на компьютере разработчика, он, возможно, еще не готов к общему использованию, если вы не планируете участвовать в проекте.

Вопрос: Является ли Unsnap открытым исходным кодом?

О: Да, Unsnap имеет открытый исходный код и лицензируется по лицензии MIT. Это позволяет любому использовать, изменять и распространять его под одной и той же лицензией.

Заключение

Unsnap — отличный инструмент для пользователей, желающих перейти с пакетов Snap на Flatpak. Он все еще находится на стадии пре-альфа, то есть находится на ранних стадиях разработки и может быть не полностью готов для всех пользователей. Используйте его с осторожностью!

Ресурс:

  • Отключить репозиторий GitHub

Связанное чтение:

  • Сравнение менеджеров пакетов Linux: AppImage, Snap и Flatpak

Статьи по данной тематике