Zjednoczenie pakietów

O jakie elementy w prozie współpracy z Linuksem większość nowych użytkowników nabija sobie guza? Nieee, niekoniecznie kompilacja i praca w konsoli. Nie jest to też instalacja sterowników, choć łączy się ona z problemem o którym chcę wspomnieć. Otóż…

Usadźcie nowych użytkowników i dajcie im polecenie zainstalowania jakiegoś programu. Dla pikanterii – najlepiej takiego, którego nie ma w repozytorium. Nie będziemy się posuwać do pierwotnego cynizmu i niech ten program występuje w wersji dla Linuksa. I jakie będą reakcje?

Pewnie spora część z nich rozpocznie kontemplować w zadumie własne paznokcie. Część, bardziej wtajemniczonych, wierząc w siłę repozytoriów, będzie tam próbowała rozwiązać ten problem. Inni podążając instynktem wyuczonym w szkole/domu/pracy, udadzą się na stronę programu i tam poszukają sobie instalki. Całkiem nieźle, jak na nowych. Lecz…

Jeżeli twórcy programu zadbali o prekompilowane binarki dla Linuksa (początkujący podnoszą jedną brew), to oprócz paczki ze źródłami (opada dolna warga), na stronie znajdziemy cały wysyp paczek (instalek) .rpm, .deb, .txz. I jeśli twórcy byli zapobiegliwi, każda w wersji i386, i686, amd64, itp. (unosi się druga brew). I teraz zaczynają się dylematy zwykłego użytkownika, który sobie tylko chciał pooglądać strony WWW i przez Skype pogadać. O ile może być świadom istnienia na dysku oprogramowania pt. Linux, o tyle rozróżnienie jaką posiada dystrybucję, architekturę – to po prostu za wiele. W głowie rodzi się bunt ‘w imię czego ja się mam tak mordować w tym luksusie’, a efekt takich przemyśleń jest raczej większości znany.

Dlatego wiodący system został zaakceptowany przez świat (nie ukrywajmy, w większości składający się z laików i ignorantów komputerowych), gdyż umożliwił co najmniej proste i dostępne instalowanie programów. Ludzie podążyli za pomysłem ‘one .exe, one click’ nawet nie tyle z sympatii do wiadomej firmy, co po prostu z wygody, niewiedzy, lenistwa, braku czasu na szukanie trudniejszych rozwiązań, itp.

A teraz minę powyższego użytkownika przeciwstawcie uśmiechniętej buzi, która pobiera jeden, jedyny plik ze strony programu i kliknięciem sobie instaluje (no oczywiście podając uprzednio hasło roota – administratora).

Jak dla mnie, problem istnieje i jest realny. Ludzie naprawdę nie czują potrzebny totalnego zagłębiania się w nazwę dystrybucji, jej wersję, platformę sprzętową, typ paczek przynależnych danej dystrybucji, itp. To tak, jakby robić doktorat z fizyki, na potrzeby wymiany żarówki w lampce.

Połowa światka FOSS już od jakiegoś czasu zastanawia się jak ujednolicić te nieszczęsne pakiety. Druga połowa zastanawia się, jak tym pierwszym obrzydzić to zastanawianie. Niechęć budzi zapewne to, że wtedy sposób dystrybucji programów i ich instalacja stanie się aż nazbyt podobna i zapożyczona z rozwiązań windowsowych. Co za tym idzie, mogą się pojawić zagrożenia w postaci wirusów i innych nieprzydatnych dodatków. Ale czy na pewno nie można nad tym zapanować?

Tu nie chodzi o to, aby likwidować repozytoria i przewracać dotychczasowy porządek do góry nogami. Lecz o to, by developerzy byli w stanie przygotować jedną wersję paczki gotowej do instalacji na wszystkich (większości) dystrybucji. To rzecz jasna nie takie hop siup – począwszy od różnic pomiędzy dystrybucjami w strukturze /etc i nie tylko (spróbuj debianowcu skonfigurować w konsoli sieć na OpenSUSE. Spróbuj użytkowniku OpenSUSE skonfigurować w ten sam sposób sieć na Debianie), przez różne wersje kerneli, bibliotek, itp. Część problemów już się rozwiązuje, jeżeli chodzi o standaryzację ustawień – głównie za sprawą Linux Standard Base. Kwestię bibliotek można rozwiązać za pomocą linkowania statycznego podczas kompilacji. Program dostępny ‘normalnie’ w repozytorium, zachowywał by się podczas instalacji jak dotąd – pobierał zależności, itp, z różnicą taką, że – zainstalowałby się na każdej dystrybucji.

Przypuszczalnie, batalia o wygodę instalacji jest do wygrania. Niestety, kosztem wielkości paczki z programem (po co nam zatem te gigabajty wolnego miejsca na dysku?), zajętością pamięci RAM przez program (a po co nam te gigabajty RAMu?) i kosztem bezpieczeństwa, tudzież stabilności. Ale patrząc na specyfikę Linuksa, czy te ostatnie argumenty nie są zbyt na wyrost? Może obawy są niepotrzebne. A poprawienie jakości komfortu pracy i zlikwidowanie mętliku instalacyjnego na pewno zyskałoby w oczach zwykłych użytkowników.