Узнайте, как управлять программным обеспечением в Ubuntu и других дистрибутивах Linux с помощью команд snap для установки, удаления и обновления пакетов.
Если вы используете Ubuntu или некоторые её версии, то, вероятно, знаете, что пакеты Snap играют важную роль в установке некоторых приложений. Компания Canonical, создавшая Ubuntu, в значительной степени полагается на этот формат пакетов.
Конечно, формат Snap не ограничивается Ubuntu; его можно установить практически в любой другой дистрибутив Linux. Тем не менее, по некоторым причинам, выходящим за рамки этого руководства, он используется исключительно в Ubuntu и её производных.
Важно отметить, что дистрибутив предлагает отличные графические инструменты для управления программным обеспечением, поэтому пользователям редко приходится использовать командную строку для работы со Snap. Тем не менее, там скрыто много возможностей и гибкости. Важно научиться пользоваться ими, чтобы получить полный контроль над своей системой. Эта статья поможет вам в этом.
К концу статьи вы будете уверенно управлять программным обеспечением с помощью Snap, поддерживая эффективность и актуальность своей системы. Однако прежде чем мы перейдём к практической части, я расскажу вам о некоторых особенностях, необходимых для полного понимания формата пакетов Snap. Итак, продолжайте читать.
Что такое Snap и Snapd в Linux?
Snap — это универсальный формат пакетов, не зависящий от дистрибутива Ubuntu, для упрощения распространения программного обеспечения.
Дистрибутивы Linux обычно используют собственные менеджеры пакетов и форматы, такие как APT для экосистемы Debian, DNF для дистрибутивов на базе Fedora/RHEL, Pacman для Arch и его производных и т. д.
Но давайте посмотрим правде в глаза: все мы (иногда) сталкивались с проблемами совместимости с этими менеджерами пакетов или нуждались в более новой версии программного обеспечения, которой не было в репозиториях дистрибутива. И тут на помощь приходит Snap.
Как и концепция Flatpak, Snap устраняет эти неудобства, объединяя приложение и все его зависимости в один автономный пакет. Вот краткое описание его ключевых функций:
- Универсальная совместимость: Snaps работает в широком спектре дистрибутивов Linux, избавляя разработчиков от необходимости создавать отдельные пакеты для каждого дистрибутива.
- Изоляция и безопасность: каждый Snap работает в изолированной среде, которая не зависит от других приложений в вашей системе. Это повышает безопасность, снижая риск конфликтов или помех между приложениями.
- Автоматические обновления: приложения Snap могут автоматически обновляться в фоновом режиме, гарантируя, что у вас всегда будет установлена последняя версия без необходимости ручного вмешательства.
- Управление зависимостями: поскольку Snaps объединяет все свои зависимости, вам не нужно беспокоиться об установке дополнительных библиотек или инструментов. Все необходимое для запуска приложения включено в пакет.
- Простой откат: Snap позволяет легко вернуться к предыдущим версиям программного обеспечения, если обновление вызывает проблемы.
Кроме того, помимо Snap, есть ещё один компонент, который фактически выполняет всю работу: snapd. Это фоновая служба, которая обеспечивает работу Snap в вашей системе и управляет установкой, обновлением и удалением пакетов Snap.
По сути, snapd — это движок, который управляет Snap на вашем компьютере с Linux, выполняя всю тяжёлую работу за кулисами. Он обеспечивает безопасную доставку, правильное обновление и бесшовную интеграцию приложений Snap с вашей системой.
Чтобы было ещё понятнее, вот как связаны Snap и snapd:
- Snap относится к самим пакетам приложений. Snap — это контейнерное приложение, объединённое со всеми своими зависимостями в устанавливаемый пакетный формат, что позволяет ему работать в любом дистрибутиве Linux, поддерживающем Snap.
- snapd — это служба или демон, который управляет пакетами Snap в вашей системе. Он управляет установкой, обновлением и удалением Snap и обеспечивает их работу изолированно от остальной системы, предотвращая конфликты с другим программным обеспечением.
Теперь, когда мы прояснили ситуацию на концептуальном уровне, пора перейти к практической части — как использовать Snap для управления программным обеспечением в вашей системе Ubuntu.
Основные команды Snap
Поиск пакета
Для поиска пакета Snap можно использовать команду snap find
. Она позволяет искать доступные пакеты Snap по ключевому слову или названию пакета в магазине Snap.
Например, чтобы найти пакет, связанный с «GIMP», вы можете использовать следующую команду:
snap find gimp
Откроется список пакетов, связанных с GIMP, с указанием их названия, версии, издателя и краткого описания.
Теперь вы можете выбрать подходящий установочный пакет на основе списка результатов.
Просмотр сведений о пакете
Команда snap info
очень полезна — она предоставляет подробную информацию о пакете Snap, включая его версию, описание, издателя и доступные каналы. Допустим, вы хотите просмотреть подробную информацию о пакете «gimp».
snap info gimp
В выводе команды вы получите подробную информацию о пакете, в том числе:
- Name: официальное название пакета.
- Publisher: физическое лицо или организация, ответственные за публикацию Snap.
- Channels: Пакеты Snap часто доступны по разным каналам, таким как:
- Stable: самая надежная и протестированная версия.
- Candidate: почти стабилен, после некоторого тестирования.
- Beta: менее стабильные, новые функции, но могут содержать ошибки.
- Edge: усовершенствованная версия для разработки, обычно наименее стабильная.
Команда snap info
полезна для получения дополнительной информации о пакете перед установкой или при устранении неполадок, связанных с версиями или обновлениями.
Установка пакета Snap
Установить пакет Snap в системе Linux очень просто. Как только вы найдёте пакет, вы сможете установить его с помощью команды snap install
. Например, чтобы установить GIMP, используйте:
sudo snap install gimp
После установки вы можете запустить приложение из системного меню приложений. Однако, если вы хотите установить пакет с определенного канала, вы должны добавить --channel=<channel>
к команде установки. Например, чтобы установить GIMP с канала “предварительный просмотр / кандидат”, введите следующее:
sudo snap install gimp --channel=preview/candidate
Наконец, если вы уже установили пакет Snap с одного канала и хотите переключиться на другой, вы можете использовать флаг «–channel» во время обновления.
Например, чтобы переключиться на стабильную версию GIMP с канала «последняя/стабильная», наша команда Snap будет выглядеть так:
sudo snap refresh gimp --channel=latest/stable
Удаление пакета Snap
Удалить пакет Snap очень просто. Просто введите sudo snap remove
и укажите имя пакета, который хотите удалить. Например, если вы хотите удалить GIMP, команда будет выглядеть так:
sudo snap remove gimp
Удалите несколько пакетов одновременно
Кроме того, вы можете удалить несколько пакетов Snap с помощью одной команды. Просто перечислите их названия одно за другим:
sudo snap remove gimp vlc brave
Очистить файлы конфигурации
Хотя команда snap remove
обычно удаляет все связанные файлы, иногда она может оставить пользовательские данные или файлы конфигурации. Если вы хотите удалить и их, вы можете использовать опцию «–purge».
Например, чтобы удалить GIMP вместе с сопутствующими данными, выполните следующее:
sudo snap remove gimp --purge
Если вы не уверены в точном названии пакета Snap, который хотите удалить, ознакомьтесь со следующим разделом.
Управление установленными пакетами Snap
Список установленных пакетов Snap
Чтобы составить список установленных пакетов Snap в вашей системе Linux, вы можете использовать следующую команду:
snap list
Выводимый командой список всех пакетов Snap, установленных в вашей системе, вместе с важными деталями, такими как имя пакета, версия, номер редакции, канал отслеживания (например, стабильный, кандидатный, бета-версия) и издатель.
Обновить пакеты Snap
Пакеты Snap обновляются автоматически по умолчанию, но вы можете вручную запустить обновление, выполнив команду refresh . Он проверяет наличие доступных обновлений и обновляет все установленные snap до последней версии.
sudo snap refresh
Более того, если вы хотите обновить только определенный пакет, вы можете указать имя пакета после команды. Например, для обновления пакета GIMP Snap:
sudo snap refresh gimp
Проверка наличия доступных обновлений без установки
Вы также можете проверить, доступны ли какие-либо обновления для установленных вами пакетов Snap, не применяя обновления, используя следующую команду:
sudo snap refresh --list
Откат к предыдущей версии
Откат пакета Snap к предыдущей версии является полезной функцией, особенно если последняя версия приложения вызывает проблемы или работает не так, как ожидалось. В свете этого пакеты Snap сохраняют предыдущие версии под рукой, поэтому вы можете легко вернуться к ним.
Чтобы сделать это, используйте snap revert
команду, за которой следует имя пакета, чтобы откатить пакет к его предыдущей редакции:
sudo snap revert gimp
После этого вы можете использовать команду snap list
, чтобы подтвердить возврат пакета к более ранней версии.
Расширенное использование Snap
Настройка времени автоматического обновления
По умолчанию Snap автоматически обновляет пакеты четыре раза в день. Вы можете настроить расписание автоматического обновления, установив таймер обновления. Например, запланировать выполнение обновлений только ночью.:
sudo snap set system refresh.timer=2:00-4:00
Псевдонимы Snap
Псевдонимы в Snap позволяют создавать ярлыки или альтернативные имена для установленных приложений Snap, упрощая выполнение определенных команд. Это особенно полезно, когда имя команды snap конфликтует с системной командой или если вы хотите упростить использование более длинной команды.
Например, предположим, что вы установили snap “microk8s”, который предоставляет microk8s.kubectl
команду. Чтобы создать псевдоним, который вы можете просто использовать kubectl
, выполните:
sudo snap alias microk8s.kubectl kubectl
Теперь, когда вы вводите ее kubectl
в терминале, она будет выполняться microk8s.kubectl
.
Чтобы удалить существующий псевдоним, используйте snap unalias
команду, за которой следует имя псевдонима. Итак, чтобы удалить kubectl
псевдоним, созданный вами ранее, выполните:
sudo snap unalias kubectl
Выявление проблем с журналами Snap
Журналы Snap — полезный инструмент для диагностики проблем с приложениями и службами Snap в системе Linux. Система журналов Snap собирает журналы как для отдельных приложений, так и для демона Snap (snapd), помогая понять, что может быть не так, когда приложение не запускается или Snap ведёт себя неожиданно.
Если у вас возникли проблемы с конкретным приложением Snap, вы можете просмотреть его журналы с помощью команды snap logs
с указанием имени пакета Snap, которая извлекает журналы приложения. Например, чтобы просмотреть журналы пакета «microk8s», выполните следующее:
sudo snap logs microk8s
Это позволит вам просматривать выходные данные и журналы ошибок, создаваемые приложением Snap в режиме реального времени. Это поможет выявить проблемы во время выполнения, такие как сбои, отсутствие зависимостей или неправильная настройка.
Кроме того, вы можете добавить параметр «-f», который работает аналогично команде «tail -f» в Linux, где он непрерывно отслеживает и транслирует логи в режиме реального времени.
Переключение между каналами
Команда snap switch
используется для изменения канала отслеживания пакета Snap. Основной вариант использования — когда вы хотите протестировать новые функции в бета-версии или экспериментальной версии, но вернуться к стабильной версии, если обнаружите ошибки.
Как мы уже упоминали, «канал» — это различные версии или ветки, доступные для пакета, такие как «стабильная», «кандидатская», «бета-версия» и «последняя». С помощью snap switch
вы можете переключаться между этими каналами.
Например, чтобы вернуть GIMP в «стабильный» режим, выполните следующие действия:
sudo snap switch --channel=latest/stable gimp
После переключения каналов вам необходимо обновить пакет, чтобы применить изменения:
sudo snap refresh gimp
Отслеживание изменений Snap и управление ими
Команда snap changes
позволяет просматривать изменения, внесенные Snap в вашей системе Linux, такие как установки, обновления, удаления или откаты, и управлять ими. Чтобы перечислить все изменения Snap, выполните:
snap changes
Отобразится список изменений с их идентификаторами, статусом и временными метками. Теперь, чтобы просмотреть подробную информацию о конкретном изменении, используйте идентификатор изменения из предыдущей команды:
snap change 30
Наконец, если изменение застряло или вы хотите его остановить, вы можете прервать его с помощью snap abort
команды, за которой следует идентификатор изменения:
sudo snap abort 30
Отключение/включение пакета Snap
Команды snap disable
и snap enable
позволяют временно остановить (отключить) или повторно активировать (включить) пакеты Snap в вашей системе, не удаляя их. Например:
sudo snap disable gimp
И наоборот, команда snap enable
повторно активирует ранее отключенный пакет Snap, позволяя ему запускаться снова.
sudo snap enable gimp
Основной вариант использования – это если вы время от времени пользуетесь определенными службами Snap. Вы можете отключить их и включать только при необходимости. Кроме того, эти команды особенно полезны для управления системными ресурсами или устранения неполадок в определенных приложениях без их полного удаления и переустановки.
Выводы
Snap – это мощный инструмент, который значительно упрощает управление программным обеспечением в Linux, особенно для пользователей Ubuntu, где эта технология широко распространена.
Изучив примеры из этого руководства, вы теперь должны освоиться с использованием Snap для решения широкого спектра программных задач в вашей системе прямо из командной строки.
Для получения дополнительной информации посетите официальную документацию Snap. Спасибо за ваше время! Как всегда, любые предложения и комментарии приветствуются в разделе ниже.