ГлавнаяОперационные системыLinuxКак установить и использовать Snapcraft в Linux

Как установить и использовать Snapcraft в Linux

Вы когда-нибудь задумывались, почему в некоторых дистрибутивах Linux установка программного обеспечения настолько проста, в то время как в других это может быть довольно сложно? Разница заключается в формате пакета, который они используют. В некоторых дистрибутивах используются файлы.deb, а в других —.rpm.

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

Читайте также: Как создать свое первое приложение для Linux с помощью Flutter

Что такое Snap-пакет?

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

Зачем использовать пакеты Snap?

Использование моментальных пакетов имеет несколько преимуществ:

  • Вы можете установить свое любимое приложение в любой дистрибутив Linux, поддерживающий Snap.

Читайте также: Flathub или Snap Store: какой магазин приложений использовать?

Установка Snapd в Linux

Snapd — это демон, который позволяет устанавливать и использовать снимки. Его необходимо установить, прежде чем вы сможете использовать Snapcraft. Когда вы устанавливаете Snapd, он также устанавливает инструмент интерфейса командной строки (CLI) под названием snap. Вы можете использовать этот инструмент для управления своими снимками.

Чтобы установить Snapd в Ubuntu, откройте терминал и введите следующую команду, указав свой пароль пользователя при появлении запроса.

sudo apt update -y  && sudo apt install snapd -y
Snapcraft Установка Snapd Ubuntu<

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

sudo dnf install epel-release -y && sudo dnf update -y
Snapcraft Включить репозиторий Epel

Затем установите Snapd с помощью приведенной ниже команды. При появлении запроса введите пароль пользователя sudo.

sudo dnf install snapd -y<

Установка Snapd в Linux

coding="async" src="https://saintist.ru/wp-content/uploads/2024/05/snapscrat-install-snapd-centos.png" alt="Snapscrat Установка Snapd Centos">

В Fedora установите команду:

sudo dnf install snapd

В Arch Linux установить snapd из AUR . Ознакомьтесь с эти помощники AUR , чтобы упростить установку сторонних пакетов.

После завершения установки выполните приведенную ниже команду, чтобы включить системный модуль snapd.socket. Это гарантирует, что демон Snapd запустится автоматически при загрузке вашей системы.

sudo systemctl enable --now snapd.socket

Создайте символическую ссылку между «/var/lib/snapd/snap» и «/snap», чтобы включить классическую поддержку Snap.

sudo ln -s /var/lib/snapd/snap /snap

Теперь, когда вы установили Snapd в свою систему Linux, проверьте версию Snapd с помощью приведенной ниже команды. Вы увидите результат, подобный следующему:

snap --version
Версия Snapcraft Snapd

Вы также можете проверить состояние службы Snapd с помощью следующей команды.

sudo systemctl status snapd
Статус Snapcraft Snapd Ubuntu 1

Установка Snapcraft

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

Чтобы установить Snapcraft в Linux, выполните следующую команду. Флаг classicсообщает snapиспользовать режим ограничения classic. Этот флаг необходим, поскольку Snapcraft пока не поддерживает новый, более строгий режим ограничения.

sudo snap install snapcraft --classic
Snapcraft Установить Snapcraft<

Убедитесь, что Snapcraft установлен, проверив номер версии.

snapcraft --version
Номер версии Snapscraft.

Читайте также: Руководство для начинающих по написанию сценариев оболочки в Linux

Использование Snapcraft для создания пакета Snap

Теперь самое интересное: использование Snapcraft для создания пакета Snap для приложения. В этом уроке мы создаем базовую привязку hello-world, простую привязку, которая печатает «Hello, world!» когда вы его запустите. После завершения этого руководства примените тот же процесс для создания снимков для ваших собственных приложений.

Для простоты нижеприведенные шаги проведут вас через процесс создания снапа в Ubuntu. Те же действия можно применить и к другим дистрибутивам Linux.

Начало проекта для вашего Snap

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

  1. Создайте каталог проекта с именем «hello» с помощью следующей команды:
mkdir -p ~/mysnaps/hello

Флаг -pуказывает команде mkdirсоздать любые родительские каталоги, которые еще не существуют. В этом случае будет создан каталог mysnaps, если он не существует. В этот каталог можно поместить любые будущие снимки.

  1. Перейдите во вновь созданный каталог проекта и инициализируйте проект с помощью команды init , чтобы создать файл с именем «snapcraft.yaml» в каталоге вашего проекта. Вы можете использовать файл snapcraft.yaml для настройки

    Установка Snapcraft

    cd ~/mysnaps/hello
    snapcraft init
    Snapcraft Инициализация проекта 1
    1. Проверьте структуру вашего проекта с помощью команды tree, которая распечатывает графическое представление каталога вашего проекта.
    tree -a

    Вы увидите результат, подобный следующему.

    Проверьте структуру вашего проекта

    Добавление метаданных верхнего уровня

    Snapcraft предоставляет множество метаданных, которые вы можете использовать для описания вашего пакета Snap. В этом уроке мы добавим некоторую базовую информацию, необходимую для каждого снимка.

    1. Откройте файл «snapcraft.yaml» в своем любимом текстовом редакторе. В этом уроке мы использовали nano.
    sudo nano snapcraft.yaml
    1. Удалите строки-заполнители и замените их следующим содержимым.
    name: hello
    base: core18
    version: '2.10'
    summary: GNU Hello, the "hello world" snap
    description: |
      GNU hello prints a friendly greeting.
    grade: devel
    confinement: devmode

    Здесь мы изменили информацию о нашем снапе. База core18сообщает Snapcraft, что вы хотите создать снимок на базе Ubuntu Core 18. Метаданные confinement: devmodeсообщают Snapcraft, что вы хотите

    Использование Snapcraft для создания пакета Snap

    работки и тестирования.

    Представление вашего приложения

    1. Добавьте следующие строки после поля ограничения в файле snapcraft.yaml. Здесь мы указываем приложение, которое хотим упаковать.
    apps:
     hello:
      command: bin/hello

    В данном случае у нас есть только одно приложение, hello. Строка commandсообщает Snapcraft, какой двоичный файл запускать при установке снапа.

    Добавление детали

    1. В новой строке добавьте следующую команду parts:
    parts:
      gnu-hello:
        source: http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
        plugin: autotools

    Это указывает Snapcraft, какое программное обеспечение вы хотите вк

    Начало проекта для вашего Snap

    создать этот снимок hello-world, вам необходимо загрузить исходный код GNU Hello, а затем использовать плагин autotoolдля сборки приложения из исходного кода.

    <ол старт="5">

  2. На этом этапе ваш файл snapcraft.yaml будет выглядеть так, как показано ниже. Сохраните и закройте файл snapcraft.yaml, прежде чем перейти к следующему шагу.
Файл Snapcraft.yaml

Создание Snap-пакета

Теперь, когда вы определили свою оснастку, пришло время ее создать. Чтобы создать пакет моментальных снимков, выполните следующую команду:

snapcraft

Вам будет предложено установить «multipass», если в вашей системе его нет. Snapcraft использует многопроходной режим для создания изолированной среды для создания снимков внутри виртуальной машины. Введите yи нажмите Enter, чтобы продолжить.

Snapcraft многопроходной

Процесс сборки может занять некоторое время в зависимости от вашего подключения к Интернету и характеристик компьютера. После завершения процесса сборки вы увидите что-то похожее на следующий результат.

Snapcraft Сборка

В конце концов вы найдете «hello_2.10_amd64.snap» в каталоге проекта.

Тестирование пакета Snap

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

sudo snap install --devmode hello_2.10_amd64.snap

Флаг --devmodeсообщает snap, что вы хотите установить оснастку в devmode, что полезно для целей тестирования.

Snapcraft Установить Snap

Затем выполните следующую команду, чтобы запустить приложение hello-world.

hello

Вы увидите следующий вывод, который указывает, что ваша привязка hello-world работает должным образом.

Добавление метаданных верхнего уровняp-content/uploads/2024/05/snapcraft-run-your-hello-world-application.png" alt="Snapcraft Запустите приложение Hello World">

Чтобы увидеть версию вашего приложения hello-world, выполните следующую команду.

hello --version
Версия приложения Snapcraft Hello World<

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

snapcraft --debug
Отладка Snapcraft

Читайте также: Как исправить проблему «Нет кандидата на установку» в Ubuntu

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

Безопасен ли Snapcraft?

Абсолютно! Snapcraft — официальный инструмент для создания снимков. Он разработан и поддерживается Canonical, компанией, стоящей за Ubuntu. Будьте уверены, что Snapcraft безопасен и надежен.

Snap похож на Docker?

И да, и нет. Snap и Docker — это контейнерн

Представление вашего приложения

умайте о Snap как о формате упаковки для вашего приложения, а Docker — как о среде выполнения вашего приложения. Вы можете настроить WordPress с помощью Nginx и PHP в контейнере Docker использовать официальные образы WordPress и Nginx, но не можете создать пакет Snap для своего сайта WordPress.

Snap лучше, чем apt или apt-get?

Это зависит. Обе системы имеют свои преимущества и недостатк

Добавление детали

aketecheasier.com/ultimate-guide-apt-and-apt-get-commands/" title="Apt и apt-get">Apt и apt-get — традиционный менеджер пакетов для дистрибутивов Linux на базе Debian. Он существует уже давно и очень стабилен, но имеет несколько недостатков. Например, apt не поддерживает управление версиями и откат. Snap, с другой стороны, поддерживает как управление версиями, так и откат. Так что, если вы хотите поэкспериментировать с новыми версиями своего приложения, Snap – это то, что вам нужно. Но если вам нужна стабильная система, лучший выбор — apt и apt-get.

Изображение предоставлено: Фрипик . Все скриншоты Николаса Суана Нгуена.

Создание Snap-пакета

Тестирование пакета Snap

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

Безопасен ли Snapcraft?

Snap похож на Docker?

Snap лучше, чем apt или apt-get?

ПОХОЖИЕ СТАТЬИ

Популярные записи