Ubuntu 20.04 Focal Fossa – це визначна версія, яка здобула широке визнання. Проте, рішення замінити Центр програмного забезпечення на інсталяцію програм на основі Snap викликає дискусії. Розгляньмо, що це означає для вас як користувача.
Що таке Snap Package в Linux?
Термін “Snap” стосується як команди `snap`, так і інсталяційного файлу з розширенням .snap. Snap-пакет об’єднує програму разом з усіма її залежностями в один стиснутий файл. Залежностями можуть бути бібліотеки, веб-сервери, бази даних або будь-які інші компоненти, необхідні для роботи програми.
Перевага Snap-пакетів полягає у спрощенні процесу встановлення, оскільки вони усувають проблему, відому як «пекло залежностей». Ця ситуація виникає, коли нова програма не може запуститися через відсутність необхідних ресурсів, їх невідповідну версію, або коли її інсталяція перезаписує файли, потрібні для інших програм, порушуючи їхню працездатність.
Під час інсталяції Snap-пакет розпаковується, але під час виконання він монтується як блоковий пристрій циклу. Це дозволяє отримати доступ до його внутрішньої файлової системи SquashFS.
Програма запускається в ізольованому середовищі, що запобігає конфліктам між її файлами та файлами на вашому комп’ютері. Ви навіть можете мати кілька версій однієї програми, і вони не будуть перетинатися або конфліктувати між собою.
Недоліком Snap-пакетів є більший розмір файлів інсталяції порівняно з традиційними пакетами Debian Package Manager (DEB). Вони також споживають більше місця на диску. Кожен Snap-пакет, що потребує певного ресурсу, встановлює власну копію. Це не є найефективнішим використанням дискового простору. Хоча жорсткі диски стають більшими і дешевшими, багато користувачів не схвалюють екстравагантність кожного додатка, який працює у власному міні-контейнері. Також запуск програм відбувається повільніше.
Snap-пакети критикують за відсутність інтеграції з темою робочого столу та автоматичні оновлення. Деякі користувачі також ставляться з недовірою, оскільки Snap-пакети не завжди створюються авторами програмного забезпечення, тому вони не вважають їх на 100% “офіційними”.
Отже, у Focal Fossa Canonical замінив стандартний Центр програмного забезпечення Ubuntu версією, яка за замовчуванням встановлює програми у вигляді Snap-пакетів. Що це означає для вас?
Центр програмного забезпечення Ubuntu
Щоб переглянути список файлових систем SquashFS, змонтованих на вашому комп’ютері, скористаймося командою `df`. Параметр `-t` дозволить обмежити вивід лише потрібними файловими системами:
df -t squashfs
Далі, скористаємося командою `snap list`, щоб переглянути встановлені Snap-пакети:
snap list
Ви бачите два Snap-пакети, пов’язані з робочим столом GNOME, два для основних функцій Snap, один для тем GTK і один для самого сховища Snap-пакетів. Звісно, застосунок snap-store також є Snap-пакетом.
Секрет полягає в тому, що якщо ви запустите команду `snap-store` у терміналі, то фактично запуститься Центр програмного забезпечення Ubuntu.
Звичайно, зазвичай ви запускаєте Центр програмного забезпечення Ubuntu, натискаючи його іконку. Ми запускаємо його з командного рядка, щоб показати, що насправді під капотом тепер працює програма з snap-store:
snap-store
Центр програмного забезпечення Ubuntu виглядає так само, як і очікувалось. Ви можете шукати будь-яке програмне забезпечення, як і раніше.
Спробуємо знайти і встановити програму “sqlitebrowser”. Екран з результатами пошуку відобразить деталі програми та скріншот. Натисніть “Встановити”, щоб інсталювати програмне забезпечення.
Якщо ви не знали, то не помітили б змін під капотом. Прокрутіть вниз, і ви побачите нову інформацію, специфічну для Snap-пакетів.
Розділ “Деталі” містить таку інформацію:
Канал: канал, з якого інсталяція отримує програму.
Версія: версія програмного забезпечення.
Ліцензія: тип ліцензії.
Розробник: особа або команда, що створила Snap-пакет, або автори програми.
Джерело: джерело, з якого завантажується Snap-пакет (snapcraft.io – це магазин Snap-пакетів Canonical Snapcraft).
Розмір завантаження: розмір файлу Snap-пакету.
Канал може бути одним з таких:
Стабільний: канал за замовчуванням, який містить найбільш стабільні та перевірені пакунки.
Кандидат: менш стабільний канал, але дуже близький до нього, оскільки містить програмне забезпечення рівня-кандидата.
Бета: цей канал використовується на пізніх етапах розробки, але стабільність не гарантована.
Edge: призначений для ранніх тестувальників та допитливих користувачів. Не рекомендується використовувати цей канал для важливих завдань.
Після завершення інсталяції перевіримо список встановлених Snap-пакетів:
snap list
Новий запис з’явився внизу. Запустимо програму:
sqlitebrowser
Програма працює чудово, хоча її інтерфейс виглядає дещо застарілим. Псевдо-3D елементи інтерфейсу нагадують GUI минулого. Це не характерно для всіх Snap-пакетів, але в даному прикладі це помітно.
Встановлення з командного рядка
Процес встановлення програм з командного рядка не змінився. Ви все ще можете використовувати команду `snap`, що дозволяє встановлювати та видаляти Snap-пакети у терміналі. Команди `apt-get` та `apt` також доступні.
Встановимо ту ж саму програму з командного рядка. Оскільки версія, встановлена раніше, є Snap-пакетом, вони не впливатимуть одна на одну:
sudo apt-get install sqlitebrowser
Дочекаймося завершення інсталяції. Натисніть клавішу Super та введіть “sqlitebrowser”. Після введення кількох символів ви побачите дві версії програми на своєму комп’ютері.
Запустіть обидві версії.
Як бачите, обидві різні версії встановлені та працюють одночасно.
Версія на задньому плані – це та, що ми встановили з командного рядка, а версія спереду – це Snap-пакет:
Версія apt-get – 3.11.2.
Версія Snap – 3.11.99.
Попри візуальні відмінності, версія з командного рядка є старішою. Тим не менш, очевидно, що дві версії можуть співіснувати та працювати паралельно. Snap-пакети виконують свою основну функцію, забезпечуючи ізоляцію різних версій програм.
Крім того, встановлення програм з командного рядка за допомогою `apt` або `apt-get` відбувається так само, як і завжди, і не залежить від Snap-пакетів.
Який спосіб встановлення використовувати?
Чи має значення, який тип програми ви використовуєте? Якщо так, то ось, що слід врахувати:
Якщо будь-яка з наведених нижче умов вас не влаштовує (або кілька з них), уникайте використання Центру програмного забезпечення Ubuntu та встановлюйте програми традиційним способом:
- Завантаження Snap-пакетів відбувається повільніше, особливо на старому обладнанні.
- Snap-пакети займають більше місця на жорсткому диску.
- Snap-пакети оновлюються автоматично.
- Snap-пакети можуть не відповідати встановленим темам робочого столу.
- Snap-пакети не завжди є “офіційними”, оскільки їх часто створюють волонтери.
Якщо ваш комп’ютер достатньо сучасний, різниця у швидкості запуску Snap-пакета або звичайної програми буде незначною. Найпомітніша різниця у часі буде під час встановлення. Завантаження Snap-пакетів займає значно більше часу. Після завантаження, інсталяція відбувається досить швидко. Проте, завантаження – це одноразова операція, тому ви не стикатиметеся з цим щодня.
Навіть якщо ви вважаєте, що Snap-пакети – це майбутнє, і ви готові їх повністю прийняти, ви не зможете відмовитися від інших способів. Деякі програми не доступні у форматі Snap-пакетів. В такому випадку вам доведеться встановлювати їх за допомогою командного рядка.
Очевидно, що Canonical робить ставку на Snap-пакети. Для розробників Ubuntu вони залишаються пріоритетом. Як завжди, ви можете використовувати їх, ігнорувати або створити гібридну систему, що поєднує Snap-пакети та традиційні установки на основі DEB.