R18-03.DOC

(324 KB) Pobierz
BCB 5 Developer's Guide - rozdzial 29

1

 

Rozdział 18.
Instalowanie i aktualizowanie oprogramowania

Simon Rutley-Frayne

J. Alan Brogan

Yoto Yotov

 

Instalacja i dezinstalacja oprogramowania

Pliki CAB i INF

Wersje, uaktualnienia i poprawki

System kontroli wersji TeamSource

Program InstallShield Express


Obecnie zajmiemy się narzędziami zapewniającymi możliwie bezkonfliktowe instalowanie i konserwację oprogramowania, mającymi zastosowanie zarówno dla aplikacji komercyjnych, jak i programów klasy shareware. Na techniczną stronę rozdziału złoży się omówienie programów Install Maker i Patch Maker firmy ClickTeam, formatów CAB i INF oraz dostarczanego w pakiecie C++Builder programu InstallShield Express. Zajmiemy się także kwestią konserwacji oprogramowania, powiemy kilka słów na temat tworzenia i rozpowszechniania uaktualnień i poprawek oraz przedstawimy wprowadzenie do systemu kontroli wersji TeamSource.

Instalacja i dezinstalacja oprogramowania

Skompilowanie i uruchomienie aplikacji nie jest bynajmniej ostatnim etapem jej tworzenia. Niezbędne jest udostępnienie użytkownikowi narzędzia pozwalającego zainstalować wszystkie elementy programu w systemie docelowym w sposób niekłopotliwy i zapewniający poprawną pracę aplikacji. Narzędziem takim jest program instalacyjny (instalator), umieszczający w komputerze użytkownika odpowiednie pliki i zmieniający ustawienia systemu. Program taki powinien oczywiście być łatwy w obsłudze, działać możliwie automatycznie i wymagać od użytkownika minimalnych kwalifikacji.

Na rynku oprogramowania dostępnych jest kilka narzędzi do tworzenia programów instalacyjnych, począwszy od prostych programików dostępnych za darmo, a skończywszy na zaawansowanych i kosztownych „kombajnach”. Więcej informacji na ich temat, łącznie z adresami witryn WWW producentów, zamieszczono na końcu tego podrozdziału.

Narzędzia do tworzenia programów instalacyjnych

Pod względem zasad obsługi narzędzia przeznaczone do tworzenia programów instalacyjnych są zbliżone do C++Buildera, chociaż korzystanie z ich funkcji jest znacznie prostsze. Budowa programu instalacyjnego sprowadza się na ogół do utworzenia skryptu sterującego instalacją, skompilowania go, dołączenia i skompresowania plików wchodzących w skład instalowanej aplikacji oraz zdefiniowania elementów interfejsu użytkownika. Wynikiem takiej procedury jest utworzenie pliku (lub kilku plików) przeznaczonego do bezpośredniej dystrybucji.

Jak to działa?

Tworzenie programu instalacyjnego sprowadza się w większości przypadków do wprowadzenia odpowiednich informacji (nazwy instalowanych plików, położenie katalogu docelowego, informacje wyświetlane podczas instalacji, treść licencji itd.) w oknach kreatora. Dane te zapisywane są w postaci skryptu, sterującego następnie kompilacją wszystkich elementów do postaci właściwego pliku instalacyjnego.

Program instalacyjny może mieć postać pojedynczego pliku lub kilku plików. W obu przypadkach efekt instalacji jest ten sam, jednak każde z rozwiązań ma swoje wady i zalety, o których powiemy teraz kilka słów.

Jeden czy kilka plików

pozwalam sobie połączyć kolejne podpunkty w całość – w oryginale drugi jest odwróceniem pierwszego (czyli jest nadmiarowy), a poza tym argumentacja podana przez autora jest nonsensowna – uszkodzenie jednego z kilku plików jest tak samo groźne, jak uszkodzenie jednego dużego pliku.

?

Podstawową zaletą umieszczenia programu instalacyjnego w pojedynczym pliku jest wygoda – plik taki łatwo jest umieścić np. na płycie CD-ROM. Z drugiej strony użycie tej metody utrudnia dystrybucję za pomocą dyskietek, gdyż rozmiary plików instalacyjnych często przekraczają 1,44 megabajta. Rozbicie programu instalacyjnego na kilka fragmentów niesie także ze sobą większe ryzyko zgubienia któregoś z nich, co zwykle uniemożliwia poprawne zainstalowanie całości programu. Z drugiej strony warto zauważyć, że uszkodzenie pojedynczego pliku może skutecznie uniemożliwić jakąkolwiek instalację (nawet częściową), podczas gdy korzystając z kilku plików, można próbować wyeliminować uszkodzony plik z procesu instalacji. Kilka mniejszych plików łatwiej też jest pobrać np. z Internetu.

Program Install Maker

Opracowany przez firmę ClickTeam program Install Maker jest dostępny w dwóch wersjach – komercyjnej (odpłatnej) oraz bezpłatnej (freeware), uzupełniającej tworzony plik instalacyjny o końcowe okno z reklamą producenta. Użytkownicy zainteresowani nabyciem wersji licencjonowanej znajdą niezbędne informacje pod adresem http://www.clickteam.com.

Tworzenie instalatora za pomocą narzędzia Install Maker

Program Install Maker

wg oryginału znajduje się on na płycie CD, ale nic takiego na niej nie ma (jest tylko PatchMaker). Na razie usuwam odpowiedni fragment z tłumaczenia (jeżeli wersja freeware zostanie zamieszczona w polskiej wersji, trzeba będzie o tym wspomnieć).

(w wersji freeware) można pobrać z witryny WWW firmy ClickTeam. Jest on idealnym narzędziem do tworzenia prostych programów instalacyjnych, nie wymagających manipulowania bardziej zaawansowanymi elementami systemu, jak sterowniki obsługujące dostęp do baz danych lub rejestr systemowy (w razie konieczności skorzystania z bardziej złożonych funkcji najlepiej użyć programu InstallShield). Install Maker wyróżnia się także dobrym współczynnikiem kompresji, dzięki czemu tworzone przezeń pliki są stosunkowo niewielkie.

Przyjrzyjmy się zatem, w jaki sposób można utworzyć program instalacyjny za pomocą narzędzia Install Maker. Kolejne etapy konstrukcji opiszemy poniżej.

1.       Okno powitalne

Pierwszym oknem wyświetlanym po zainstalowaniu i uruchomieniu programu Install Maker jest okno powitalne. Widoczne w dolnej części pole wyboru pozwala zrezygnować z usług kreatora i przejść bezpośrednio do głównego okna programu. Nowicjuszom zaleca się raczej pozostanie w trybie kreatora, który umożliwia łatwiejsze zapoznanie się z programem.

2.       Ustalenie katalogu źródłowego

wbrew oryginałowi, w tym kroku nie ustala się katalogu docelowego.

3.      

W kolejnym kroku należy określić położenie plików, które mają wejść w skład pakietu instalacyjnego. Najlepszą metodą jest umieszczenie wszystkich plików w jednym katalogu (ewentualnie w jego podkatalogach), np. MojaFirma\MojProgram. Install Maker odczytuje zawartość takiego katalogu podczas kompilacji (zaznaczenie pola wyboru Include sub-directories nakazuje przeszukanie także podkatalogów; opcja ta jest domyślnie włączona) i kompresuje ją do postaci jednego pliku wykonywalnego. Uruchomienie tak utworzonego programu rozpakuje wszystkie pliki do zadanego katalogu w komputerze docelowym.

4.       Ustalenie tytułu aplikacji i języka programu instalacyjnego

Kolejne okno kreatora pozwala na wybranie języka programu instalacyjnego (ClickTeam jest firmą francuską, dlatego też oprócz języka angielskiego mamy do wyboru także francuski). Drugim parametrem ustalanym w tym kroku jest „długa” nazwa instalowanego programu, która będzie wyświetlana podczas instalacji. Warto przy tej okazji zwrócić uwagę na przycisk Preview (podgląd), którego kliknięcie pozwala wyświetlić tworzone właśnie okno w postaci, w jakiej będzie je oglądał użytkownik.

5.       Definiowanie ustawień powłoki

Okno zatytułowane Shell (powłoka) pozwala wybrać plik, który będzie reprezentowany w postaci ikony i polecenia w menu Start|Programy, a także ustalić nazwę tego polecenia. Zaznaczenie pola wyboru Add desktop shortcut nakazuje umieszczenie ikony skrótu na pulpicie, co jednak nie jest zalecane, gdyż przyczynia się do jego zatłoczenia.

6.       Informacje dodatkowe

Kolejne okno umożliwia wpisanie tekstu informacyjnego, wyświetlanego w trakcie instalowania programu (np. umowa licencyjna, informacje o nowych elementach itp.). Tekstu nie da się co prawda odczytać z pliku, jednak w razie potrzeby można wkleić do okna zawartość schowka skopiowaną np. z okna Notatnika. Wklejony tekst należy także odpowiednio sformatować. Faktyczny wygląd okna można w każdej chwili obejrzeć, klikając przycisk Preview.

7.       Definiowanie ustawień ekranu i okna instalatora

W następnym etapie można zdecydować, czy program instalacyjny ma pracować jako zwykłe okno czy w trybie pełnoekranowym. Znajdujące się w dolnej części pole edycyjne pozwala wpisać nazwę, która w trybie pełnoekranowym będzie wyświetlana w lewym górnym rogu ekranu.

8.       Wybór obrazków

Kolejne okno kreatora pozwala wybrać obrazek wyświetlany w lewej części okna programu instalacyjnego oraz „tapetę” zastępującą standardowe gradientowe tło. Warto tu zachować wstrzemięźliwość, gdyż dołączenie każdego pliku do programu instalacyjnego powoduje wzrost jego rozmiarów. Nie jest to problemem, jeśli program ma zostać umieszczony na płycie CD-ROM, ale w przypadku dystrybucji internetowej lub z wykorzystaniem dyskietek należy zadbać, by rozmiary utworzonego pliku (lub plików) były jak najmniejsze – o ile oczywiście nie chcemy narażać się użytkownikom.

Mapa bitowa wyświetlana w lewej części poszczególnych okien instalatora musi być zapisana w postaci pliku BMP, mieć określone rozmiary (128 na 280 pikseli) i co najwyżej 256 kolorów. Wygląd okna po wybraniu odpowiedniego pliku można podejrzeć, klikając przycisk Preview. Druga mapa bitowa definiuje postać tła w przypadku pracy w trybie pełnoekranowym. Odpowiedni obrazek również musi pochodzić z pliku BMP i zawierać nie więcej niż 256 kolorów, jednak jego rozmiary mogą być dowolne, jest on bowiem układany sąsiadująco na całej powierzchni ekranu. Również i w tym przypadku pomocny okazuje się przycisk Preview.

9.       Ustalenie katalogu docelowego

Okno Installation directory umożliwia ustalenie domyślnej nazwy katalogu, w którym zostanie zainstalowana aplikacja, np. C:\Program Files\FirmaKogucik\Kadry1.0. Kliknięcie przycisku Dalej pozwala użytkownikowi zaakceptować wartość domyślną, zwalniając go z konieczności ustalania docelowego katalogu aplikacji (oczywiście w razie potrzeby zawsze można to zrobić). Warto pamiętać, że chociaż domyślna lokalizacja katalogu docelowego może być dowolna, użycie dysku innego niż C: jest nieco ryzykowne (dysk ten jest obecny w praktycznie każdym systemie).

W razie potrzeby można też nakazać instalatorowi odczytanie nazwy katalogu docelowego z rejestru lub pliku INI.

10.    Zakończenie instalacji

Kolejne okno kreatora umożliwia określenie nazwy pliku, zawierającego istotne informacje (zwykle Czytaj lub Readme) lub np. umowę licencyjną. Zawartość pliku jest wyświetlana w oknie Notatnika po kliknięciu przycisku View…. Drugie z dostępnych na ekranie pól edycyjnych umożliwia podanie nazwy programu uruchamianego po zakończeniu instalacji (zwykle jest to plik wykonywalny instalowanej aplikacji)[1].

11.    Opcja dezinstalacji

Okno wyświetlane w kolejnym kroku zawiera tylko jedną opcję, której wybranie nakazuje kreatorowi utworzenie programu dezinstalującego (ang. uninstall). Pole wyboru opcji jest domyślnie zaznaczone; stanu tego najlepiej nie zmieniać, gdyż pozbawiłoby to użytkownika możliwości łatwego usunięcia aplikacji z komputera.

Zaznaczenie pola wyboru Uninstall program powoduje utworzenie przez program instalacyjny małego pliku wykonywalnego, którego uruchomienie automatycznie usuwa całą zainstalowaną aplikację. Program dezinstalujący można uruchomić bezpośrednio (tj. przez kliknięcie jego ikony) lub pośrednio, za pomocą apletu Dodaj/Usuń programy w Panelu sterowania.

12.    Okno końcowe

Ostatnie z okien wyświetlanych przez kreatora również zawiera tylko jedną opcję, pozwalającą wyłączyć kompilację pliku wynikowego instalatora. Jeśli informacje wprowadzone w poprzednich krokach są poprawne, kliknięcie przycisku Dalej spowoduje utworzenie pliku programu instalacyjnego. W razie wątpliwości zawsze można cofnąć się do poprzednich kroków, klikając przycisk Wstecz.

13.    Kompilacja pliku wynikowego instalatora

Kliknięcie przycisku Dalej bez zaznaczania pola wyboru Do not build the Install program powoduje wyświetlenie okna zapisania pliku, umożliwiającego ustalenie nazwy i lokalizacji tworzonego programu instalacyjnego. Nie ma w tej kwestii żadnych ograniczeń, jednak należy pamiętać, by nie umieszczać tworzonego pliku w katalogu zawierającym pliki źródłowe aplikacji – podczas ponownych kompilacji powodowałoby to dołączanie pliku wykonywalnego instalatora do nowo tworzonych wersji.

Po utworzeniu pliku instalatora warto zapisać całość projektu (łącznie ze skryptem, zapisywanym w pliku o rozszerzeniu .iit), co pozwoli na łatwe wprowadzanie poprawek i uaktualnień w przyszłości.

Do sprawdzenia działania nowo utworzonego programu najlepiej posłużyć się tą samą metodą, którą zastosuje jego odbiorca, czyli uruchomić go z poziomu Eksploratora Windows. Po zakończeniu testowania instalatora w systemie źródłowym należy zawsze sprawdzić jego działanie na innym komputerze i upewnić się, że zainstalowana w ten sposób aplikacja będzie zachowywała się poprawnie. W razie niepowodzenia wystarczy zmienić ustawienia skryptu i wykonać kolejny przebieg kompilacji i testowania, pamiętając o uprzednim odinstalowaniu poprzedniej wersji.

14.    Tworzenie dodatkowych skrótów w menu Start

Program instalacyjny zdefiniowany za pomocą kreatora można wzbogacić o funkcję tworzenia dodatkowych skrótów w menu Start (oddzielną pozycję menu można np. utworzyć dla głównego pliku pomocy aplikacji lub dokumentu Czytaj). Aby to uczynić, należy kliknąć zakładkę Files w głównym oknie programu Install Maker i wybrać z listy plik, który ma zostać udostępniony w menu. W prawej części okna, w polu File Options, znajduje się karta Start menu, zawierająca pola edycyjne Folder i Name. Zawartość pierwszego z nich określa nazwę podmenu zawierającego dany skrót, zaś drugiego – nazwę skrótu (polecenia) w podmenu.

Uwaga
Dodatkowe skróty najlepiej jest umieszczać w tym samym podmenu, co „główny” skrót do programu – odpowiednią nazwę podmenu należy wpisać w polu Folder.

Dezinstalacja programu

Ponieważ nasza aplikacja może z różnych przyczyn nie znaleźć aprobaty użytkownika, wypadałoby umożliwić mu łatwe, bezkonfliktowe i skuteczne usunięcie zainstalowanych plików (i innych elementów programu) z komputera. Większość narzędzi tworzących programy instalacyjne, w tym Install Maker, automatycznie dołącza odpowiednie składniki do tworzonego programu, co zwalnia nas z zajmowania się szczegółami procesu dezinstalacji.

Powszechnie wiadomo, że wiele aplikacji nie potrafi odinstalować się całkowicie, dlatego też programy „sprzątające”, jak np. CleanSweep, wciąż cieszą się popularnością. Nie zmienia to faktu, iż tworząc program dezinstalatora należy w miarę możliwości zadbać, by aplikacja usuwana z systemu użytkownika nie pozostawiła po sobie „bezpańskich” plików czy wpisów w rejestrze. Oczywistą metodą sprawdzenia skuteczności dezinstalacji jest sporządzenie spisu wszystkich składników instalowanych w systemie docelowym, zainstalowanie aplikacji, a następnie jej odinstalowanie i sprawdzenie, czy wszystkie elementy zostały prawidłowo usunięte. Jakiekolwiek pozostałości powinny wynikać co najwyżej z dodania przez użytkownika własnych plików i katalogów (zakładając, że procedura dezinstalacji została wykonana i działa poprawnie). Automatyczne usunięcie wszystkich plików jest praktycznie niemożliwe, bowiem program odinstalowujący „wie” tylko o komponentach (plikach, wpisach do rejestru itp.) dodanych do systemu w czasie instalowania, nie śledzi natomiast elementów utworzonych przez użytkownika w trakcie korzystania z aplikacji, a zatem nie może ich usunąć. Efekt ten jest dość pospolity i przejawia się na ogół w wyświetleniu przez dezinstalator komunikatu o niemożności usunięcia niektórych plików (komunikat Some elements could not be removed). Przyczyną takiego stanu jest obecność w katalogu macierzystym aplikacji dodatkowych plików, utworzonych poza kontrolą programu instalacyjnego (np. w wyniku działania samej aplikacji). Może się także okazać, że któryś z zainstalowanych elementów powinien pozostać w systemie nawet po usunięciu aplikacji, do której należy. Ma to miejsce głównie dla bibliotek dynamicznych, które mogą okazać się niezbędne do poprawnej pracy systemu. W takiej sytuacji dezinstalator prosi zwykle użytkownika o potwierdzenie zamiaru usunięcia pliku.

Install Maker nie jest jedynym dostępnym narzędziem do tworzenia programów instalacyjnych. Adresy witryn internetowych kilku konkurencyjnych produktów podano poniżej.

Setup Factory – http://www.indigorose.com/

Inno Setup – http://www.jordanr.dhs.org/

Soysal Setup – http://www.soysal.com/ssetup

Wise Setup – http://www.wisesolutions.com/imakfeat.htm

Pliki CAB i INF

Pliki typu CAB oraz INF (plik informacji instalacyjnych, ang. information file) są popularnymi i efektywnymi narzędziami dystrybucji oprogramowania oraz aplikacji internetowych. Ich ścisła integracja z mechanizmami przeglądarki Microsoft Internet Explorer umożliwia automatyzację procesów instalacji i kontroli wersji. Kilka kolejnych stron poświęcimy zatem tworzeniu plików CAB i INF.

Pliki CAB

Nikogo nie trzeba przekonywać, że im mniejszy rozmiar pliku, tym łatwiej jest go przechowywać i przesyłać. Remedium na przerośnięte pliki jest kompresja danych, polegająca z grubsza na wykrywaniu pewnych regularności w sekwencjach bitów tworzących zawartość pliku i zastępowaniu takich wzorców odpowiednimi kodami, zajmującymi znacznie mniej miejsca. Kompresję wykorzystuje również opracowany przez firmę Microsoft format CAB (tzw. plik szafki, ang. cabinet file), oparty na popularnym algorytmie Lempela-Ziva. W formacie CAB rozpowszechniany jest m.in. pakiet Microsoft Office, a także sam system Windows (zobacz rysunek 18.1).

Rysunek 18.1. Pliki CAB zawierające system Microsoft Windows

W tym miejscu należałoby zadać sobie pytanie, czy i dlaczego warto używać akurat formatu CAB. Oprócz skrócenia czasu przesyłania plików (co jest oczywistym celem stosowania kompresji), użycie plików CAB jest obecnie najłatwiejszą metodą dystrybucji w Internecie komponentów ActiveX i klas Javy. Programiści mają także do dyspozycji opracowany przez Microsoft pakiet Cabinet SDK, czyli komplet narzędzi programowych obsługujących format CAB.

Uwaga
Jeden z elementów pakietu Cabinet SDK, program CABARC, wchodzi również w skład systemu C++Builder. O pozostałe narzędzia należy niestety postarać się samemu, pobierając je np. ze strony położonej pod adresem http://msdn.microsoft.com/workshop/management/cab/cabdl.asp.

Tworzenie i rozpakowywanie plików CAB

W skład pakietu Cabinet SDK wchodzą trzy programy narzędziowe, umieszczane w podkatalogu CabSDK\Bin:

·         EXTRACT.EXE – prosty program do rozpakowywania archiwów CAB;

·         CABARC.EXE – prosty program do tworzenia, rozpakowywania i przeglądania archiwów;

·         MAKECAB.EXE – zaawansowane narzędzie programowe, umożliwiające tworzenie, konfigurowanie, rozpakowywanie, przeglądanie i zarządzanie plikami CAB w trybie wsadowym.

Jak widać, wachlarz możliwości jest dość szeroki, jednak tutaj ograniczymy się do programu CABARC, zapewniającego wystarczający na nasze potrzeby zestaw funkcji (poza tym tylko on dostarczany jest standardowo w pakiecie C++Builder).

Wykaz dostępnych funkcji najprościej uzyskać poprzez wydanie w oknie DOS-u polecenia CABARC. Wywołanie programu ma ogólną postać

CABARC [opcje] polecenie plik-CAB [@lista] [pliki] [katalog]

zaś jego parametry zestawiono w tabeli 18.1.

Tabela 18.1. Parametry wywołania programu CABARC

w oryginale jest zrzut ekranu, którego cytowanie nie ma sensu – każdy może sobie go obejrzeć, a poza tym byłyby kłopoty z tłumaczeniem. Zastępuję zrzut tabelą opisującą polecenia i opcje programu (uwaga – tabela jest podzielona na dwie części). UWAGA: pozostałe tabele przenumerowuję o jeden w górę, pozostałe wydruki przenumerowuję o jeden w dół.

Polecenie

Znaczenie

Przykład

l

Wyświetlenie zawartości pliku CAB

cabarc l test.cab

n

Utworzenie nowego pliku CAB

cabarc n test.cab *.c app.mak *.h

x

Rozpakowanie (odtworzenie plików) pliku CAB

cabarc x test.cab prog*.c

Opcja

...
Zgłoś jeśli naruszono regulamin