Debianowy APT ma już swoje lata, a przy tym nie jest najwygodniejszy. Może więc przyszedł czas, by go zastąpić czymś nowszym, lepszym, ładniejszym?
Mimo krytyki pomysł repozytoriów z oprogramowaniem wydaje się być całkiem niezłym rozwiązaniem. Wszystkie podstawowe narzędzia zawsze są pod ręką, a jeśli to nie wystarcza to można dodać zewnętrzne repozytoria. System ten uwalnia nas, zwykłych użytkowników od tzw. “dependency hell” – sytuacji, w której po 120 próbach, o 2-ej w nocy okazuje się, że się zapomniało doinstalować jeszcze jakiejś biblioteki. Paczki i repozytoria to jednak znacznie lepsze wyjście.
Przyzwyczailiśmy się już do APT w debianopodobnych dystrybucjach Linuksa. Okazuje się jednak, że proces instalacji i zarządzania paczkami można ulepszyć. I to jak!
Stare, dobre paczki
W debianopodobnych dystrybucjach – Ubuntu, Tails, Kali i innych, obsługa paczek DEB powoli ewoluuje. Najpierw był aptitude, potem apt-get, wreszcie apt. Mowa cały czas o obsłudze w konsoli, bo graficzna wersja interfejsu też oczywiście istnieje i ma swoją własną ścieżkę ewolucji.
Nam, użytkownikom może się wydawać, że powstają coraz to nowe programy zarządzające oprogramowaniem, ale… to tylko złudzenie. Za obsługę paczek w systemie odpowiedzialna jest biblioteka libapt-pkg, a apt-get czy aptitude to tylko front-end, interfejs użytkownika.
Jest taki linuksowy dowcip, od sytuacji dopasowywany do różnych sytuacji, ale zawsze prawdziwy: skoro są trzy interfejsy to zróbmy jeden, łączący zalety wszystkich. Wynik: są cztery interfejsy… Miejmy trochę dystansu do siebie i przyznajmy: ten scenariusz w środowisku Linuksa zdarza się dość często. Ale cóż – dzięki temu mamy większy wybór i możliwość dopasowania oprogramowania do swoich wymagań.
Coś takiego przydarzyło się także aptowi – ktoś wpadł na pomysł, że skoro można zrobić własny interfejs do paczek DEB to czemu by nie spróbować. I ta próba wyszła świetnie.
Twórca programu nala – tak się nazywa ów nowy interfejs – podjął się przybliżenia procesu instalacji i aktualizacji oprogramowania użytkownikowi. Jak sam pisze na stronie projektu (https://gitlab.com/volian/nala) – usunął część powtarzających się komunikatów, poukładał wszystko w pseudo-graficznym layoucie i wyróżnił kolorami różne rodzaje akcji. Całość sprawia naprawdę imponujące wrażenie!
BTW „Nala” to postać z filmu „Król lew”, a sądząc z logo projektu, również… imię kota twórcy.
Instalacja
Nie dziwi fakt, że nala do instalacji wykorzystuje system paczek DEB. Twórca ma swoj repozytorium, które należy dodać do listy, a następnie zainstalować program za pomocą polecenia apt install.
echo "deb [arch=amd64,arm64,armhf] http://deb.volian.org/volian/ scar main" | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list
wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg > /dev/null
sudo apt update && sudo apt install nala
Uwaga! Być może wykonujesz polecenie apt po raz ostatni…
Jeśli to komuś nie odpowiada może pobrać paczkę ze strony programu: https://gitlab.com/volian/nala/-/releases
a następnie zainstalować ją ręcznie:
sudo dpkg -i /path/to/nala_version_arch.deb
sudo apt install -f
Teraz już możemy się przekonać jak przyjemnym procesem może być zarządzanie paczkami oprogramowania.
Nala ma niemal ten sam, znany doskonale z apta zestaw poleceń: update, install, upgrade itp. nie znajdziemy opcji reinstall, ale to dlatego, że nala ma na ten temat swój pomysł – znacznie, wydaje się, ciekawszy.
Fetch – najszybsze serwery
Zacznijmy od przyspieszenia pobierania. Nala potrafi znaleźć najszybsze serwery w danej lokalizacji, wystarczy wydać polecenie
sudo nala fetch
Po kilku(nastu) sekundach program zaproponuje zestaw serwerów, które mają najlepsze wyniki. Dzięki temu polecenie update będzie wykonywane szybciej.
Równoległe połączenia
Na tym nie koniec ulepszeń. Nala potrafi pobierać paczki po kilka jednocześnie. Upgrade jest od 2 do 16 nawet razy szybszy. To chyba najbardziej widoczne i najważniejsze dla użytkowników ulepszenie. Trzeba przyznać, że różnica jest odczuwalna.
Instalowanie oprogramowania
Instalowanie pakietów jest podstawowym zadaniem menedżera oprogramowania. Nala robi to w swoim stylu – na kolorowo i przejrzyście:
Proces instalacji paczek został dopracowany wizualnie – komunikaty są ujednolicone, ekran jest dzielony na logiczne części, zawierające informacje o pobranych plikach, instalowanych programach itp. Wszystko w żywych kolorach. Trzeba przyznać, że takie podejście do aktualizacji w pierwszym momencie jest nieco szokujące – apt nie rozpieszczał nas wyszukanym interfejsem. Jednak po kilku update’ach, jak już połapiemy się co który kolor oznacza, okazuje się, że znacznie łatwiej jest zorientować się, co się w danym momencie dzieje.
Informacja o pakietach
„Zarządzanie” to nie tylko instalacja i odinstalowanie programów. Od czasu do czasu trzeba wyszukać pakiety albo sprawdzić w jakiej wersji są dostępne.
I tym razem otrzymamy informację podaną w przejrzystej, oznaczonej różnymi kolorami formie.
Update z upgradem w jednym stały domu
Zazwyczaj po wydaniu polecenia update wpisujemy, niemal jednym ciągiem, upgrade – co komu z informacji, ile ma nieaktualnych pakietów jeśli nie zostaną one zaktualizowane?
Dlatego też nala wykonuje te kroki automatycznie jeden po drugim. Wydanie polecenia
sudo nala upgrade
jest równoważne poleceniu
sudo apt update && apt full-upgrade --auto-remove
– najpierw pobierane są informacje z repozytoriów, potem pojawia się lista pakietów, które można zaktualizować i pytanie, czy przystąpić do pracy. Rzecz jasna można zrezygnować, ale praktyka pokazuje, że zazwyczaj jednak wciska się enter i uruchamia aktualizacje. Trzeba przyznać, że ten drobiazg jest bardzo wygodny.
Jeśli chcemy się tylko przekonać jak bardzo postarzał się nasz system, ale go nie odmładzać możemy użyć polecenia
sudo nala update
Repozytoria zostaną zaktualizowane, listy oprogramowania pobrane i – po raz kolejny przejrzyście i na kolorowo – otrzymamy dane pakietów przeznaczonych do aktualizacji.
Historia
Podobnie jak apt, tak i nala pozwala zarządzać zainstalowanymi pakietami. Reprezentuje jednak nieco inne podejście. Program prowadzi własną ewidencję instalowanych pakietów i za pomocą polecenia history możemy uzyskać informacje co i kiedy było instalowane.
Nie tylko, że informacja jest ładniej podana, ale jeszcze dowiadujemy się, kiedy instalacja się odbyła. Mało tego, wydając polecenie nala history info <ID> możemy się dowiedzieć jakie konkretnie pakiety (poza głównym) zostały zainstalowane. Daje to pełną kontrolę nad oprogramowaniem.
Ten system pozwala uzyskać znacznie dokładniejszą informację o stanie naszego oprogramowania, ma jednak jedną wadę: opiera się na swoim własnym logu programu. Oznacza to, że nie dowiemy się niczego o pakietach zainstalowanych za pomocą apta czy dpkg.
Jest to pewna niedogodność, ale zakładając, że jednak zdecydujemy się na używanie kolorowego menedżera pakietów to zyskamy jeszcze jedną istotną funkcję: bazując na swojej historii potrafi on – za pomocą polecenia nala history undo <ID> – odinstalować wszystkie pakiety z danej sesji. Z doświadczenia wiem, że, zwłaszcza przy pakietach z dużą liczbą zależności, apt potrafi się pogubić i, zainstalowawszy 10 pakietów, przy odinstalowywaniu programu wyrzuca np. 5. A śmieci zostają na dysku. Tu nala ma zdecydowaną przewagę.
Nie tylko repozytoria
Podobnie jak apt, nala również potrafi instalować paczki DEB, pobrane z internetu. apt w tym przypadku pyta jedynie o hasło i instaluje paczkę. nala najpierw wyświetla informacje, potem pyta o pozwolenie instalacji – jest to istotne zwłaszcza w przypadku aktualizacji oprogramowania – a dopiero potem instaluje program. Mimo, że to kilka kliknięć więcej – chyba warto mieć większą kontrolę nad procesem instalacji.
W porównaniu do apt ilość informacji podawanej przez program może nie jest znacząco większa (a jeśli wierzyć autorowi jest wręcz mniejsza), ale sposób jej podania sprawia, że cały proces – od instalacji, przez aktualizacje, aż do odinstalowania – staje się znacznie bardziej zrozumiały i łatwiejszy.