Snaps wita was

Jeśli zapytać by dowolną osobę o największą bolączkę Linuksa, to w większości przypadków bez chwili zastanowienia otrzymamy odpowiedź: „Za dużo dystrybucji”, a po chwili „Za dużo systemów paczkowania”. I jest to to poniekąd prawda, ale to nie liczba dystrybucji jest tutaj największą przeszkodą, a rozdźwięk w sposobie dystrybuowania oprogramowania dla tychże. Owszem można się upierać, że przecież w zasadzie mamy tylko paczki deb, rpm, xz, tgz. Ale ich przyspawanie do konkretnej wersji dystrybucji jest, delikatnie mówiąc, uciążliwe. Owszem, są rozwiązania sprytne jak system paczek w Arch Linuksie, ale to nadal rozwiązanie dla jednego systemu (i dystrybucji pochodnych). Co w takim przypadku powinno się zrobić? Wprowadzić kolejny system paczek – Snaps.

Jeżeli przyjrzeć się problemowi od strony technicznej, to jedynym usprawiedliwieniem dla systemów paczek są zależności (wygodny sposób ich definiowania i rozwiązywania) oraz to, że binarna wersja programu dla danej dystrybucji jest przygotowywana w oparciu o kompilację z użyciem kompilatora i bibliotek zawartych w takim systemie. Dlatego paczki deb z Debiana 8 próżno próbować uruchamiać na Debianie 5, 6 czy nawet 7. A co, jeśli to wszystko – zależności, biblioteki użyte przy kompilacji, zawrzeć w jednej niezależnej paczce razem z binariami? Tak też pomyślano w Canonical i tak narodził się system paczek Snaps. System od momentu narodzin wyśmiewany, skazany na ostracyzm i niewybredne zestawianie w jednym szeregu z dotychczasowymi przedsięwzięciami twórców Ubuntu. Ale z drugiej strony, nikt nigdy nie zadeklarował, że Snaps ma zastąpić używane w Ubuntu paczki deb. Standard ten powstał, by rozwiązać problemy twórców niezależnych gier i programów, tak aby mogli bez większego angażowania sił tworzyć i umieszczać / rozprowadzać uniwersalne paczki dla Ubuntu. Przecież coś takiego robi już Valve w swoim SteamOS (i samym Steamie dla Linuksa) – choć może nie w tak oczywisty sposób. Gry kupowane za pośrednictwem Steama zainstalują się na każdym Linuksie, bez konieczności domyślania się, jakie biblioteki i zależności są nam potrzebne. Tą samą drogą podążyła koncepcja paczek Snap – łatwe do przenoszenia między dystrybucjami oprogramowanie.

Otóż to, pomiędzy dystrybucjami. Chociaż Snaps było pomyślane na początku jako rozwiązanie stricte dla Ubuntu, zainteresowanie ze strony deweloperów innych systemów spowodowało, że już teraz Snaps możemy używać w Debianie, Arch Linuksie Fedorze. Trwają prace nad implementacją w CentOS, Elementary, Gentoo, Mint, OpenSUSE, OpenWrt. Pomyślcie tylko – jedna paczka, którą pobieramy i uruchamiamy na niemal dowolnej dystrybucji. W dniu premiery nowej wersji programu. Bez konieczności czekania, aż ktoś stworzy paczkę, zaktualizuje zależności i tak dalej. Oczywiście, bez porzucania dotychczasowego menadżera pakietów przynależnego naszemu systemowi.

No dobrze, brzmi to wspaniale, ale jak Snaps sprawdza się w praktyce? (Snaps – paczki Snap, Snap – system paczkowania). W kwestii marketingowej nie bardzo, paczki są ogromne (100 – 150MB) – to wymaga jeszcze dopracowania. W kwestii logiki standardu jest lepiej. Snaps oprócz instalowania się niezależnie od całości systemu, starają się też być całkowicie od niego oddzielone. To daje nadzieję na odpowiednie opanowanie kwestii bezpieczeństwa i innych zagrożeń, które można mnożyć na przykładzie wiodącego systemu i uniwersalnych plików exe.

Czy Snaps się przyjmie i ułatwi życie deweloperom oraz użytkownikom? Cóż, wobec całej ostrożności w ocenie rozwiązań serwowanych przez Canonical, Snaps może być rozwiązaniem naszych odwiecznych dylematów – system ze świeżym oprogramowaniem, czy system stabilny, itp. Samo zaangażowanie ze strony deweloperów przeróżnych dystrybucji już o czymś świadczy – oni sami ujrzeli światełko w tunelu niekończącej się epopei paczkowanie, przepakowywania, uzupełniania zależności i tak co każda wersja systemu.