Миграция с пакетов 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, и их функций:
00-backup
: этот сценарий запускает командуsnap save
для каждого переносимого установленного Snap. Это гарантирует, что у вас будет резервная копия всех ваших данных, прежде чем приступить к миграции.01-install-flatpak
: если этот сценарий еще не установлен, этот сценарий устанавливает менеджер пакетов Flatpak в вашей системе.02-enable-flathub
: этот скрипт добавляет удаленное местоположение FlatHub в FlatPak, если оно еще не включено.03-install-flatpaks
: этот сценарий устанавливает эквивалентные пакеты Flatpaks для каждого идентифицированного пакета моментальных снимков.04-remove-snaps
: после успешной установки плоских пакетов этот скрипт удаляет соответствующие снимки.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