Blog (57)
Komentarze (10k)
Recenzje (1)

Kontenery i bajery

@BerionKontenery i bajery17.06.2016 23:47

Ubuntu można lubić lub nienawidzić i podobnie jest z pomysłami Marka Shuttlewortha. Jednak chyba każdy przyzna, że to właśnie ta osoba stoi za dystrybucją Linuksa, która spopularyzowała pingwina, a można nawet śmiało rzecz, że wprowadziła go na biurko. To nie Gentoo, Slackware, Debian, RedHat, Fedora czy OpenSUSE kojarzy się przeciętnemu Kowalskiemu z Linuksem tylko właśnie Ubuntu.

Ubuntu 16.04 LTS to pierwsza dystrybucja dla mas, w której możemy użyć kontenerów, czyli VFS zawierających aplikację i jej wszystkie potrzebne do działania zasoby (skompilowane biblioteki, pliki konfiguracyjne, pliki graficzne etc.), wraz z odwzorowaniem struktury katalogów w systemie. Kontenery NIE zastąpią i nawet NIE próbują zastępować tradycyjnej formy dystrybucji oprogramowania na Linuksa. To jest rozwiązanie równoległe, które ma wiele zalet, jak i wiele wad – i w zależności od potrzeb środowiskowych użytkownika, zależy ich użyteczność, a nawet sens istnienia. Jeśli ktoś ma teraz zamiar zacząć biadolić, że po co mu to jak jest apt-get, aptitude, zypper, pacman czy cokolwiek innego, niech się jeszcze raz zastanowi nad tym co właśnie przed chwilą przeczytał. ;)

Zalety:

  • deweloper może przygotować program raz i zapomnieć o jego istnieniu na długie lata ;)
  • deweloper komercyjnego programu nie musi udzielać wsparcia dla wszystkich dystrybucji lub rezygnować ze wsparcia na rzecz tylko najpopularniejszych
  • użytkownik może pobrać program wprost od programisty, bez pośredniczenia w tym legionu paczkujących
  • użytkownik może uruchomić program na wielu bardzo różniących się od siebie dystrybucjach
  • użytkownik może w łatwy sposób przenosić oprogramowanie
  • użytkownik może łatwo decydować o miejscu docelowym na oprogramowanie bez wachlowania symlinkami
  • użytkownik może łatwo przetestować dany program bez konieczności dodawania repozytoriów i ściągania dodatkowych bibliotek
  • użytkownikowi łatwiej jest utrzymać higienę systemu
  • użytkownik może przechowywać kilka wersji tego samego programu bez problemów z zależnościami
  • użytkownik może łatwo ograniczyć uprawnienia aplikacji

Wady:

  • duży rozmiar kontenerów ze względu na to, że nie odczytują np. bibliotek z systemu tylko muszą je mieć wewnątrz siebie
  • wymagane repozytorium z kontenerami i system patchowania delta lub żmudne ręczne aktualizacje jak ma to miejsce np. na Windows
  • aktualizacja bibliotek itp. spada na barki twórcy programu (czyli można się spodziewać, że będzie okazjonalna - również jak na Windows)
  • znacznie dłuższe uruchamianie programu
  • brak integracji ze środowiskiem graficznym (tray, ppm w managerze plików etc.)

Moim zdaniem to jest przyszłość dystrybucji aplikacji na Linux. Oczywiście nie wszystkich, przecież żaden szaleniec nie będzie kontenerował mikrobów w CLI jak np. dd czy tree. Jest to głównie narzędzie dla producentów komercyjnego oprogramowania, ponieważ znosi różnice pomiędzy wersjami i edycjami distro, a także zdejmuje z dewelopera konieczność doglądania i przygotowywania paczek na ich niezliczoną ilość. Czyli tak jak na Windows czy OS X. :)

Dla mnie prywatnie to także wygodne narzędzie, ponieważ lubię być obsesyjnie niezależny od połączenia z internetem, a jak wszyscy wiemy, obecnie Linuksa trudno używać bez dostępu do sieci (w kwestii instalacji programów rzecz jasna).

Mamy kilka konkurujących ze sobą formatów: Snappy, Flatpak i AppImage. W dzisiejszym wpisie zajmę się tylko tym ostatnim, jako wg. mnie najprostszym i najciekawszym.

Jak prostym? Wystarczy pobrać plik i nadać mu atrybut wykonywalny (w Linux Mint pod prawym przyciskiem myszy należy wybrać "Właściwości", przejść na zakładkę "Uprawnienia" i zaznaczyć "Wykonanie"). To wszystko! Po takim zabiegu jedyne co musi zrobić użytkownik to dwukliknąć na plik. Resztą zajmie się loop (*.appimage to tak naprawdę obraz *.iso).

Oczywiście takie pliki można dopisywać do docków, apletów, czegokolwiek w taki sam sposób jak binarki czy aktywatory. Nie przeszkadzają spacje, ani znaki specjalne w nazwie pliku i można go umieszczać w dowolnym miejscu w systemie, a nawet poza.

Czym to się różni od „modułów” w np. Slax ? Między innymi tym, że wszystko uruchamiane jest na żądanie, a nie wraz ze startem systemu.

Ciekawostka: program pojawi się w /tmp/.mount_LosowyCiągZnaków/, a po zamknięciu oczywiście znika. ;}
Ciekawostka: program pojawi się w /tmp/.mount_LosowyCiągZnaków/, a po zamknięciu oczywiście znika. ;}

Jak wygląda integracja ze środowiskiem graficznym? Nijak… Jako jeden z przykładów, a do tego kluczowy z punktu widzenia wygody użytkownika jest skojarzenie formatów plików z aplikacją. Przynajmniej w Linux Mint 17.3, na którym to testowałem, owszem działa, ale tylko do czasu restartu.

To samo dotyczy ikon aplikacji. Dopóki są cache’owane dopóty zastąpią domyślne.

Bezpieczeństwo

Podobnie jak w przypadku paczek w repozytoriach, użytkownik skazany jest na zaufanie do paczkującego (z tym że tutaj „paczkujących” jest naparstek, a samo rozwiązanie dość niszowe, więc...). Tylko Krita udostępniła własną paczkę AppImage na swojej stronie. Pewnym półśrodkiem może być piaskownica, którą trzeba pobrać i doinstalować. Wówczas format *.appimage skojarzony zostanie ze skryptem i trzeba też zdjąć atrybut wykonywalny z pliku (z wykonywalnym uruchomi się normalnie, bez ograniczeń). Sandbox to jednak ubogi ponieważ nie pozostawia wyboru użytkownikowi: blokuje cały dostęp do systemu plików (czyli np. nie można zapisać owocu swoich prac).

W Linux Mint wystarczy dwukliknąć na pobranej paczce i kliknąć w przycisk "Zainstaluj pakiet".

Od tej pory uruchamianie aplikacji *.appimage odbywa się tak samo, z tą różnicą że użytkownik zostanie o tym poinformowany.

[1/2]
[2/2]
Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.