Główna >>

RSS
Nie idźmy na tę wojnę! To nie nasza wojna!

 

Tak się pisze instalatory!

2011-04-10   kategorie: praca

Poproszono mnie ostatnio o pomoc w zainstalowaniu drukarki HP Photosmart K510 pod Ubuntu - system niestety nie zawierał sterowników do tej drukarki i choć po podłączeniu prawidłowo rozpoznawał jej typ, nie był w stanie jej zainstalować.

Na stronie HP znalazłem informację, że do obsługi tej drukarki niezbędna jest co najmniej wersja 3.11.1 sterownika HPLIP - tymczasem system Ubuntu 10.04 zawiera domyślnie wersję 3.10.2 i nowszej w repozytoriach nie ma.

Wspomniana strona oferuje jednak możliwość ściągnięcia najnowszej wersji. Ściągnąłem ją zatem i przystąpiłem do instalacji. Widząc ponad 20-megabajtowy plik wykonywalny pomyślałem, że pewnie oto znowu mam do czynienia z linuksowym instalatorem napisanym na modłę windowsową (czyli robiącym coś w systemie po swojemu, kompletnie ignorując standardowe mechanizmy systemowe) - widziałem już takie wcześniej w kilku komercyjnych programach dla Linuksa... Spodziewałem się, że w najlepszym wypadku po wykonaniu instalacji będę miał w systemie dwie wersje sterownika i starą trzeba będzie ręcznie usunąć; w najgorszym wypadku, w bazie zainstalowanych pakietów będzie widoczna stara wersja, ale pliki de facto będą pochodzić z nowszej - to oczywiście stworzyłoby dość spore problemy przy ewentualnych aktualizacjach...

Początek rzeczywiście wyglądał typowo "windowsowo". Samorozpakowujący plik rozpakował pliki instalacyjne do tymczasowego katalogu i zadał pytanie, czy chcę wykonać instalację automatyczną, czy też z wyborem opcji przez użytkownika. Jednak już następne pytanie (wybrałem opcję instalacji automatycznej) było co najmniej nietypowe. Instalator zapytał, czy używana przeze mnie dystrybucja Linuksa to na pewno "Ubuntu 10.04", a po uzyskaniu potwierdzenia poprosił o włączenie w konfiguracji systemowego menedżera pakietów repozytoriów universe i multiverse. Ponieważ były one już wcześniej włączone przy instalacji innego oprogramowania, kazałem mu iść dalej.

Program zapytał o hasło użytkownika dla sudo (!) - bardzo słusznie, jako że przecież w Ubuntu wszystkie czynności administracyjne trzeba wykonywać za pośrednictwem tej komendy; nie można bezpośrednio zalogować się na roota. No, już mi się to zaczęło podobać. Następnie systemowym apt-getem zainstalował ze wspomnianych repozytoriów szereg bibliotek wymaganych przez nowy sterownik (i to w wersji "devel", czyli zawierającej także pliki nagłówkowe niezbędne do kompilacji programów korzystających z danej biblioteki - dlaczego, to się okazało za chwilę). Tymże samym apt-getem usunął zainstalowane dotychczas w systemie pakiety HPLIP - w sumie oprogramowanie to jest rozdzielone chyba na pięć czy sześć paczek, wszystkie zostały usunięte. Taka dbałość o "czystość" środowiska systemowego jeszcze bardziej mi się spodobała... I wreszcie, program instalacyjny zaczął kompilować ze źródeł (!) kod sterownika - tak, dobrze przeczytaliście. W ściągniętym z HP pliku instalacyjnym zawarty jest kod źródłowy sterownika, który podczas instalacji jest kompilowany standardową "świętą trójcą" configure; make; make install. Po tym wszystkim na koniec instalator uruchomił standardowe systemowe okienko dodawania drukarki, które okazało się zresztą niepotrzebne, bo po zainstalowaniu sterownika system sam w tle wykrył drukarkę i dodał ją sobie do konfiguracji.

Czy można zrobić instalator bardziej respektujący standardowe mechanizmy systemowe i korzystający z nich w większym stopniu? No chyba tylko wtedy (to już byłaby sytuacja idealna), gdyby "make install" zrobiło ze skompilowanego kodu paczkę .deb i zainstalowało ją przez dpkg, zamiast bezpośrednio kopiować pliki (w tej chwili zainstalowanego sterownika nie widać w systemowym menedżerze pakietów, więc nie da sie go łatwo odinstalować - ale ma to także zaletę: skoro go nie widać, nie będą pobierane dla niego żadne aktualizacje, które mogłyby pomyłkowo nadpisać zainstalowaną wersję). Ale i tak jakość wykonania tego instalatora przewyższa o kilka klas wszystkie "wolnostojące" instalatory - czy to dla Linuksa, czy dla Windows - jakie zdarzyło mi się widzieć. Moje uznanie. I pomyśleć, że ta sama firma HP do tej samej drukarki pod Windowsy dostarcza płytkę instalującą masę niepotrzebnego badziewia, w zupełnie oczywiście "pozasystemowy" sposób...

komentarze (2) >>>