Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Apple way - część 2 - Instalujemy program

Pewna nauczycielka geografii miała duże problemy z zaszczepieniem gimnazjalistom większej wiedzy o globusie. Wszystkie próby zainteresowania małoletnich kończyły się niepowodzeniem, prezentowali zero zaangażowania. Nauczycielka u kresu nerwów wpadła na pewien pomysł. Na początku kolejnej lekcji powiedziała do klasy: „Dzisiaj pokażę wam jak naciągnąć prezerwatywę na globus.” Cel osiągnęła, pierwsze pytanie jakie padło z sali brzmiało: „Proszę pani, a co to jest globus?”...

Nie wiem czy ta anegdotka pasuje do dzisiejszego tekstu, ale i tak jest fajna. Gdybym teraz napisał, że opowiem jak instaluje się programy, to oczywiście każdy lekceważąco pokiwałby głową i puścił to mimo uszu - prezerwatywa jaka jest każdy widzi. Ale jeśli napiszę, że można to zrobić jeszcze prościej i inaczej, to już być może zainteresowanie wywoła. Sam proces instalowania programów w Windows zwykle nie przysparza żadnych problemów. Setup.exe i... jechane - patrzymy tylko leniwie na przyrastający pasek postępu, czekamy na ostatni komunikat i naciskamy OK. Nawet najwięksi twardziele w trakcie tego procesu nie zawracają sobie głowy tym, co tak naprawdę wypełnia ten pasek postępu. Oczywiście wiemy, że instalowana aplikacja wymaga całej masy różnych składników, które instalator pracowicie kopiuje w różne miejsca naszego dysku. Ale tak naprawdę to wisi nam, gdzie i co wpada w trakcie tego procesu.

Wisi oczywiście do czasu. Nawet najczujniejszy użytkownik i systemowy purysta spotkał się przynajmniej raz z problemami po instalacji, a jeszcze częściej po odinstalowaniu programu. Nie będę tego opisywał, bo dla wielu z nas to codzienność. W Linuksie z pozoru sprawy wyglądają jeszcze bardziej zawile. Jednak ktoś, kto Linuksa zna trochę lepiej wie, że porządek przy instalacji dobrze przygotowanej paczki jest większy niż w przypadku Windows. Wystarczy znać zasady i mechanizmy, a bez trudu znajdziemy składniki zainstalowanej aplikacji.

r   e   k   l   a   m   a

Instalujemy w MacOSX

Z pewnym zażenowaniem muszę napisać, że w MacOSX (ale też we wcześniejszych systemach Apple) instalowanie programów przebiega wg schematu jakby stworzonego dla pierwszoklasisty i to na dodatek kompletnego głąba. Zero szacunku dla zaawansowanych użytkowników, aż czasami żal pośladki ściska, że jedynym przejawem czynności instalacji jest przyrost paska postępu... kopiowania pliku. Nie plików - pliku, jednego pliku. Zwykle nie ma znaczenia czy instalujemy prosty programik do wyświetlania obrazka czy zaawansowaną aplikację biurową. Na dostarczonym dysku lub na jego cyfrowym obrazie (najpopularniejsza forma dystrybucji na Maku) jest z zasady jeden plik czasami opatrzony opisem w dodatkowym dokumencie RTF lub PDF. Otwierając katalog główny takiego dysku lub obrazu naszym oczom ukazuje się estetyczna kolorowa kompozycja z dwoma podstawowymi ikonami. Pierwsza to ikona programu, druga to ikona folderu aplikacji. Pod spodem pojawia się zwykle sakramentalna fraza: „To install drag applictaion to your Applications folder”. Dla mniej kumatych czasami dorysowana jest strzałka wskazująca kierunek tej operacji, żeby broń Boże przez przypadek w drugą stronę tego „drag” nie zrobili.

Gdy przesiadając się z Windows trafiamy po raz pierwszy na taką sytuację, odruchowo szukamy folderu aplikacji (mamy do niego dostęp m.in. z górnego menu systemowego lub przez skrót klawiaturowy) i po jego otworzeniu kopiujemy do niego plik programu. Dopiero po chwili lub przez przypadek rozumiemy, że ikona folderu aplikacji obecna w katalogu dysku jest linkiem symbolicznym (aliasem) do jego oryginału na naszym dysku. Bez konieczności otwierania czegokolwiek i bez opuszczania katalogu dysku instalacyjnego możemy zainstalować program przeciągając go właśnie na tę ikonę, aplikacja i tak trafi na swoje miejsce.

Logicznie system plików MacOSX wbrew pozorom jest bardzo podobny do tego znanego z Windows. Co prawda jego struktura jest jak najbardziej unikso-podobna, linuksowcy poczują się jak w domu, ale struktura interesująca użytkownika ma cechy podobne do Windows. „My documents”, „Program files”, „My music”, itd., trochę inaczej nazwane ale z tym samym przeznaczeniem. W chwili instalacji systemu katalogi te są tworzone w katalogu użytkownika i w katalogu głównym, dlatego dostawcy programów mogą tak preparować swoje dyski instalacyjne - lokalizacja katalogu aplikacji jest stała i niezmienna, jest to zawsze „/Applications”. Co ciekawe nie ma znaczenia język interfejsu, może być nawet japoński i tak katalogi systemowe mają swoje niezmienne nazwy angielskie.

No tak, ale to jednak wygląda trochę za prosto. Może nie sam proces instalacji (to jest nawet fajne), ale ta cała magia, którą obserwujemy w Windows i Luksie gdzieś zniknęła, a przecież musi być! Przecież nie ma takich cudów, żeby duża aplikacja zmieściła się wraz z wszystkimi swoimi składnikami w jednym wykonywalnym pliku - programiści wiedzą co mam na myśli. No i racja, aż tak proste to nie jest...

Cała idea instalacji została przez twórców MacOSX sprowadzona do prostej czynności kopiowania. Żeby to osiągnąć, zastosowany został mechanizm pakietowy (Applictaion bundles). Każda aplikacja jest traktowana jako pakiet zawierający wszystkie jej składniki. W logice systemu plików taki pakiet jest po prostu kolejnym katalogiem, ale dla użytkownika przedstawia się jako plik z rozszerzeniem .app. Możemy go przeglądać, a nawet modyfikować jego zawartość o ile starczy nam do tego wiedzy i mamy taką potrzebę. Wewnątrz znajdziemy ikony interfejsu, pliki językowe, pliki konfiguracyjne itd. Jednak użytkownicy Linuksa lub *BSD nie powinni wprost odnosić tego mechanizmu do tych znanych z ich systemów. W przypadku MacOSX taki pakiet jest (z zasady) autonomiczną jednostką, bez zależności i potrzeby korzystania np. z bibliotek. Skutek jest taki, że jeżeli aplikacja korzysta np. z funkcji znanego z CLI exiftool, to narzędzie to znajdzie się w pakiecie razem z innymi składnikami. Niezależnie od jego obecności wśród całej masy innych uniksowych narzędzi obecnych na naszym dysku. Ten używany przez nas w shellu możemy sobie aktualizować, zmieniać itp., a ten dostarczony z aplikacją nadal będzie działał po staremu, ale tylko w aplikacji, z którą przywędrował. Taki myk, który chroni przed masą niepożądanych konsekwencji - Unix Uniksem, ale skuteczność musi być po naszej stronie. Czyli znowu... Apple way.

W tym przypadku należy się jednak ukłon dla Apple. Oferowany przez nich mechanizm instalacji aplikacji jest czysty, logiczny i niezawodny. Jest też bardzo bezpieczny, zainstalowane aplikacje nie wchodzą sobie w paradę. Praktycznie nie ma ryzyka, że zainstalowanie jakiegoś programu odbije się negatywnie na działaniu innego, już wcześniej zainstalowanego. Mało prawdopodobne jest także to, że przez przypadek usuniemy jakiś składnik niezbędny do działania programu. No i oczywiście nie ma przymusu instalowania w katalogu domyślnym, programy możemy umieszczać w dowolnym miejscu naszej przestrzeni na dyskach, ich lokalizacja nie ma żadnego znaczenia dla ich działania.

Jak można się domyślić, proces odinstalowania aplikacji jest równie „skomplikowany”. Przenosimy niechcianą aplikację do kosza i w sumie mamy sprawę z głowy. No prawie, bo po takim usunięciu zwykle pozostają w systemie drobne pozostałości. Większość aplikacji korzysta z własnych plików konfiguracyjnych (preferencji), które są tworzone przy pierwszym uruchomieniu. Przechowywane są w pewnych szczególnych miejscach, o których każdy szanujący się użytkownik powinien wiedzieć. Po usunięciu aplikacji powinniśmy zadbać o ręczne usunięcie także pozostałości. Oczywiście mało komu chce się o tym pamiętać więc można to zrzucić na jeden z programów ułatwiających skuteczne kasowanie niechcianych aplikacji. One to szybko i bezboleśnie usuną za nas nie tylko aplikację, ale i wszystkie „śmieci” jakie po niej zostaną.

To nie jedyne cechy specyficzne dla systemu Apple związane z działaniem aplikacji. W MAcOSX bardzo zgrabnie rozwiązane są też kwestie sterowania działaniem programów, ich konfiguracji i komunikacji ze światem zewnętrznym, ale o tym napiszę przy innej okazji. Opisany powyżej mechanizm instalacji dotyczy zdecydowanej większości programów, jednak zdarzają się czasami aplikacje bardziej wymagające. Wtedy będziemy mieli do czynienia z tradycyjnymi instalatorami, jakie znamy z Windows. No i wtedy magia powraca...

No tak, ale co z tym globusem?!

Dla chcących:

Applictaion bundle
PackageMaker How-To - http://s.sudre.free.fr/Stuff/PackageMaker_Howto.html
AppleInsider - http://www.appleinsider.com/
Apple Vintage Museum - http://www.d4.dion.ne.jp/~motohiko/index.htm (warto cierpliwie poczekać) 

Komentarze