Як працювати з пакетами Snap в Linux

Коли ви встановлюєте пакети програмного забезпечення Linux за допомогою snap, ви можете попрощатися з пеклом залежностей і поломкою інших робочих програм. Спочатку пакети Snap були розроблені для Ubuntu, але тепер вони доступні в різних дистрибутивах Linux.

Що таке пакети Snap?

У минулому встановлення програм на Linux було потенційно неприємним досвідом. Ви встановлювали щось лише для того, щоб виявити, що певна бібліотека чи інша залежність відсутня чи застаріла. Потім ви шукали б відсутній ресурс і встановлювали його, тільки щоб знайти іншу програму залежно від версії бібліотеки, яку ви щойно замінили. Виправити одну, зламати одну, повторити.

Це покращилося завдяки кращим системам керування пакетами, наприклад прих, dnf, і pacman. Однак ви все ще стикаєтесь із боротьбою, якщо вам потрібно встановити різні версії однієї програми. Або, якщо ви використовуєте дві програми, які конфліктують, оскільки вони пов’язані з певними, але різними версіями бібліотеки.

Одним із рішень цих проблем є системи упаковки та розгортання додатків. Швидкий є одним з найпопулярніших з них. Він заснований на системі упаковки та розгортання під назвою Click, яка повертається до Ubuntu Touch ініціатива. AppImage і FlatPack інші, з якими ви могли зіткнутися.

Ці системи інкапсулюють програму разом з будь-якими залежностями та іншими вимогами в один стиснутий файл. Далі програма запускається у своєрідному міні-контейнері. Він ізольований і відокремлений від інших програм. Бібліотеки та інші ресурси, до яких укомплектована програма або потрібні, доступні лише їй.

Вони не встановлюються в традиційному розумінні, тому не викликають проблем з іншими програмами, які вимагають різних версій тих самих ресурсів. Ви навіть можете встановлювати та запускати програми, яким потрібні конфліктуючі версії бібліотеки, оскільки кожна програма знаходиться у своїй пісочниці.

Але якщо вони не встановлені звичайним способом, як з ними поводитися? Ну, один файл пакету завантажується, розпаковується та монтується як SquashFSвіртуальна файлова система. Потім він представляється вам у вигляді віртуального середовища. Усе це відбувається за кадром. Все, що ви знатимете, це те, що ви встановили програму, і тепер у вас є доступ до неї.

Звичайно, оскільки кожен файл пакету повинен містити всі ресурси, необхідні програмі, файли пакету можуть бути великими. Також легко скопіювати ресурс, який ви зазвичай встановлюєте лише один раз, наприклад MySQL або Apache. Якщо для двох різних додатків знімка потрібні однакові ресурси, кожна з них має свою копію.

  Як встановити JetBrains Rider на Linux

Однак це є компромісом для простоти встановлення та усунення головних болів, пов’язаних із конфліктом ресурсів.

Встановлення snapd

Snappy був представлений разом із Ubuntu 16.04, тож якщо ви використовуєте цю чи новішу версію, ви вже готові. На нашій машині Snappy було встановлено на Manjaro 18.04, але нам довелося встановити його на Fedora 31.

snap — це і назва файлів пакету, і команда, яку ви використовуєте для взаємодії з ними. За лаштунками, демон snapd — це також назва пакунка, який потрібно встановити, якщо у вас ще немає Snappy на вашому комп’ютері.

Щоб встановити snapd на Fedora, введіть таку команду:

sudo dnf install snapd

The

Якщо вам потрібно встановити його на Manjaro, скористайтеся цими командами:

sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket

Ви можете використовувати команду snap version, щоб побачити версію клієнта snap, демона snapd і номер серії програмного забезпечення. Для вас також відобразиться назва та випуск вашого дистрибутива Linux, а також версія ядра.

Введіть наступне:

snap version

The

Встановлення snap-пакетів

Це досить простий процес встановлення пакета snap. Ви можете використовувати snap, щоб знайти пакети snap, а потім встановити потрібний.

Ми вводимо наступне, щоб знайти та встановити редактор зображень gimp:

snap find gimp

The

snap шукає збіги з пошуковою підказкою «gimp» і повертає результати. Він знайде все, що відповідає або згадує пошуковий термін.

Щоб встановити один із пакетів, ми використовуємо значення зі стовпця Ім’я, як показано нижче:

sudo snap install gimp

The

Під час завантаження відсоток завершених показників зростає, а зліва від вікна терміналу з’являється індикатор виконання. Після завершення інсталяції з’явиться повідомлення (як показано нижче), що повідомляє, що пакет було встановлено.

А

Ви можете використовувати команду df для перевірити ємність і використання різних файлових систем, налаштованих на вашому комп’ютері Linux. Якщо ми переведемо його вихід у команду grep і шукаємо «gimp», ми ізолювати вхід для пакета ми щойно встановили.

Набираємо наступне:

df | grep gimp

The

Це показує нам, що пакет snap був змонтований так, ніби це файлова система. Точка монтування знаходиться в каталозі snap тут: /snap/gimp/252. «252» — це номер випуску цієї версії gimp.

  Як об’єднати PDF-файли з PDFSam в Linux

Файлова система вказана як: /dev/loop18. Файли пристроїв циклу використовуються, щоб зробити звичайні файли доступними як блокові пристрої. Зазвичай вони використовуються для монтування файлових систем у образах дисків. У цьому випадку вони монтують файлову систему SquashFS у пакеті snap. «18» означає, що це 18-й файл пристрою /dev/loop, який використовується на цьому комп’ютері Linux.

Ми можемо використовувати команду df, щоб швидко перевірити це. Ми будемо використовувати параметр – t (тип), щоб обмежити вихід лише типами файлів SquashFS.

Набираємо наступне:

df -t squashfs

The

Перелічено змонтовані файлові системи SquashFS. Файл пристрою /dev/loop обробляє кожен з них, а їх 18.

Кожна файлова система змонтована в каталозі в каталозі /snap. Однак це не означає, що на цьому комп’ютері встановлено 18 різних пакетів snap. Це дистрибутив Ubuntu, тому деякі пакунки швидкого доступу встановлюються відразу з коробки, а ми щойно встановили інший.

Крім того, коли ви встановлюєте snapd, він встановлює деякі основні пакети snap для задоволення потреб інших пакетів snap.

Ми можемо використовувати команду snap list, як показано нижче, щоб перерахувати встановлені пакети snap:

snap list

Вихід був трохи широким, тому кінець списків показано нижче.

Ось весь список:

Name                 Version                    Rev   Tracking  Publisher    Notes
core                 16-2.43.3                  8689  stable    canonical*   core
core18               20200124                   1668  stable    canonical*   base
gimp                 2.10.18                    252   stable    snapcrafters -
gnome-3-26-1604      3.26.0.20191114            98    stable/…  canonical*   -
gnome-3-28-1804      3.28.0-16-g27c9498.27c9498 116   stable    canonical*   -
gnome-calculator     3.34.1+git1.d34dc842       544   stable/…  canonical*   -
gnome-characters     v3.32.1+git3.b9120df       399   stable/…  canonical*   -
gnome-logs           3.34.0                     81    stable/…  canonical*   -
gnome-system-monitor 3.32.1-3-g0ea89b4922       127   stable/…  canonical*   -
gtk-common-themes    0.1-28-g1503258            1440  stable/…  canonical*   -

Як бачите, встановлено 10 пакетів snap, а не 18. Однак ці 10 пакетів породили 18 файлових систем SquashFS. Стовпці таблиці досить зрозумілі, але ось деякі уточнення:

Ім’я: ім’я інстальованого пакета snap.
Версія: номер версії програмного забезпечення в пакеті snap.
Rev: номер версії пакета прив’язки.
Відстеження: канал, за яким цей пакет знімків відстежує оновлення. Є чотири:
Стабільний: канал за замовчуванням. Як випливає з назви, цей канал містить найстабільніші пакети.
Кандидат: цей канал менш стабільний, але дуже близький до нього, оскільки містить програмне забезпечення рівня-кандидата, яке є повним кодом. Перед переміщенням у стабільний канал він проходить остаточне тестування.
Бета-версія: цей канал має пізній цикл розробки, але не гарантує його стабільність.
Edge: для тестувальників ранньої збірки. Ви не повинні використовувати цей канал для важливої ​​роботи або на робочому комп’ютері. Ось будь дракони!

  Як записувати на кілька USB-дисків одночасно в Linux за допомогою Gnome MultiWriter

Видавець: особа, компанія або організація, яка випустила пакет знімків. Якщо це був перевірений видавець (і вікно терміналу підтримує Unicode), ви побачите зелену галочку біля імені видавця. Якщо він не може показати галочку, ви побачите зірочку
.

Примітки. Тут з’являться будь-які коментарі чи додаткова інформація.

Канали швидкого доступу

Ви можете скористатися опцією info, щоб отримати опис пакета snap.

snap info gtk-common-themes

Для цього вводимо наступне:

The

Ми можемо побачити, який канал відстежує пакет, і версію програмного забезпечення в пакетах знімків у кожному з чотирьох каналів. У більшості випадків вам слід залишатися на стабільному каналі.

Пакет знімків перевіряє чотири рази на день, щоб перевірити, чи доступна новіша версія програмного забезпечення на каналі, який він переглядає, або «відстежує». Якщо ви хочете змінити канал, який відстежує пакет, ви можете скористатися параметрами оновлення та –channel.

sudo snap refresh gtk-common-themes --channel=beta

Для цього вводимо наступне:

The

Якби була доступна новіша версія програмного забезпечення, вона була б встановлена, але тут це було не так. Однак пакет snap тепер відстежує бета-канал. Як тільки виходить нова бета-версія, вона автоматично завантажується та оновлюється.

Ви можете використовувати параметр –list, щоб перевірити, чи доступні оновлення для будь-якого з пакетів snap, встановлених на вашому комп’ютері.

sudo snap refresh --list

Для цього вводимо наступне:

The

Вам буде повідомлено, чи містить будь-який із каналів, які відстежують пакети snap на вашому комп’ютері, новіші версії програмного забезпечення.

sudo snap refresh gtk-common-themes

Якщо доступна новіша версія програмного забезпечення, ви можете скористатися опцією оновлення, як показано нижче, щоб примусово оновити вручну:

The

Видалення фіксованого пакета

sudo snap remove gimp

Щоб видалити пакет snap, ви можете скористатися опцією видалення, як показано нижче:

The

Шпаргалка швидкого доступу

Використовувати пакети snap досить просто, але ми склали список деяких команд, які допоможуть вам:
Щоб шукати пакет: натисніть кнопку find package_name
Щоб встановити пакунок: sudo snap install package_name
Щоб побачити всі встановлені пакунки: зніміть список
Щоб отримати інформацію про один пакет: натисніть інформацію ім’я_пакета
Щоб змінити канал, який пакет відстежує для оновлень: sudo snap refresh package_name –channel=channel_name
Щоб перевірити, чи готові оновлення для будь-яких встановлених пакетів: sudo snap refresh –list
Щоб вручну оновити пакет: sudo snap refresh ім’я_пакета

Щоб видалити пакет: sudo snap remove package_name