12.04.2014 Views

aktualności

aktualności

aktualności

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Marzec 2004<br />

Gusta i guściki<br />

Mówi się, że o gustach się nie<br />

dyskutuje. Nic jednak nie ożywia<br />

tak dyskusji, jak kwestia upodobań.<br />

Ta dystrybucja jest lepsza od<br />

tamtej, to środowisko graficzne jest<br />

wygodniejsze od tego, a ten program<br />

jest szybszy od owego. Nikt<br />

nie jest jednak w stanie „dogodzić”<br />

wszystkim. Gdy nie pasuje nam dana<br />

dystrybucja Linuksa, możemy zrobić własną. Jako bazę<br />

warto wybrać jedno z popularnych gotowych rozwiązań<br />

(Debian, Slackware, Mandrake, Knoppix) albo stworzyć<br />

wszystko od podstaw (LFS – Linux From Scratch).<br />

Wystarczy, że poświęcimy trochę czasu, aby móc wkrótce<br />

nazwać swoje dzieło zupełnie inaczej, np. Bebian.<br />

W tej atmosferze chciałbym zachęcić do zapoznania się<br />

z artykułem Witolda Kierasia o modyfikowaniu Knoppiksa<br />

– każdy może mieć własnego Knoppiksa, np.<br />

specjalnie przygotowanego do wykorzystania w kafejce<br />

internetowej.<br />

Linux+ od tego numeru będzie pojawiać się w dwóch<br />

wersjach: z dwoma płytami CD i z dwoma płytami DVD.<br />

Wybór jest kwestią gustu, ale mamy nadzieję, że bardziej<br />

spodoba się Wam to drugie rozwiązanie.<br />

Zapraszam do lektury marcowego Linux+ i do odwiedzania<br />

naszych nowych stron internetowych (http://www.<br />

lpmagazine.org/ ).<br />

Krzysztof Krawczyk<br />

Redaktor Naczelny Linux+<br />

4<br />

Opis zawartości płyt CD/DVD<br />

Piotr Truszkowski<br />

Aktualności<br />

10<br />

11<br />

12<br />

14<br />

15<br />

16<br />

18<br />

20<br />

Newsy<br />

Krzysztof Krawczyk<br />

Jądro Linux<br />

Maja Królikowska<br />

Debian<br />

Grzegorz Prokopski<br />

Mandrake<br />

Daniel Koć<br />

Aurox<br />

Robert Główczyński<br />

GNOME<br />

Zbigniew Chyla<br />

KDE<br />

Paweł Biliński<br />

LinuxFresh<br />

Piotr Truszkowski<br />

Miesięcznik Linux+ (12 numerów w roku) jest wydawany przez Software-Wydawnictwo Sp. z o. o.<br />

Redaktor naczelny: Krzysztof Krawczyk, krzysiek@linux.com.pl<br />

Asystent redaktora: Piotr Truszkowski, piotrt@linux.com.pl<br />

Producent: Marta Kurpiewska, marta@software.com.pl<br />

Opracowanie CD: Krzysztof Krawczyk, Piotr Truszkowski<br />

Dział reklamy: Tomasz Dalecki, reklama@software.com.pl, tel.: (22) 860 18 79<br />

Prenumerata: Marzena Dmowska, pren@software.com.pl, tel.: (22) 860 17 67<br />

Projekt graficzny okładki: Agnieszka Marchocka, agnes@software.com.pl<br />

Projekt graficzny pisma: Marzena Turek-Gaś, marzenat@software.com.pl<br />

Skład: Sławomir Zadrożny, slawekz@software.com.pl<br />

Adres korespondencyjny:<br />

Software-Wydawnictwo Sp. z o. o., 00-190 Warszawa, ul. Lewartowskiego 6<br />

e-mail: redakcja@linux.com.pl, tel. (22) 860 18 18<br />

Redakcja dokłada wszelkich starań, aby publikowane w piśmie i na towarzyszących mu nośnikach informacje i programy były poprawne,<br />

jednakże nie bierze odpowiedzialności za efekty wykorzystania ich; nie gwarantuje także poprawnego działania programów shareware,<br />

freeware i public domain. Uszkodzone podczas wysyłki płyty wymienia dział prenumeraty.<br />

Wszystkie znaki firmowe zawarte w piśmie są własnością odpowiednich firm i zostały użyte wyłącznie w celach informacyjnych.<br />

Redakcja używa systemu automatycznego składu<br />

Druk: Stella Maris<br />

Płyty CD dołączone do magazynu przetestowano programem AntiVirenKit firmy G DATA Software Sp. z o.o.<br />

Sprzedaż aktualnych lub archiwalnych numerów pisma po innej cenie niż wydrukowana na okładce – bez zgody wydawcy<br />

– jest działaniem na jego szkodę i skutkuje odpowiedzialnością sądową.<br />

2<br />

marzec 2004


Temat miesiąca<br />

Dystrybucje Linuksa<br />

22<br />

30<br />

Własny Knoppix<br />

Witold Kieraś<br />

Knoppix jest bardzo popularną dystrybucją Linuksa,<br />

którą można uruchomić bezpośrednio z płyty CD.<br />

Powstało wiele różnych odmian tego systemu, przeznaczonych<br />

do konkretnych zastosowań, preferujących inny<br />

dobór oprogramowania (Quantian, Linux-EduCD, Cluster-Knoopix).<br />

W artykule znajdziecie dokładny opis<br />

przygotowywania własnej wersji tego systemu.<br />

Instalacja i konfiguracja SuSE Linux 9.0<br />

Piotr Truszkowski<br />

Grafika<br />

34<br />

42<br />

Dystrybucja Linuksa firmy SuSE, chociaż jest bardzo ciekawym<br />

produktem, raczej nie jest popularna w Polsce,<br />

chociażby dlatego, że nie są publicznie dostępne obrazy<br />

ISO tego systemu. Ta sytuacja ma szansę zmienić się,<br />

gdyż w edycji DVD naszego pisma zamieszczamy wersję<br />

9.0 SuSE Linuksa. W artykule znajdziecie dokładny opis<br />

instalacji i konfiguracji tego systemu.<br />

GIMP 2.0<br />

Kamila Folta<br />

Od wydania pierwszej wersji GIMP-a ze stabilnej gałęzi<br />

1.2.x minęły już ponad trzy lata. Z niecierpliwością oczekujemy<br />

nowej edycji tego słynnego programu do obróbki<br />

grafiki, tym razem opartego na bibliotece GTK+ 2.x.<br />

W artykule znajdziecie wyszczególnienie cech, które<br />

będzie można znaleźć w finalnej wersji – zmiany w wersjach<br />

pre obejmują już wyłącznie eliminowanie błędów.<br />

Photoshop na Linuksie<br />

Piotr Truszkowski<br />

Wiele osób uważa, że Photoshop firmy Adobe jest najlepszym<br />

programem do tworzenia i edycji grafiki. Niestety,<br />

nie istnieje jego wersja linuksowa. Ten problem można<br />

obejść korzystając z narzędzia o nazwie Wine. W artykule<br />

znajdziecie instrukcję, jak sprawić, aby udało się uruchomić<br />

Photoshopa 7 na Linuksie.<br />

Linux w biznesie<br />

44<br />

Płatnik 5 na Linuksie<br />

Krzysztof Krawczyk<br />

W Polsce, gdy chcemy uregulować nasze zobowiązania<br />

względem ZUS-u, jesteśmy „skazani” na program Płatnik,<br />

przeznaczony wyłącznie na systemy firmy Microsoft.<br />

Powstaje co prawda Janosik, wolny odpowiednik tego<br />

narzędzia, ale nie jest on jeszcze ukończony ani zatwierdzony<br />

przez odpowiednie organa. Rozwiązaniem jest<br />

uruchomienie Płatnika korzystając z Wine.<br />

46<br />

Sprzęt<br />

53<br />

Dla początkujących<br />

Analiza logów systemowych<br />

Piotr Machej<br />

W każdym systemie linuksowym zachodzi bardzo wiele<br />

zdarzeń. O większości z nich nie zdajemy sobie sprawy.<br />

Te najważniejsze zapisywane są w tzw. dziennikach<br />

zdarzeń (logach). Zadaniem każdego administratora<br />

systemu jest przeglądanie takich plików. Czytając ten<br />

artykuł, zapoznacie się z zagadnieniem analizy logów<br />

systemowych przy użyciu kilku gotowych narzędzi (Red<br />

Hat LogViewer, Webmin, LogWatch).<br />

Zabawy z flashdyskiem USB<br />

Piotr Wolny<br />

Małe urządzenia pamięci masowej, podłączane do portu<br />

USB (tzw. flashdyski), stają się z dnia na dzień coraz<br />

popularniejsze. Także pod Linuksem można z nich skorzystać<br />

i to bez większych trudności. Jednym z ciekawszych<br />

zastosowań flashdysków jest uruchamianie z nich<br />

specjalnych wersji Linuksa. Artykuł zawiera opis podłączenia<br />

i wykorzystania flashdysków USB w środowisku<br />

linuksowym.<br />

Dla programistów<br />

58<br />

CVS – system zarządzania wersjami<br />

Piotr Machej<br />

Każdy programista, wcześniej czy później, zaczyna<br />

korzystać z jakiegoś systemu zarządzania wersjami. Najbardziej<br />

znanym narzędziem do takiej pracy grupowej<br />

jest CVS. Chociaż zasadniczo jest to narzędzie tekstowe,<br />

to posiada wygodną nakładkę graficzną Gcvs. Z artykułu<br />

dowiecie się, jak korzystać z CVS, jak założyć własny<br />

serwer lokalny, a także serwer dostępny przez Sieć.<br />

Dla graczy<br />

66<br />

Racer<br />

Krzysztof Wolski<br />

Wyścigi samochodowe są takim rodzajem rozrywki,<br />

który przede wszystkim wciąga mężczyzn. Nic nie podnosi<br />

tak adrenaliny, jak chęć bycia tym pierwszym na<br />

mecie. Warkot silników maszyn, delikatne drżenie karoserii,<br />

sygnał startu, a potem gładkie wchodzenie w zakręty,<br />

przyspieszanie na prostej i nerwowe oglądanie się<br />

w tylne lusterko. Gra Racer może zapewnić takie emocje<br />

– szczegóły w artykule.<br />

www.linux.com.pl<br />

3


opis CD<br />

płyta A<br />

GIMP 2.0 pre3<br />

Nowa wersja najpopularniejszego<br />

i najlepszego programu do obróbki<br />

grafiki rastrowej dla Linuksa. Nowy<br />

interfejs, funkcje, zwiększona szybkość<br />

pracy i dużo poprawek w stosunku do<br />

wersji 1.2.x czynią z nowego GIMP-a<br />

pozycję ze wszech miar godną uwagi.<br />

http://www.gimp.org/<br />

Racer 0.5.0<br />

Jeśli na Linuksie brakuje Ci gier<br />

w stylu „Need for Speed”, zainteresuj<br />

się Racerem. Czeka na Ciebie<br />

rewelacyjna grafika, duża dynamika<br />

gry i dreszczyk emocji, który przeżywa<br />

każdy mężczyzna widzący siebie za<br />

sterami nowego, lśniącego Ferrari F50.<br />

Dodatkowo kilka tras i samochodów,<br />

a dla dystrybucji opartych o pakiety<br />

RPM pakiet binarny z grą.<br />

http://www.racer.nl/<br />

Wine<br />

Najnowsza wersja API Win32 dla Linuksa.<br />

Dzięki Wine masz szansę uruchomić<br />

potrzebne Ci aplikacje z Windows na<br />

swoim Linuksie. W obecnym numerze<br />

Linux+ znajdziesz artykuły na temat<br />

uruchomienia pod Linuksem Adobe<br />

Photoshopa i Płatnika 5.<br />

http://www.winehq.org/<br />

Blassic 0.8.1<br />

Programowanie w Basicu.<br />

http://www.arrakis.es/~ninsesabe/blassic/<br />

Connect Five 1.0.2<br />

Klon klasycznej gry w kółko i krzyżyk<br />

w grafice 3D. Różnica polega na tym, iż<br />

gramy na dużej planszy 19x19 pól.<br />

http://sourceforge.net/projects/connectfive/<br />

W obronie wolności<br />

Przez nasze niedopatrzenie wymieniona<br />

książka nie znalazła się na płytce<br />

dołączonej do poprzedniego numeru<br />

Linux+. Przepraszamy naszych<br />

czytelników i obiecaną książkę w formie<br />

elektronicznej zamieszczamy w tym<br />

miesiącu.<br />

http://www.helion.pl/<br />

Analizatory<br />

Analizatory logów systemowych<br />

opisywane w tym numerze Linux+.<br />

Wśród nich: Admlogger, Fwanalog,<br />

Fwreport, Loganalisys, Logwatch, Swatch,<br />

Firewalllogd, Fwlogwatch, Glogwatch,<br />

Logtool, Multitail, Webalizer.<br />

CVS 1.11, GCVS 1.0<br />

System kontroli wersji CVS został<br />

szczegółowo omówiony w tym numerze<br />

Linux+. Program GCVS jest ciekawą<br />

nakładka graficzną, która z pewnością<br />

uczyni pracę z CVS przyjemniejszą.<br />

http://www.cvshome.org/<br />

http://cvsgui.sourceforge.net/<br />

Linux+ Live GfxPak<br />

Linux+ Live GfxPak to specjalna<br />

wersja systemu Linux uruchamiana<br />

z płytki CD i nie wymagająca<br />

instalacji na dysku twardym. Linux+<br />

Live GfxPak ma na celu prezentację<br />

programów z artykułów obecnych<br />

w tym numerze Linux+. Będziecie<br />

mieli okazję wypróbować następujące<br />

aplikacje:<br />

• KDE 3.2.0 – najnowsza wersja<br />

graficznego środowiska pracy<br />

KDE wraz z wieloma aplikacjami<br />

wchodzącymi w jego skład;<br />

• GIMP 2.0 pre3 – najlepszy program<br />

do grafiki rastrowej dostępny<br />

dla Linuksa (ogromna<br />

ilość zmian wprowadzona od<br />

czasu wydania ostatniej wersji<br />

z serii 1.2.x powoduje, że na nowym<br />

GIMP-ie pracuje się znacznie<br />

lepiej, wygodniej i bardziej wydajnie;<br />

poznaj jego nowe możliwości<br />

bez potrzeby instalacji);<br />

18 pingwinów<br />

Proponujemy Wam zapoznanie się<br />

z małymi dystrybucjami Linuksa,<br />

często przeznaczonymi do konkretnych<br />

zastosowań. Aby postawić serwer<br />

działający w formie rutera w sieci<br />

osiedlowej, nie potrzeba instalować<br />

dużych dystrybucji Linuksa. Często<br />

w zupełności wystarczy system,<br />

który mieści się na zwykłej dyskietce<br />

1.44MB. Niemożliwe? Przekonajcie<br />

się sami. Na płytce znajdziecie:<br />

• 1diskx,<br />

• BrutalWare,<br />

• Freesco,<br />

• Monkey Linux,<br />

• PocketLinux,<br />

• Smalllinux,<br />

• Alfalinu,<br />

• Flonix,<br />

• Hal9,<br />

• Mulinux,<br />

• Rolinux,<br />

• Tomsrtbt,<br />

KDE 3.2.0 w Linux+ Live<br />

• Logwatch – śledzenie logów systemowych;<br />

• CVS – system kontroli wersji;<br />

• GCVS – graficzne zarządzanie repozytorium<br />

CVS;<br />

• Wine – implementacja API systemu<br />

Windows, która umożliwia<br />

uruchamianie aplikacji przeznaczonych<br />

dla tego systemu, np.<br />

Adobe Photoshopa, programu do<br />

obróbki grafiki.<br />

Dobrej zabawy!<br />

Konfiguracja Trinuksa<br />

• BasicLinux,<br />

• Floppix,<br />

• L4Windows,<br />

• Pkmini,<br />

• Router Linux,<br />

• Tty Linux.<br />

Zobaczcie, jak wiele potrafią poszczególne<br />

dystrybucje. Szczególnie<br />

interesującą pozycją wydaje się być<br />

MuLinux, dystrybucja mieszcząca się<br />

na jednej dyskietce i wyposażona<br />

w całkiem przyjemny interfejs graficzny.<br />

4<br />

marzec 2004


płyta B<br />

opis CD<br />

Mandrake Move<br />

Dystrybucja Mandrake Linux cieszy się ogromnym<br />

powodzeniem wśród początkujących użytkowników<br />

Linuksa. Kwestią czasu było pojawienie się jej wersji<br />

LiveCD. Co ma nam do zaoferowania Mandrake Move? Jak<br />

się okazuje po bliższym kontakcie, całkiem dużo. Otrzymujemy<br />

system, który pozwala na sprawną pracę nawet<br />

tym użytkownikom, którzy nie mieli wcześniej kontaktu<br />

z systemem Linux. Duża szybkość działania, pokaźna liczba<br />

dołączonych aplikacji, staranne opracowanie graficzne<br />

i prostota obsługi czynią z Mandrake Move bardzo interesującą<br />

pozycję dla początkujących adeptów poznawania<br />

Linuksa. Jak jednak powszechnie wiadomo, nie ma produktów<br />

doskonałych i tą regułę potwierdza także obecna<br />

edycja Mandrake Move. Największą niedogodnością jest<br />

długi czas ładowania systemu. Drugim mankamentem<br />

jest zbiór niezbyt nowych wersji aplikacji. Mandrake<br />

Move opiera się na KDE w wersji 3.1.3, co trochę dziwi<br />

w momencie ukazania się wersji 3.2.0 i poprzedzających<br />

ją wersji 3.1.4 i 3.1.5. Na tym jednak wady kończą się i zaczyna<br />

się czysta przyjemność korzystania z rozwiązania<br />

sprawdzonego, o długiej tradycji i dużym uznaniu wśród<br />

użytkowników. Na Mandrake Move składają się m.in.:<br />

• środowisko graficzne KDE 3.1.3;<br />

• klient poczty elektronicznej KMail;<br />

• przeglądarka WWW Konqueror;<br />

• klient FTP KBear;<br />

• komunikator Gaim;<br />

• rozrywka: Frozen Bubble, LBreakout2, Tux Racer;<br />

• pakiet biurowy: OpenOffice.org 1.1;<br />

• multimedia: Acrobat Reader, RealPlayer, Flash, Java,<br />

XMMS.<br />

Mandrake Move dostępny jest także w Sklepie Mandrake.<br />

Do pudełka z systemem dołączany jest flashdysk, na<br />

którym możemy zachowywać swoje dane i ustawienia<br />

systemowe.<br />

Rysunek 2. OpenOffice.org w Mandrake Move<br />

Mandrake Move można z czystym sumieniem polecić<br />

wszystkim tym, którzy chcą poznać Linuksa bez potrzeby<br />

zmiany dotychczasowej konfiguracji systemowej. Przedstawiony<br />

system można wykorzystać do najróżniejszych<br />

celów. Może on pełnić rolę systemu demonstracyjnego,<br />

który można pokazać w pracy/szkole, systemu ratunkowego,<br />

jak również normalnego, codziennego środowiska<br />

pracy. Dołączone oprogramowanie pozwoli skorzystać<br />

z dobrodziejstw Internetu oraz umożliwi poznanie pakietu<br />

biurowego OpenOffice.org, alternatywnego do Microsoft<br />

Office. Dzięki dołączonym grom zapewni nam on długie<br />

godziny rozrywki na najwyższym poziomie, a dzięki<br />

takim programom, jak Real Player i XMMS, obejrzymy<br />

film i posłuchamy muzyki. Nie bez znaczenia jest także<br />

bardzo starannie przygotowana oprawa graficzna, na którą<br />

z pewnością zwrócą uwagę użytkownicy mający już dosyć<br />

cukierkowego interfejsu znanego z Windows XP. Mandrake<br />

Move nie brak graficznych fajerwerków, jednak w przeciwieństwie<br />

do wymienionego wcześniej systemu firmy<br />

Microsoft, są one bardzo stonowane i nie przeszkadzają<br />

w codziennej pracy.<br />

Życzymy dobrej zabawy w poznawaniu Linuksa!<br />

Minimalne wymagania sprzętowe:<br />

• procesor Intel Pentium II/III/IV, AMD K6/K6-II/K6-III,<br />

AMD Duron, AMD Athlon/XP/MP;<br />

• 128 MB SDRAM ( zalecane 256);<br />

• napęd CD-ROM o prędkości minimum 32x.<br />

Uwaga!<br />

Rysunek 1. Mandrake Move w akcji<br />

• do uruchomienia systemu nie jest wymagany dysk<br />

twardy;<br />

• system nie działa na starszych kartach graficznych<br />

(np. S3 Trio).<br />

www.linux.com.pl<br />

5


opis DVD<br />

płyta A<br />

SuSE Linux 9.0<br />

SuSE Linux nie jest dystrybucją popularną w Polsce.<br />

Dzieje się tak z uwagi na to, iż firma SuSE<br />

nie udostępnia obrazów ISO swojej dystrybucji. Każdy<br />

po-siadacz szybkiego łącza internetowego może jednak<br />

zainstalować ten system poprzez Sieć, chociaż nie jest<br />

to najwygodniejsze, zwłaszcza, gdy dany komputer jest<br />

jednocześnie naszym niezbędnym miejscem pracy. Na<br />

dołączonej do numeru płytce DVD znajduje się pełna<br />

wersja europejskiej dystrybucji Linuksa, która w ostatnich<br />

latach zyskała sobie bardzo duże grono zwolenników<br />

i wielbicieli. Mowa oczywiście o SuSE Linux. Przed<br />

Tobą, drogi Czytelniku, ponad 3 tysiące pakietów, łatwa<br />

instalacja i konfiguracja systemu oraz ogromny potencjał<br />

drzemiący w tej komercyjnej dystrybucji Linuksa. Na<br />

SuSE 9.0 składają się m.in.:<br />

• jądro 2.4.21;<br />

• Samba 2.2.8a;<br />

• poprawione wsparcie dla IPv6;<br />

• KDE 3.1.4;<br />

• GNOME 2.2.2;<br />

• GCC 3.3.1;<br />

• glibc 2.3.2;<br />

• Apache 2.0.47;<br />

• RPM 4.1.1.<br />

SuSE Linux 9.0 po uruchomieniu<br />

Dzięki programowi administracyjnemu SuSE Linuksa o nazwie<br />

YaST, zarządzanie systemem jest łatwe i nie powinno<br />

sprawiać problemów nawet początkującym użytkownikom<br />

Linuksa. Szczegółowy opis instalacji systemu i jego konfiguracji<br />

z uwzględnieniem potrzeb polskiego użytkownika<br />

znajduje sie w obecnym numerze Linux+. Życzymy dobrej<br />

zabawy i czekamy na opinie i komentarze na naszym<br />

forum, dostępnym pod adresem http://www.linux.com.pl/<br />

forum/.<br />

Linux+<br />

Obok dystrybucji SuSE Linux, na krążku DVD znajdziecie<br />

katalog Linux+. Są w nim zawarte wszystkie<br />

programy omawiane w artykułach, jak i kilka innych.<br />

Skupię się na różnicach w porównaniu z wersją CD. Oto<br />

one:<br />

• Adobe Photoshop 7 – pełna, 30-dniowa wersja tego<br />

najpopularniejszego na świecie programu do obróbki<br />

grafiki rastrowej. Możesz sprawdzić, jak działa pod<br />

Linuksem, stosując się do wskazówek zamieszczonych<br />

w artykule Photoshop i Linux, obecnym w tym numerze<br />

Linux+;<br />

• CVS – oprogramowanie omawiane w artykule o systemie<br />

kontroli wersji CVS: cvs2html, cvsadmin, cvsgraph,<br />

cvsspam, lincvs, tkcvs;<br />

• Flonix CD Edition – obraz ISO dystrybucji;<br />

• Płatnik – pełna wersja programu Płatnik 5. Wykorzystaj<br />

Wine stosując się do artykułu Płatnik 5 na Linuksie<br />

i uruchom ten program do rozliczania się z ZUS-em<br />

pod swoim Linuksem. Dodatkowo kilka przydatnych<br />

skryptów i niezbędnych bibliotek;<br />

• Linux 2.6.2 – najnowsza, stabilna wersja jądra systemowego.<br />

Przekonaj się o jego nowych możliwościach<br />

osobiście;<br />

• W obronie wolności – przez nasze niedopatrzenie wymieniona<br />

książka nie znalazła się na płytce dołączonej<br />

do poprzedniego numeru Linux+. Przepraszamy<br />

naszych czytelników i obiecaną książkę w formie<br />

elektronicznej zamieszczamy w tym miesiącu.<br />

Życzę Ci, drogi Czytelniku, dobrej zabawy z oprogramowaniem<br />

dołączonym do tej płytki DVD. Jak zwykle proszę<br />

o przesyłanie swoich uwag, próśb i opinii na adres email:<br />

piotrt@linux.com.pl. Dzięki Waszym listom możemy lepiej<br />

dopasowywać się do potrzeb, jakie macie. Do zobaczenia<br />

za miesiąc.<br />

8<br />

marzec 2004


płyta B<br />

opis DVD<br />

Mandrake Linux 9.2.1<br />

Mandrake jest dystrybucją Linuksa szczególnie cenioną<br />

przez początkujących użytkowników tego<br />

systemu. Dzięki ogromnej liczbie najróżniejszych kreatorów,<br />

pomagających w konfiguracji nawet najdrobniejszych<br />

ustawień systemu, jest także dystrybucją, o której<br />

można powiedzieć, iż nie wymaga ręcznej edycji plików<br />

konfiguracyjnych. Stali czytelnicy Linux+ z pewnością<br />

zauważą, iż Mandrake Linux 9.2 był już przez nas wydany<br />

jako Linux+ Extra. Niestety, jakiś czas po oddaniu płyt<br />

do tłoczni w napędach CD-ROM firmy LG wykryto błąd,<br />

który powodował, iż instalacja systemu Mandrake Linux<br />

mogła uszkodzić niektóre z napędów wyżej wymienionej<br />

firmy. Firma LG po pewnym czasie wypuściła odpowiednie<br />

poprawki do swoich napędów, a MandrakeSoft<br />

odporne na ten błąd wersje swojej dystrybucji. Właśnie<br />

taką wersję chcemy Wam zaproponować. Co nowego?<br />

Poprawiono wiele dostrzeżonych błędów i uaktualniono<br />

niektóre z aplikacji. Użytkownicy, którzy mają już<br />

zainstalowaną dystrybucję Mandrake Linux w wersji 9.2,<br />

mogą ją zaktualizować wersją 9.2.1. Na płytce znajdują<br />

się także pakiety dodatkowe. Można wśród nich znaleźć<br />

najnowsze wersje najróżniejszych aplikacji graficznych,<br />

Knoppix 2004-02-09<br />

Dystrybucje Linuksa uruchamiane z płytki CD przeżywają<br />

ostatnimi czasy swój renesans. Demonstracja<br />

możliwości Linuksa, system ratunkowy, codzienne<br />

narzędzie pracy i wiele innych możliwości czynią z nich<br />

coś naprawdę godnego uwagi. Taką dystrybucją jest<br />

właśnie Knoppix. System stworzony przez Klausa Knoppera<br />

stał się niejako pionierskim projektem, który zyskał<br />

ogromną rzeszę zwolenników i użytkowników. Nie<br />

każdemu jednak mogą odpowiadać rozwiązania zastosowane<br />

w Knoppiksie. Nie każdemu może odpowiadać<br />

dobór oprogramowania. Co w takiej sytuacji można<br />

zrobić? Oczywiście przeczytać artykuł Własny Knoppix<br />

zamieszczony w tym numerze Linux+ i samemu dopasować<br />

Knoppiksa do swoich potrzeb. Zamieszczony na<br />

płycie DVD plik ISO jest najnowszą wersją tego systemu<br />

w momencie oddawania tego numeru do druku.<br />

Knoppix 2004-02-09 to m.in.:<br />

• jądro 2.4.24-xfs;<br />

• KDE 3.1.5;<br />

• komplet programów multimedialnych (m.in. XMMS,<br />

XINE);<br />

• GIMP 1.2.5;<br />

• OpenOffice.org 1.1.0;<br />

• Kdevelop 2.1.5 i inne narzędzia programistyczne;<br />

• KOffice 1.3.0.<br />

Standardowy pulpit Mandrake Linux 9.2.1<br />

multimedialnych, gier i wielu, wielu innych. Zachęcamy<br />

wszystkich czytelników, którzy zastanawiają się nad<br />

wyborem odpowiedniej dystrybucji, do instalacji Mandrake’a<br />

bądź SuSE, obecnego na pierwszej płycie DVD.<br />

Życzymy dobrej zabawy i zadowolenia z dokonanego<br />

wyboru!<br />

Knoppix po uruchomieniu<br />

Mając obraz dystrybucji, możemy go także wypalić na<br />

swojej nagrywarce, otrzymując w ten sposób płytę z najnowszą<br />

wersją Knoppiksa. Niemniej, zachęcam do pracy<br />

nad zmodyfikowaniem obecnego na DVD obrazu do własnych<br />

potrzeb. Dzięki wymienionemu wcześniej artykułowi,<br />

nawet osoby bez dobrej wiedzy o Linuksie powinny<br />

dać sobie radę ze stworzeniem własnej wersji Knoppiksa.<br />

To wcale nie jest takie trudne. W razie ewentualnych<br />

problemów, pomocy możecie szukać pisząc zapytanie<br />

na naszym forum, które jest dostępne pod adresem<br />

http://www.linux.com.pl/forum/. Powodzenia!<br />

www.linux.com.pl<br />

9


aktualności<br />

newsy<br />

Novell i SuSE Linux<br />

Firma Novell poinformowała<br />

o wprowadzeniu do swoich kanałów<br />

sprzedaży nowych dystrybucji SuSE<br />

Linux. Jeszcze przed oficjalnym<br />

przejęciem firmy SuSE, które nastąpiło<br />

w styczniu, w cenniku Novella znalazły<br />

się dystrybucje SuSE Standard Server 8.0<br />

i SuSE Enterprise Linux Server 8.0,<br />

przeznaczone dla segmentu firm<br />

średnich i klienta korporacyjnego, oraz<br />

SuSE Linux Personal 9.0 i SuSE Linux<br />

Professional 9.0, przeznaczone dla<br />

segmentu klienta masowego i SOHO.<br />

Firma Novell ogłosiła również<br />

rozpoczęcie nowego programu<br />

ochrony nabywców SUSE LINUX<br />

przed ewentualnymi roszczeniami<br />

firm trzecich, związanymi ze sprawą<br />

wątpliwości dotyczących praw własności<br />

intelektualnej do części kodu systemu<br />

Linux. Program ten ma wspomóc<br />

klientów SuSE i Novella oraz sprawić,<br />

aby nie obawiali się możliwości utraty<br />

środków włożonych w implementację<br />

i tworzenie środowiska informatycznego<br />

opartego na Linuksie, a także widma<br />

kosztownego i jałowego postępowania<br />

prawnego.<br />

Cenon jako Wolne<br />

Oprogramowanie<br />

Osoby zainteresowane tematem DTP<br />

powinny zwrócić swoją uwagę na<br />

pakiet Cenon, którego źródła zostały<br />

niedawno upublicznione przez jego<br />

autorów. Program posiada możliwości<br />

edycyjne i graficzne (w tym separację<br />

kolorów), które pozwalają na tworzenie<br />

prostych reklam. Jego mocną stroną są<br />

liczne filtry importu i eksportu danych<br />

wektorowych (m.in. PostScript, PDF,<br />

DXF, Adobe Illustrator) i bitmapowych<br />

(m.in. TIFF, JPEG, GIF). Omawiane<br />

narzędzie wydaje się być ciekawą<br />

konkurencją dla Scribusa.<br />

http://www.cenon.info/<br />

http://www.cenon.biz/<br />

Qt 3.3<br />

Firma Trolltech opublikowała kolejną<br />

wersję swojej sztandarowej biblioteki<br />

programistycznej – Qt 3.3.0. Wprowadza<br />

ona nowe możliwości, a także wiele<br />

ulepszeń w stosunku do wersji 3.2.x.<br />

Najważniejsze cechy nowej wersji to<br />

integracja z platformą .NET, wsparcie<br />

dla protokołu IPv6, uwzględnienie 64-<br />

bitowych architektur (Intel Itanium),<br />

nowa klasa narzędziowa QLocale<br />

(pozwala na zamianę wartości<br />

numerycznych na odpowiedniki<br />

tekstowe w wielu językach) oraz nowe<br />

sterowniki dla baz danych (Interbase<br />

i SQLite).<br />

http://www.trolltech.com/<br />

Linux+ na Komputer Expo 2004<br />

Dnia 24 stycznia, podczas targów<br />

Komputer Expo 2004,<br />

odbyła się druga edycja WIL-a, czyli<br />

Wielkiej Imprezy Linuksowej. W sali<br />

Mikołajskiej Pałacu Kultury i Nauki<br />

w Warszawie można było posłuchać<br />

wykładów na tematy związane<br />

z Linuksem, poznać programistów<br />

projektów Aurox Linux i PLD Linux,<br />

posłuchać o dystrybucji Mandrake,<br />

jak również dowiedzieć się o powstaniu<br />

i założeniach pierwszej w Polsce<br />

Szkoły Linuxa. Na koniec imprezy,<br />

wśród uczestników, którzy wypełnili<br />

Podczas targów można było zobaczyć<br />

na żywo Auroksa<br />

Cooperative Linux<br />

Pod koniec stycznia zostało udostępnione<br />

pierwsze binarne wydanie<br />

Cooperative Linuksa (w skrócie<br />

CoLinuksa). Celem tego otwartego<br />

projektu jest umożliwienie uruchamiania<br />

Linuksa na systemach Microsoft<br />

Windows bez korzystania z takich<br />

komercyjnych narzędzi, jak VMware.<br />

Przykładowo, z powodzeniem udało<br />

się uruchomić Knoppiksa na Windows<br />

XP.<br />

W przeciwieństwie do innych<br />

rozwiązań tego typu, takich jak<br />

UserModeLinux czy wspomniany<br />

wcześniej VMware, specjalny sterownik<br />

dla systemu macierzystego<br />

wykonuje jądro CoLinuksa w trybie<br />

uprzywilejowanym (superużytkownika).<br />

Poprzez stałe przełączanie się<br />

pomiędzy systemem macierzystym<br />

a systemem wirtualnym, CoLinux<br />

jest w stanie działać tak samo wydajnie<br />

i posiadać taką samą funkcjonalność<br />

jak typowy Linux uruchamiany<br />

Stoisko Software-Wydawnictwo<br />

ankiety magazynu Linux+, rozlosowano<br />

atrakcyjne nagrody, m.in. gry dla<br />

Linuksa, SuSE Linux 9.0 Professional,<br />

maskotki pingwina i tura, magazyny<br />

Linux+ i Linux+ Extra!. Liczba uczestników<br />

spotkania przerosła oczekiwania<br />

organizatorów – w pewnym<br />

momencie było ich ponad 200.<br />

Ponadto, na stoisku Software-<br />

Wydawnictwo można było nabyć pisma<br />

po bardzo atrakcyjnych cenach,<br />

a także porozmawiać z redaktorami<br />

Linux+.<br />

Japoński Knoppix uruchomiony<br />

pod Windows przy pomocy CoLinuksa<br />

samodzielnie na danym komputerze.<br />

Ponadto, ponieważ jest wykorzystywany<br />

ten sam binarny format zapisu<br />

programów wykonywalnych, nie ma<br />

problemu z uruchamianiem niezmodyfikowanych<br />

dystrybucji Linuksa.<br />

Prowadzone są prace, aby móc<br />

uruchamiać CoLinuksa na ReactOS-ie<br />

(otwartym klonie systemu Windows).<br />

http://www.colinux.org/<br />

http://www.reactos.com/<br />

10<br />

marzec 2004


jądro linuksa<br />

dział prowadzi: Maja Królikowska<br />

kernel@linux.com.pl<br />

aktualności<br />

C++ a jądro Linux<br />

Od niemal zawsze regularnie<br />

przez listę linux-kernel przetacza<br />

się dyskusja dotycząca używania<br />

C++ w kodzie jądra. Aktualna<br />

sytuacja jest taka, że oficjalnie nie<br />

ma miejsca dla kodu w tym języku w<br />

Linuksie. Pytanie o to, dlaczego tak<br />

zdecydowano i dlaczego nikt nie chce<br />

zmienić tej decyzji, znalazło się już<br />

dość dawno w FAQ listy linux-kernel,<br />

bo jak się można domyślić, pomysł<br />

przepisania jądra w języku wyższego<br />

poziomu nie jest nowością. Przeciwko<br />

C++ w jądrze jest sam Linus Torvalds,<br />

który nie daje się nawet przekonać, że<br />

C++ dorosło przez ostatnie dziesięć<br />

lat i dorobiło się sprawnego kompilatora.<br />

Zdaniem Linusa trzy następujące<br />

fakty związane z C++ w jądrze nie<br />

uległy zmianie:<br />

• obsługa wyjątków w C++ nie<br />

działa prawidłowo, szczególnie<br />

jeśli chodzi o zastosowanie jej<br />

w jądrze systemu operacyjnego;<br />

• żaden język, w którym ukrywane<br />

są takie operacje, jak alokacja<br />

Devfs kontra udev<br />

Jakiś czas temu Greg Kroah-Hartman<br />

rozpoczął rozwijanie udev,<br />

który miał być rozwiązaniem alternatywnym<br />

do będącego w jądrze, ale<br />

słabo rozwijanego devfs. Twórcom<br />

zarówno devfs, jak i udev, chodziło<br />

o to, aby pozbyć się statycznego systemu<br />

plików /dev, który był nieelastyczny<br />

i niewygodny. Statyczne /dev<br />

jest zwykle za duże, bo zawiera także<br />

urządzenia, których faktycznie nie ma<br />

w systemie. Trudno jest nim także<br />

zarządzać. Dzięki devfs w systemie<br />

było widać tylko te urządzenia, które<br />

naprawdę tam są, jednak nie rozwiązano<br />

w nim wszystkich problemów i nie<br />

osiągnięto porażającej elastyczności,<br />

pomijając już zastrzeżenia co do samej<br />

jakości implementacji. Devfs znalazł się<br />

w jądrze i dostarcza demona działającego<br />

w przestrzeni użytkownika, który<br />

informuje aplikacje o tym, co dzieje się<br />

pamięci, nie jest najlepszy do pisania<br />

jądra systemu operacyjnego;<br />

• można pisać obiektowo w C (przydaje<br />

się to przykładowo w kodzie<br />

systemu plików), bez zbędnych<br />

konstrukcji, których dostarcza<br />

C++.<br />

Tak naprawdę można podać cały<br />

szereg powodów, dla których jądro<br />

nie zostanie przepisane w C++, jak<br />

i powodów, dla których nie będzie<br />

dostatecznie dobrego wsparcia dla<br />

sterowników (modułów) napisanych<br />

w C++. Najbardziej praktyczny jest<br />

taki, że to bardzo trudne i wymaga<br />

więcej pracy niż się z pozoru wydaje.<br />

Mnie najbardziej przekonuje to, że<br />

język wyższego poziomu w pewien<br />

sposób zwalnia dewelopera od myślenia<br />

o drobiazgach, daje dużo łatwych<br />

w użyciu konstrukcji i pozwala nie<br />

dbać o wydajność, co w przypadku<br />

takiego zastosowania, jak jądro, jest<br />

kluczowe.<br />

http://kerneltrap.org/node/view/2067<br />

http://www.tux.org/lkml/#s15-3<br />

z urządzeniami. Wielu użytkowników<br />

Linuksa z powodzeniem używa<br />

i chwali sobie ten system plików.<br />

Jak już wyżej wspomniałam, alternatywą<br />

dla devfs jest ciągle aktywnie<br />

rozwijany udev, którego twórca twierdzi,<br />

że jego rozwiązanie pozwala uniknąć<br />

wszystkich kłopotów z devfs. Udev<br />

działa w przestrzeni użytkownika<br />

i jest to jednym z głównych zarzutów<br />

kierowanych przez wielbicieli devfs<br />

w stronę Grega. Argumentują, że już<br />

dawno ustalono, że to złe podejście.<br />

Mają też za złe twórcy udev, że tak<br />

poważnie broni swojego dzieła, choć<br />

na samym początku traktował je raczej<br />

jak zabawkę, próbę stworzenia takiego<br />

rozwiązania. Wątpliwe też wydaje się<br />

niektórym to, że udev tak szybko trafił<br />

do oficjalnego jądra.<br />

http://www.kernel.org/pub/linux/<br />

utils/kernel/hotplug/udev_vs_devfs<br />

Zmiana planów w 2.4<br />

Jądro serii 2.4 miało bardzo szybko<br />

przejść w fazę utrzymaniową, jednakże<br />

jego opiekun, Marcelo Tosatti, zmienił<br />

zdanie. Rzeczywistość prawdopodobnie<br />

przerosła wyobrażenia i jeszcze co<br />

najmniej dwa jądra z serii 2.4 będą<br />

zawierały nowości i istotne zmiany.<br />

Można się też spodziewać, mając na<br />

uwadze losy poprzednich stabilnych<br />

wersji, że jeszcze przez jakiś czas 2.4<br />

będzie najpowszechniej używaną serią<br />

jądra Linux.<br />

http://www.linuxnews.pl/_news/2004/01/<br />

24/_long/2500.html<br />

Automatyczna aktualizacja jądra<br />

Han Boetes opublikował skrypt, który<br />

może okazać się przydatny dla tych,<br />

którzy często aktualizują i kompilują<br />

jądro systemu. Dzięki install_latest_<br />

kernel można zautomatyzować proces<br />

pobierania łatki, jej nakładania,<br />

budowania nowej wersji jądra oraz<br />

aktualizację programu ładującego jądro<br />

przy starcie. Skrypt ten nie wykona<br />

jednak za użytkownika pierwszej<br />

instalacji i konfiguracji, więc nie jest<br />

polecany początkującym, czy tym,<br />

którzy chcą sobie kompilować jądro nie<br />

mając o tym pojęcia.<br />

http://www.xs4all.nl/~hanb/software/<br />

install_latest_kernel/<br />

Małe, jeszcze mniejsze<br />

Wśród wielu różnych odmian jądra<br />

Linux ostatnio pojawiło się kolejne,<br />

oznaczane przyrostkiem -tiny, które,<br />

jak sama nazwa wskazuje, jest małe,<br />

mniejsze od standardowego. Głównym<br />

zamierzeniem twórcy tego zestawu<br />

łatek jest właśnie sprawienie, aby<br />

jądro zajmowało jak najmniej pamięci<br />

i przestrzeni dyskowej. Podstawowym<br />

zastosowaniem dla jąder -tiny mają<br />

być systemy urządzeń wbudowanych,<br />

handheldy, stare i słabe PC i tym<br />

podobne zabawki.<br />

http://www.selenic.com/tiny-about/<br />

Szyfrowane systemy plików<br />

Michael A. Halcrow zebrał listę<br />

wymagań, jakie powinien spełniać<br />

system plików z szyfrowaniem dla<br />

Linuksa. W tej chwili użytkownicy mają<br />

do wyboru następujące rozwiązania:<br />

LUFS z modułem CryptoFS, FUSE z<br />

modułem EncFS, CFS i TCFS (sieciowe<br />

systemy plików), NCryptfs (modyfikujący<br />

VFS) oraz szyfrowany system plików<br />

stworzony przy użyciu mechanizmów<br />

loopback i cryptoloop. Żaden z tych<br />

mechanizmów nie jest tak wygodny, jak<br />

chociażby EFS pochodzący z NTFS.<br />

http://marc.theaimsgroup.com/?l=linuxkernel&m=107513980310150&w=2<br />

www.linux.com.pl<br />

11


aktualności<br />

debian<br />

Nowe APT w experimental<br />

Matt Zimmerman ogłosił umieszczenie<br />

nowej, eksperymentalnej wersji Apt<br />

w sekcji experimental. Przyczyną<br />

było włączenie zmian dokonanych<br />

w Apt-secure, pozwalających na lepszą<br />

weryfikację źródła pochodzenia<br />

pakietów. Samo użycie nowego Apt<br />

nie wymaga praktycznie żadnych<br />

zmian w konfiguracji. Inny deweloper<br />

poważnie zastanawia się nad<br />

przepisaniem dokumentacji do Apt,<br />

aby była ona bardziej użyteczna dla<br />

użytkowników dystrybucji stable, a nie,<br />

jak w tej chwili, przede wszystkim<br />

unstable. Ponadto, chciałby on<br />

podkreślić możliwość użycia bardziej<br />

przyjaznego Aptitude zamiast Apt-get.<br />

[Experim] http://lists.debian.org/debiandevel-0312/msg01986.html<br />

[Doc] http://lists.debian.org/debian-doc-<br />

0312/msg00024.html<br />

Deweloper Debiana nagrodzony<br />

przez firmę Sun<br />

The Sydney Morning Herald doniósł, iż<br />

Matthew Palmer, deweloper Debiana,<br />

wygrał narodowy konkurs Regional<br />

Delegates Program Award 2004<br />

w Australii. Nagroda została przyznana<br />

za opiekę i rozwijanie ośmiu<br />

pakietów w ramach projektu Debian.<br />

Według firmy Sun Microsystems,<br />

Matthew wniósł duży wkład do<br />

projektu NSW ComputerBank, który<br />

ukierunkowany jest na uzupełnienie<br />

wolnych systemów GNU/Linux o inne<br />

programy, w szczególności przydatne<br />

dla niezamożnych osób prywatnych<br />

i instytucji.<br />

[Herald] http://theage.com.au/articles/<br />

2004/01/14/1073877881076.html<br />

[NSWCB] http://www.cbnsw.org.au/<br />

Automatyzacja pakietowania<br />

modułów Perla oraz Debian Perl<br />

Group<br />

Powstało narzędzie perl2deb, które<br />

automatyzuje proces tworzenia pakietów<br />

Debiana z istniejących modułów Perla.<br />

Spełnia ono podobną funkcję jak<br />

dh-make-perl. Niestety, bywa podobnie<br />

nieskuteczne z powodu założeń<br />

czynionych przez autorów modułów<br />

o procesie instalacji modułów Perla.<br />

Natychmiast zaproponowano lepsze<br />

rozwiązanie, tzn. założenie organizacji<br />

Debian Perl Group, która kolektywnie<br />

zajmowałaby się pakietowaniem<br />

potrzebnych, wybranych modułów. Dwa<br />

tygodnie później ogłoszono oficjalne<br />

powstanie grupy.<br />

[perl2deb] http://lists.debian.org/debianperl-0311/msg00023.html<br />

[Ogłoszenie] http://lists.debian.org/debiandevel-announce-0401/msg00002.html<br />

[DPG] http://pkg-perl.alioth.debian.org/<br />

Usunięcie sekcji non-free<br />

Wraz z trwającymi od paru miesięcy<br />

dyskusjami o stosunku<br />

Debiana do Licencji GNU (nie całkiem)<br />

Wolnej Dokumentacji (GNU<br />

FDL), poruszana była również kwestia<br />

ewentualnego usunięcia z Debiana<br />

sekcji non-free, zawierającej oprogramowanie,<br />

które nie spełnia wymagań<br />

stawianych przez Wytyczne Debiana<br />

Dotyczące Wolnego Oprogramowania<br />

(DFSG).<br />

Dyskusja ta przybiera często<br />

formę mniej lub bardziej formalnych<br />

propozycji zmierzających do usunięcia<br />

tej sekcji. Andrew Suffield, jeden<br />

z najzagorzalszych zwolenników takich<br />

zmian, zaproponował przyjęcie<br />

uchwały wyłączającej oprogramowanie<br />

z sekcji non-free z następnego<br />

i wszystkich kolejnych wydań. Jego<br />

zdaniem powinno się także odebrać<br />

możliwość umieszczania w tej sekcji<br />

nowych pakietów, a sam projekt Debian<br />

powinien zdecydowanie przestać<br />

wspierać to oprogramowanie. Anthony<br />

Towns w odpowiedzi zauważył,<br />

że ta propozycja narusza Umowę<br />

Społeczną. Znajduje się tam klauzula,<br />

która mówi, że Debian uznaje, iż część<br />

użytkowników używa niewolnego<br />

oprogramowania – z tego powodu<br />

stworzył sekcje contrib i non-free.<br />

Za usunięciem sekcji non-free<br />

przemawia:<br />

• niewolne oprogramowanie jest<br />

moralnie złe – wystarczy poczytać,<br />

co RMS pisze na jego temat;<br />

• Debian otrzymuje za darmo<br />

wsparcie od wielu organizacji, ale<br />

nie po to, aby wspierać niewolne<br />

oprogramowanie;<br />

• Fundacja Wolnego Oprogramowania<br />

prawdopodobnie zaczęłaby<br />

publicznie popierać Debiana jako<br />

całkowicie wolną dystrybucję;<br />

• istnieje wystarczająca ilość i różnorodność<br />

Wolnego Oprogramowania,<br />

więc nie ma już potrzeby<br />

używania oprogramowania niewolnego.<br />

Przeciw usunięciu non-free można<br />

wskazać:<br />

• konieczna jest zmiana Umowy<br />

Społecznej Debiana (potrzebne<br />

jest 3/4 głosów), inaczej nie jest to<br />

możliwe;<br />

• Umowa Społeczna słusznie i zgodnie<br />

z rzeczywistością uznaje, że<br />

użytkownicy Debiana używają niewolnego<br />

oprogramowania, a dla<br />

wielu nieocenioną pomocą jest<br />

możliwość skorzystania z gotowych<br />

pakietów;<br />

• objętość całej sekcji non-free dla<br />

wszystkich architektur jest mniejsza<br />

niż objętość nowych wersji<br />

pakietów wchodzących do unstable<br />

w ciągu jednego dnia (obciążenie<br />

serwerów z powodu non-free<br />

jest niemal żadne);<br />

• nikt nie zmusza nikogo ani do<br />

używania, ani rozwijania, ani pakietowania<br />

tego oprogramowania;<br />

• wiele z wolnego oprogramowania<br />

w sekcji contrib zależy od pakietów<br />

w non-free i byłoby znacznie<br />

trudniej opiekować się sekcją contrib,<br />

gdyby ich zależności nie były<br />

spakietowane;<br />

• źródła do ogromnej większości<br />

pakietów w sekcji non-free są<br />

dostępne, często jednak mają różne<br />

klauzule czyniące je niezgodnymi<br />

z DFSG lub np. niedystrybuowalnymi<br />

w formie binarnej;<br />

• na podstawie popularity-contest<br />

ustalono, że kilka pakietów z sekcji<br />

non-free jest rzeczywiście popularnych;<br />

• non-free służy też jako poczekalnia<br />

dla pakietów, które są przelicencjonowywane<br />

po dyskusjach<br />

z autorami;<br />

• sekcja non-free zawiera też wiele<br />

dokumentacji istotnej dla deweloperów<br />

wolnego oprogramowania,<br />

a także pliki danych np. do gier.<br />

[Dyskusja] http://lists.debian.org/<br />

debian-vote/2003/debian-vote-<br />

200312/msg00013.html<br />

12<br />

marzec 2004


dział prowadzi: Grzegorz Prokopski<br />

debian@linux.com.pl<br />

Pięć głównych braków Debiana<br />

Na liście debian-devel pojawiło<br />

się pytanie o technologie i istotne<br />

pakiety oprogramowania, które<br />

powinny być w Debianie, a nie są.<br />

Pozycje najczęściej wymieniane to:<br />

MPlayer, Mono, wielowątkowe i ulepszone<br />

skrypty startowe oraz dobre<br />

wsparcie dla Javy w sekcji main dystrybucji.<br />

MPlayer jest dostępny na licencji<br />

GPL, ale zawiera kod, którego prawdziwie<br />

wolne rozpowszechnianie i użytkowanie<br />

nie jest możliwe ze względu<br />

na nielegalne użycie opatentowanych<br />

technologii. Jakiś czas temu rozpoczęto<br />

operację usuwania tych fragmentów<br />

kodu z wersji przeznaczonej do<br />

spakietowania w Debianie, jednak jak<br />

dotąd pakiet ten nie został umieszczony<br />

w archiwum Debiana. Prawdopodobnie<br />

czyszczenie nie zostało jeszcze<br />

skończone. Natomiast, jak zwykle w takich<br />

przypadkach, dostępne jest nieoficjalne<br />

archiwum z pakietami.<br />

Mono, czyli projekt wolnej implementacji<br />

microsoftowego rozwiązania<br />

.NET, ma stać się, wedle zapowiedzi<br />

hakerów z GNOME, istotną, jeśli nie<br />

podstawową platformą programów<br />

dla GNOME. Pakiety Debiana z Mono<br />

są dostępne od dłuższego czasu z nieoficjalnego<br />

archiwum. Są one często<br />

uaktualniane (prace nad Mono idą<br />

pełną parą). Można przypuszczać, że<br />

gdy Mono ustabilizuje się, pakiety<br />

te znajdą się w samej dystrybucji<br />

Debiana.<br />

Wielowątkowe, ulepszone skrypty<br />

startowe to temat dość popularny<br />

w ostatnich tygodniach na liście<br />

deweloperów Debiana. Istnieją trzy<br />

życzenia:<br />

• niektóre z uruchamianych usług<br />

mogłyby właściwie startować równolegle,<br />

a przez to cały system<br />

mógłby uruchamiać się szybciej<br />

– prawdopodobnie będzie to możliwe<br />

po zaimplementowaniu systemu<br />

zależności między usługami,<br />

który jest wymagany przez LSB;<br />

MPlayer dla Debiana<br />

• dobrze byłoby mieć możliwość<br />

wglądu w zapis wszystkiego, co<br />

pokazuje się na ekranie w trakcie<br />

startu systemu – w tej chwili został<br />

już wdrożony zajmujący się tym<br />

bootlogd;<br />

• wyświetlanie informacji o prawidłowym<br />

czy nieprawidłowym<br />

starcie usług powinno być “ładniejsze”,<br />

jak ma to miejsce np.<br />

w Auroksie – jest już kilka pomysłów<br />

jak to zaimplementować,<br />

więc prawdopodobnie wkrótce<br />

i to życzenie zostanie spełnione.<br />

Większość programów pisanych<br />

w Javie wymaga bardzo nieprzyjemnie<br />

licencjonowanej Javy z firmy Sun.<br />

W ciągu ostatnich miesięcy w ramach<br />

projektów wolnych maszyn wirtualnych<br />

Javy (GCJ, Kaffe, Kissme czy<br />

SableVM) i projektu GNU Classpath,<br />

tworzącego biblioteki Javy, udało się<br />

osiągnąć stopień kompatybilności<br />

z komercyjną Javą, który pozwala na<br />

uruchamianie całkiem poważnych<br />

programów, takich jak np. Eclipse,<br />

Tomcat czy JBoss. Nie wszystkie one<br />

działają już w pełni, ale ważny krok<br />

został uczyniony.<br />

[MPlayerDeb] http://marillat.free.fr/<br />

[Mono] http://www.go-mono.com/<br />

[FreeJava] http://java.debian.net/<br />

index.php/MovingJavaToMain<br />

[FOSDEM] http://www.fosdem.org/<br />

Planet Debian<br />

Jeden z deweloperów Debiana,<br />

na wzór Planet GNOME, stworzył<br />

Planet Debian, który jest systemem<br />

kolekcjonującym najnowsze wpisy<br />

z blogów deweloperów Debiana.<br />

Odczytuje on zdalnie dostępne<br />

RSS-y, a wynik przedstawia w ładnej<br />

graficznej formie na własnej stronie.<br />

W chwili obecnej w systemie<br />

zarejestrowało się około 50 osób, ale<br />

można spodziewać się znacznego<br />

wzrostu tej liczby.<br />

http://planet.debian.net/<br />

Nowy BugWatcher<br />

Mark Howard ogłosił wydanie nowej<br />

wersji graficznego narzędzia do<br />

przeglądania i edycji zgłoszeń błędów,<br />

znanego jako BugWatcher. Przy okazji<br />

odświeżono też interfejs do Systemu<br />

Śledzenia Błędów. Jest to z pewnością<br />

narzędzie warte polecenia wszystkim,<br />

którzy nie chcą korzystać z BTSu<br />

przez strony WWW i pocztę.<br />

Program, mimo iż napisany w Javie,<br />

działa też bez użycia niewolnego<br />

oprogramowania.<br />

[BugWatcher] http://<br />

packages.debian.org/debbuggtk<br />

Schłodzenie GNOME w Debianie<br />

Jeden z głównych koordynatorów prac<br />

nad GNOME w Debianie poprosił<br />

opiekunów, aby powstrzymali się<br />

od zmian w pakietach powiązanych<br />

z meta-gnome2. Ponadto, naprawy<br />

wymaga 13 pakietów, które trzymają<br />

meta-gnome2 poza dystrybucją testing.<br />

Obecność tego pakietu jest wymagana<br />

do poprawnego instalowania się<br />

GNOME2 w Sarge.<br />

http://lists.debian.org/debian-gtkgnome-0401/msg00017.html<br />

Debianizacja świata<br />

Opublikowano ciekawe narzędzie,<br />

które w czasie pracy systemu jest<br />

w stanie przekonwertować dowolną<br />

dystrybucję na Debiana. Niestety, nie<br />

jest ono jeszcze na tyle sprytne, aby<br />

automatycznie podmienić poprzednio<br />

zainstalowane pakiety na debianowe<br />

odpowiedniki, ale wykonuje<br />

najcięższą pracę, czyli instaluje<br />

podstawowy system i czyści ślady po<br />

poprzedniej dystrybucji.<br />

Na liście użytkowników Debiana<br />

opisano natomiast doświadczenie<br />

ręcznej, zdalnej zmiany systemu<br />

z Red Hata na Debiana. Dostępne<br />

notatki powinny znacząco ułatwić<br />

podobne operacje wszystkim, którzy<br />

będą chcieli przesiąść się zdalnie na<br />

Debiana.<br />

[Narzędzie] http://www.hadrons.org/<br />

~guillem/debian/debtakeover/<br />

www.linux.com.pl<br />

13


aktualności<br />

mandrake<br />

dział prowadzi: Daniel Koć<br />

rpm@linux.com.pl<br />

Zmiany w produkcji<br />

Nauczony zapewne przykrym<br />

incydentem z niestandardowymi<br />

napędami LG w wersji 9.2, MandrakeSoft<br />

opracował nowe zasady wydawania<br />

swoich kolejnych dystrybucji, które<br />

zaczną być stosowane już w najbliższym<br />

wydaniu 10.0. Zmiana polega na tym,<br />

że po publikacji w lutym lub marcu<br />

standardowego Mandrake Linux 10.0<br />

Community, w kwietniu lub maju<br />

powstanie Mandrake Linux 10.0<br />

Official – w pełni stabilna wersja,<br />

zawierająca wszystkie poprawki, które<br />

pojawią się przez ten czas. O ile wersja<br />

Community ma być dostępna od razu<br />

po jej ukończeniu, to na Official trzeba<br />

będzie chwilę poczekać, oczywiście<br />

o ile nie jest się członkiem klubu lub<br />

współtwórcą dystrybucji.<br />

http://www.mandrakelinux.com/en/<br />

pr-releaseprocess.php3<br />

WineX i Ogle w jednym stały<br />

domku<br />

Zdecydowana większość gier na rynku<br />

nie posiada wersji pod Linuksa, dlatego<br />

wciąż nie da się zrezygnować z emulacji<br />

Windows. Jeśli standardowe Wine<br />

nie daje sobie rady, warto spróbować<br />

pakietów WineX. Wprawdzie pełne<br />

wydanie wymaga płatnej rejestracji<br />

w Transgaming, jednak wersja<br />

pozbawiona kilku mechanizmów (m.in.<br />

ochrony płyt przed kopiowaniem, która<br />

czasami uniemożliwia uruchomienie<br />

gry w trybie emulacji) jest dostępna<br />

z CVS firmy. Na jej podstawie zostały<br />

skompilowane pakiety dla Mandrake,<br />

które można bezpłatnie pobrać<br />

z niżej podanej strony. Znajdują się<br />

tam także pakiety odtwarzacza Ogle,<br />

zawierające od razu mechanizm odczytu<br />

kodowanych płyt DVD.<br />

http://www003.portalis.it/115/<br />

http://www.transgaming.com/<br />

TestZilla<br />

Bardzo ciekawym projektem<br />

zapoczątkowanym przy okazji<br />

przygotowywania nowej wersji<br />

Mandrake Linux jest TestZilla. Jest<br />

to zbliżony do realnych warunków<br />

korzystania z dystrybucji proces<br />

masowego testowania na rozmaitych<br />

konfiguracjach sprzętowych. Zapowiada<br />

to nowy rozdział w dziedzinie kontroli<br />

jakości Mandrake: wraz z dodatkowym<br />

cyklem wydania Official, TestZilla<br />

pozwoli unikać na przyszłość<br />

problemów z niestandardowym (lub nie<br />

w pełni standardowym) sprzętem.<br />

http://qa.mandrakesoft.com/twiki/bin/<br />

view/Main/TestZilla<br />

Mandrake 10.0 Beta1<br />

Rozpoczął się cykl oficjalnych testów<br />

dystrybucji Mandrake Linux<br />

przed wydaniem wersji 10.0. Chętni<br />

mogą juz ściągać obrazy Beta1. Co<br />

w niej nowego? Przede wszystkim<br />

zadomowiła się w niej na dobre<br />

nowa seria jąder 2.6, stąd obecność<br />

Linuksa 2.6.1 (oraz 2.4.25pre6 dla<br />

tradycjonalistów). Obecne są również<br />

przedwydania XFree86 4.4 i KDE 3.2<br />

oraz świeża Mozilla 1.6. Warto zauważyć<br />

przejście na bibliotekę Glibc<br />

z obsługą NPTL (Native POSIX Threads<br />

Library), czyli znacznie wydajniejszej<br />

implementacji wątkowania. Powinno<br />

to poprawić płynność działania<br />

systemu, tak jak w Red Hat/Fedora<br />

Core, które jako pierwsze wdrożyło<br />

ten mechanizm w swojej dystrybucji<br />

ponad rok temu. Z punktu widzenia<br />

użytkownika ważne są zmiany<br />

w kwestiach administracyjnych: poza<br />

PCLinuxOS 2k4 Preview5<br />

Texstar, niegdyś najbardziej znany<br />

samodzielny autor pakietów do<br />

Mandrake, obecnie zajmuje się głównie<br />

przygotowywaniem swojej własnej<br />

dystrybucji bazującej na Mandrake<br />

Linux. PCLinuxOS 2k4 nie jest jeszcze<br />

ukończony, ale do pobrania jest<br />

kolejne wydanie migawkowe (Preview<br />

5, czyli 1.20.04). Najważniejszą<br />

nowością jest rezygnacja z URPMI,<br />

systemu zarządzania repozytoriami<br />

pakietów, stworzonego i rozwijanego<br />

przez Mandrake, oraz przejście na<br />

tradycyjny debianowy apt-get z graficzną<br />

nakładką Synaptic. Sam format<br />

pakietów nie ulegnie zmianie – nadal<br />

będzie to RPM, jednak konieczne<br />

będzie przejście do nowego opisu<br />

repozytoriów, co oczywiście przysporzy<br />

nieco kłopotów, gdy ktoś zechce<br />

korzystać z dotychczasowych zbiorów.<br />

Poprawiono spory błąd w instalatorze<br />

dyskowym (PCLinuxOS jest dystrybucją<br />

działającą wprost z płytki CD-ROM,<br />

instalacja jest opcjonalna), a w najbliższym<br />

czasie ma on stać się znacznie<br />

bogatszy w możliwości. W Preview 5<br />

zaktualizowane zostało wiele aplikacji,<br />

przerobieniem Centrum Sterowania<br />

Mandrake pojawiło się także zupełnie<br />

nowe narzędzie MDKwebmin,<br />

które pozwala na lokalną konfigurację<br />

systemu przez interfejs WWW.<br />

Zmieniła się struktura menu – przy jej<br />

obecnym układzie zostały uwzględnione<br />

uwagi użytkowników. Niestety,<br />

w wersji Beta1 nie działa USB (podczas<br />

instalacji) oraz akceleracja 3D. To<br />

cena, którą płaci się za korzystanie<br />

z nieukończonego systemu, ale jeszcze<br />

w fazie Preview serwis OSNews opublikował<br />

bardzo przychylną recenzję<br />

tej przygotowywanej właśnie wersji.<br />

http://www.mandrakelinux.com/pl/<br />

100beta.php3<br />

http://linuxnews.pl/_news/2002/09/<br />

23/_long/1484.html<br />

http://www.osnews.com/story.php?<br />

news_id=5577<br />

W kolejnych wersjach instalator dyskowy<br />

PCLinuxOS jest coraz lepszy<br />

pojawiły się również nowe sterowniki<br />

do wielofunkcyjnych drukarek<br />

i tzw. winmodemów. Użytkownicy<br />

laptopów mogą sprawdzić wstępnie<br />

dodane wykrywanie kart PCMCIA, natomiast<br />

posiadacze popularnych kart<br />

graficznych nVidii oraz ATI doczekali<br />

się ich automatycznej konfiguracji. Od<br />

poprzedniego wydania strona dystrybucji<br />

wyszła ze stadium prowizorki<br />

i zawiera wszystkie niezbędne informacje.<br />

Obecnie Texstar skupia się na<br />

poprawie funkcjonalności i dystrybucja<br />

jest tylko w wersji anglojęzycznej.<br />

http://www.pclinuxonline.com/pclos/<br />

14<br />

marzec 2004


dział prowadzi: Robert Główczyński<br />

aurox@linux.com.pl<br />

aktualności<br />

Aurox dla Edukacji<br />

Aurox z Yumem<br />

Repozytorium pakietów testowych<br />

Auroksa 9.3 zostało uzupełnione<br />

o pliki potrzebne do korzystania z narzędzia<br />

do zdalnej instalacji Yum.<br />

6 lutego repozytorium uzyskało<br />

status wersji Beta (Aurox 9.2.92) – zawiera<br />

już kompletny zestaw aplikacji<br />

znajdujących się w dystrybucji. Podstawą<br />

systemu są pakiety z Fedora<br />

Core 1 z jądrem 2.4.22-1.2149.nptl z 7<br />

stycznia 2004.<br />

Aby pobierać programy z repozytorium,<br />

należy zainstalować pakiet<br />

yum z posiadanej wersji Auroksa (9.1<br />

lub 9.2) i zmodyfikować plik konfiguracyjny,<br />

wpisując ścieżkę do jednego<br />

z serwerów lustrzanych:<br />

[main]<br />

cachedir=/var/cache/yum<br />

debuglevel=2<br />

logfile=/var/log/yum.log<br />

pkgpolicy=newest<br />

distroverpkg=aurox-release<br />

Szkolenia instruktorów Auroksa<br />

to praktyczne poznawanie tajników<br />

konfiguracji systemu<br />

Pierwsze szkolenie dla instruktorów<br />

Auroksa odbyło się 31 stycznia<br />

w siedzibie spółki Aurox. Głównym<br />

patronem, a zarazem sponsorem<br />

imprezy, jest firma AMD. Celem tego<br />

cyklu szkoleń jest dostarczenie materiałów<br />

dydaktycznych oraz przygotowanie<br />

osób, które będą mogły prowadzić<br />

szkolenia dla nauczycieli i administratorów<br />

szkolnych sieci komputerowych.<br />

W czasie trwających ponad sześć<br />

godzin warsztatów uczestnicy mogli<br />

w praktyce przećwiczyć zagadnienia<br />

związane z instalacją systemu, konfiguracją<br />

i zarządzaniem usługami<br />

sieciowymi. Tematyka szkolenia obejmowała<br />

między innymi: konfigurację<br />

firewalla, wykorzystanie serwera<br />

Samba, konfigurację serwera WWW<br />

Apache, dzielenie pasma, serwer poczty<br />

elektronicznej Sendmail i wiele<br />

innych.<br />

W warsztatach wzięło udział 16<br />

osób, pracowników szkół i placówek<br />

oświatowych z całej Polski. Uczestnicy<br />

otrzymali dyplomy „Instruktor Auroksa”<br />

oraz komplet materiałów.<br />

Kolejne szkolenia odbywają się<br />

co dwa tygodnie, w soboty. Udział w<br />

kursach jest bezpłatny, a uczestnikami<br />

są pracownicy oświaty. Planujemy,<br />

że dzięki pomocy sponsorów uda się<br />

przeprowadzić 10-15 takich warsztatów.<br />

Jeśli Wasza szkoła jest zainteresowana<br />

udziałem w naszej akcji, informacje<br />

znajdziecie na stronie Auroksa.<br />

http://www.aurox.org/<br />

tolerant=1<br />

exactarch=1<br />

[base]<br />

name=Aurox Linux Beta PL<br />

baseurl=ftp://ftp.tuwien.ac.at/pub/<br />

linux/aurox/9.2.92/PL/packages/<br />

base/RPMS<br />

Aby zainstalować wybrany pakiet<br />

(pakiety) z dystrybucji, aktualizujemy<br />

najpierw samego yuma:<br />

yum update yum<br />

a następnie instalujemy pakiet (zostaną<br />

zainstalowane również pakiety<br />

wymagane; program przed samą<br />

instalacją wyświetli listę pakietów<br />

do instalacji lub aktualizacji i zapyta<br />

o potwierdzenie). Aktualizowanie<br />

całej dystrybucji przy pomocy yuma<br />

(polecenie yum upgrade) nie jest zalecane.<br />

Gdzie znajdziecie Auroksa?<br />

W poprzednim numerze magazynu<br />

Linux+ został zamieszczony apel<br />

o zgłaszanie miejsc (szkół, firm,<br />

instytucji), w których wykorzystywany<br />

jest Aurox. Dotychczas informacje<br />

o korzystaniu z naszego systemu<br />

nadesłały m. in.:<br />

• Centrum Studiów Bałtyckich, Ełk;<br />

• FHU Megabajt;<br />

• Zespół Szkół Ponadgimnazjalnych<br />

nr 1, Piła;<br />

• Gimnazjum nr 56, Poznań;<br />

• Zespół Szkół Prywatnych, Wrocław;<br />

• Biuro Platformy Obywatelskiej,<br />

Zawiercie;<br />

• LO, Drohiczyn;<br />

• Katedra Zoologii i Ekologii KUL,<br />

Lublin;<br />

• Kawiarenka internetowa, Bydgoszcz;<br />

Dariusz Pokorski (linx@neostrada.pl);<br />

• Gminne Centrum Informacji, Nowe<br />

Skalmierzyce.<br />

Autorzy systemu proszą o zgłaszanie<br />

swoich firm, szkół i instytucji publicznych<br />

oraz o nadsyłanie informacji, w których<br />

kawiarenkach internetowych wykorzystywany<br />

jest Aurox. Informacje można<br />

przesyłać na adres: jgorny@aurox.org.<br />

Warto zaznaczyć w nich, w jaki sposób<br />

jest wykorzystywany Aurox. Załączone<br />

adresy stron internetowych zostaną<br />

umieszczone na stronie Auroksa.<br />

Aurox na Komputer Expo<br />

Podczas targów Komputer Expo 2004<br />

(21-24 stycznia) na stoisku Aurox Sp.<br />

z o.o. prezentowana była wersja 9.2<br />

dystrybucji Aurox. Komputer wraz<br />

z monitorem ciekłokrystalicznym 20"<br />

do prezentacji został przekazany<br />

przez firmę MAXDATA Sp. z o.o. Na<br />

stoisku można było wypróbować<br />

programy z dystrybucji, zobaczyć<br />

różne środowiska graficzne (GNOME,<br />

KDE, Fluxbox), pograć w Pingusa,<br />

zobaczyć grę przeznaczoną dla<br />

Windows, a uruchamianą przy pomocy<br />

Wine'a, oraz porozmawiać z osobami<br />

tworzącymi dystrybucję.<br />

Na zakończenie targów, w sobotę 24<br />

stycznia, odbyła się kolejna edycja WIL<br />

– Wielkiej Imprezy Linuksowej. Na<br />

WIL-u wystąpił szef dystrybucji, Jarosław<br />

Górny, w przystępny sposób opisując<br />

zalety Auroksa i możliwości systemu<br />

Linux.<br />

Licznik Auroksa: 7000<br />

Na początku lutego liczba<br />

zarejestrowanych użytkowników<br />

systemu przekroczyła 7000.<br />

www.linux.com.pl<br />

15


aktualności<br />

gnome<br />

Multimedia jak na jabłuszku<br />

Najprawdopodobniej w GNOME 2.6<br />

po raz pierwszy zobaczymy oficjalnie<br />

program Rhythmbox (za jego<br />

obecnością wśród standardowych<br />

pakietów GNOME głosowała między<br />

innymi większość użytkowników<br />

witryny gnomedesktop.org). Jest to<br />

aplikacja służąca do odtwarzania<br />

muzyki w oparciu o rozmaite źródła<br />

danych, jakimi mogą być rozbudowane<br />

kolekcje płyt i utworów zapisanych<br />

w plikach MP3 czy OGG, jak również<br />

radia internetowe. Jak przyznają sami<br />

autorzy, inspirację dla nich stanowił<br />

program iTunes firmy Apple i okazuje<br />

się, że na inspiracji się nie skończyło:<br />

Rhythmbox został właśnie rozszerzony<br />

o obsługę urządzeń iPod – przenośnych<br />

odtwarzaczy muzyki sprzedawanych<br />

przez Apple’a. Sposób dostępu do<br />

utworów, które przechowuje iPod,<br />

nie różni się dla użytkownika niczym<br />

w stosunku do przechowywanych<br />

na twardym dysku, co niewątpliwe<br />

przekona niejedną osobę, że system<br />

Linux również nadaje się do zastosowań<br />

multimedialnych.<br />

http://www.rhythmbox.org/<br />

Kolejny kandydat do biura<br />

Przed kilkoma miesiącami<br />

informowaliśmy o utracie wsparcia<br />

komercyjnego dla aplikacji MrProject,<br />

służącej do planowania i śledzenia<br />

postępów projektów. Od tego<br />

czasu w projekcie zaszły zasadnicze<br />

zmiany: zmieniono jego nazwę<br />

na Planner, przeniesiono witrynę<br />

domową, umieszczono kod programu<br />

w oficjalnym repozytorium GNOME<br />

CVS. Jednocześnie koordynator projektu<br />

(Richard Hult) ustalił precyzyjną listę<br />

zadań, jakie muszą zostać wykonane<br />

przed wydaniem wersji 1.0 programu,<br />

przy czym najważniejszym z nich<br />

jest zapamiętywanie historii operacji<br />

i możliwość ich wycofywania.<br />

Oceniając obecne postępy prac można<br />

przewidywać, że za kilka miesięcy<br />

Planner zostanie oficjalnie wydany jako<br />

składnik GNOME Office 1.2.<br />

http://planner.imendio.org/<br />

Gdy jedna rybka to za mało<br />

Nie od dziś wiadomo, że właściciele<br />

komputerów uwielbiają zmuszać swoje<br />

maszyny do robienia rzeczy zupełnie<br />

bezużytecznych. Coraz bardziej<br />

wymyślne wygaszacze ekranu są<br />

tego najlepszym przykładem, bowiem<br />

wygaszanie czegokolwiek jest chyba<br />

ostatnią rzeczą, jakiej się od nich<br />

oczekuje. Ponieważ wygaszacze zajmują<br />

niestety całą powierzchnię ekranu,<br />

podczas normalnej pracy zadowalać się<br />

musimy uruchamianiem ich mniejszych<br />

Co to za plik?<br />

Niejeden z użytkowników GNO-<br />

ME intensywnie korzystający<br />

z Nautilusa zastanawiał się zapewne,<br />

dlaczego nie można w prosty sposób<br />

(analogiczny np. do stosowanego<br />

w systemie Windows) powiązać plików<br />

o pewnym rozszerzeniu z wybranym<br />

programem. Zamiast tego konieczne<br />

jest zdefiniowanie nowego typu MIME,<br />

jego opisanie i dopiero przypisanie mu<br />

aplikacji. Wynika to z faktu, że typy<br />

MIME stanowią w GNOME podstawę<br />

opisywania typów plików, a co najważniejsze,<br />

podstawą do określenia<br />

typu pliku jest nie rozszerzenie jego<br />

nazwy, ale sama zawartość. Dzięki<br />

temu, jeśli zmienimy nazwę pliku MP3<br />

z track1.mp3 na track1.xyz, to Nautilus<br />

nadal będzie poprawnie rozpoznawał<br />

typ pliku i przy jego otwieraniu uruchomi<br />

odtwarzacz muzyczny.<br />

Niestety, podejście takie rodzi<br />

szereg problemów, o czym przekonał<br />

się Fabio Gomes. Po utworzeniu pliku<br />

tekstowego (o nazwie example.txt)<br />

przekonał się, że Nautilus rozpoznaje<br />

go jako plik w formacie HTML i nie<br />

umożliwia jego otwarcia przy użyciu<br />

żadnego edytora tekstu, oferując do<br />

wyboru jedynie Mozillę oraz OpenOffice.org.<br />

Problem wynikał z faktu, że<br />

pierwszy wiersz pliku zawierał napis<br />

„”. Po zgłoszeniu problemu (w<br />

ostrych słowach) na liście dyskusyjnej<br />

Nautilusa, okazało się, że również inne<br />

osoby spotykały się z podobnymi problemami,<br />

np. jako pliki MP3 były rozpoznawane<br />

pliki zupełnie niezwiązane<br />

z muzyką. Fabio domagał się rezygnacji<br />

z analizowania treści plików przy<br />

rozpoznawaniu ich typów i oparcie się<br />

wyłącznie na rozszerzeniach ich nazw.<br />

Jednocześnie przeprowadził prosty test<br />

wydajnościowy: zmienił kod biblioteki<br />

GNOME-VFS tak, aby typ pliku<br />

ustalany był wyłącznie na podstawie<br />

rozszerzenia, a następnie zmierzył czas<br />

odczytywania przez Nautilusa folderu<br />

zawierającego ok. 250 plików. Okazało<br />

się, że o ile po modyfikacji folder<br />

wyświetlany był praktycznie natychmiast<br />

(w czasie krótszym od sekundy),<br />

Zmiana rozszerzenia pliku nie wpływa<br />

obecnie na rozpoznanie jego typu<br />

– wkrótce się to zmieni<br />

to przy niezmienionym kodzie biblioteki,<br />

operacja ta trwała 21 sekund!<br />

Ogromne opóźnienie wynika z faktu,<br />

że odczytanie początkowych bajtów<br />

każdego pliku w folderze (w celu ustalenia<br />

typu zawartości) wymaga wielu<br />

przemieszczeń głowicy po twardym<br />

dysku, co łatwo kumuluje się do wielu<br />

sekund i nie sposób tego przyspieszyć<br />

modyfikacjami w kodzie aplikacji.<br />

Choć wiele osób nadal upierało<br />

się przy rozpoznawaniu na podstawie<br />

treści plików, argumentując, że pliki<br />

pobierane z Internetu mają często<br />

niepoprawne nazwy, to głos decydujący<br />

miał Alexander Larsson – opiekun<br />

projektu. Kierując się głównie danymi<br />

na temat wydajności obu rozwiązań,<br />

zdecydował on, że w typowych przypadkach<br />

użycia, takich jak wyświetlanie<br />

zawartości folderu, zawartość<br />

pliku będzie odczytywana dopiero<br />

wówczas, gdy nie jest możliwe ustalenie<br />

jego typu na podstawie nazwy.<br />

Wyjątek stanowić będą operacje, przy<br />

wykonywaniu których typ pliku jest<br />

szczególnie ważny, np. otwieranie<br />

pliku lub wyświetlanie jego właściwości.<br />

Dodatkowo w tych sytuacjach<br />

będzie możliwe samodzielne określenie<br />

typu pliku. Odpowiednie poprawki<br />

zostały już wprowadzone do kodu<br />

programu<br />

http://lists.gnome.org/archives/<br />

nautilus-list/2003-December/<br />

msg00255.html<br />

http://lists.gnome.org/archives/<br />

nautilus-list/2004-January/<br />

msg00080.html<br />

16<br />

marzec 2004


dział prowadzi: Zbigniew Chyla<br />

gnome@linux.com.pl<br />

Moda na nagrody<br />

Kopiuj śmiało<br />

Jedną z bolączek trapiących od<br />

wielu lat użytkowników systemu<br />

X Window jest dość nieoczekiwane<br />

zachowanie programów przy kopiowaniu,<br />

a następnie wklejaniu fragmentów<br />

tekstu lub innych zasobów.<br />

Rozwiązanie tego problemu stanowi<br />

niezwykle prosty (około 300 wierszy<br />

kodu w języku C) i działający niepostrzeżenie<br />

w tle program o niezbyt<br />

oryginalnej nazwie „Demon schowka<br />

GNOME” (GNOME Clipboard<br />

Daemon). Po uruchomieniu pełni on<br />

funkcje prawdziwego schowka – śledzi<br />

wszystkie zmiany źródła kopiowanych<br />

danych, a następnie tworzy<br />

Integracja Evolution i Gaima została już<br />

zakończona<br />

Zakończyła się pierwsza edycja konkursu,<br />

ogłoszonego przed dwoma<br />

miesiącami przez Fundację GNOME,<br />

polegającego na integrowaniu ze<br />

sobą rozmaitych składników środowiska<br />

GNOME – kilkunastu autorów<br />

zostało już wynagrodzonych za swoją<br />

pracę nagrodami pieniężnymi, a kolejna<br />

grupa ma czas na przedstawienie<br />

efektów do 19 kwietnia. Okazało się<br />

jednocześnie, że pomysł polegający<br />

na oferowaniu kwot pieniężnych za<br />

wykonanie pewnych prac w projektach<br />

Free Software został podchwycony<br />

przez innych. Mark Shuttlewort<br />

(znany głównie jako uczestnik lotu na<br />

Międzynarodową Stację Kosmiczną w<br />

2002 roku) w ramach działań swojej<br />

fundacji zaoferował łącznie 100.000<br />

dolarów za wykonanie szeregu zadań<br />

obejmujących m.in. pełną obsługę<br />

skryptów tworzonych w Pythonie<br />

przez takie aplikacje, jak GIMP, Gnumeric,<br />

AbiWord czy OpenOffice.org.<br />

Niewielkie projekty też mają coś<br />

do zaoferowania – auorzy programu<br />

Gramps, służącego do tworzenia<br />

i analizy drzew genealogicznych osób,<br />

zaoferowali 100 dolarów w zamian za<br />

rozszerzenie go o obsługę wydruku<br />

za pomocą podsystemu gnome-print.<br />

Warto przy tej okazji przypomnieć, że<br />

w ramach projektu AbiWord, już od<br />

dłuższego czasu, okresowo przydzielane<br />

są drobne nagrody pieniężne dla<br />

autorów najbardziej wartościowych<br />

poprawek, choć w tym przypadku<br />

nie są z góry wyznaczane zadania do<br />

wykonania.<br />

Oferowanie nagród za wykonanie<br />

zadań wydaje się być ze wszech miar<br />

korzystne dla wszystkich osób związanych<br />

z Wolnym Oprogramowaniem:<br />

użytkownicy mogą uzyskać pożądane<br />

cechy programów oferując za nie<br />

zazwyczaj niewielkie kwoty pieniężne,<br />

do projektów przyłączają się nowe<br />

osoby zachęcone nagrodami, dotychczasowi<br />

programiści są silniej motywowani<br />

do wykonania nieco mniej<br />

pasjonujących zadań.<br />

http://www.gnome.org/bounties/<br />

http://www.markshuttleworth.com/<br />

bounty.html<br />

http://gramps.sourceforge.net/phpwiki/<br />

index.php/GnomePrintBounty<br />

ich prywatne kopie. Ewentualne<br />

zakończenie działania programu, który<br />

posłużył za źródło danych, nie<br />

ma w tym przypadku znaczenia,<br />

gdyż udostępniać je będzie demon<br />

schowka. Niestety, wygląda na to, że<br />

program nie znajdzie się w standardowej<br />

dystrybucji GNOME – może<br />

powodować sporą zajętość pamięci<br />

oraz spowolnienie działania programów,<br />

które oferują kopiowane dane<br />

w wielu formatach (np. Gnumeric).<br />

http://members.chello.nl/~h.lai/<br />

gnome-clipboard-daemon/<br />

index.htmlv<br />

odpowiedników. W przypadku<br />

standardowej dystrybucji GNOME,<br />

możemy na panelu umieścić aplet<br />

z rybką Wandą, która regularnie<br />

będzie nas odciągać od śmiertelnie<br />

poważnej pracy delikatnym ruchami<br />

swego rybiego ciałka. Osoby, którym<br />

jedna rybka nie wystarcza, muszą<br />

jednak koniecznie zainstalować<br />

Akwarium Shermana (Sherman's<br />

aquarium). Jest to program, który<br />

może być uruchamiany zarówno<br />

w roli apletu panelu GNOME, jak<br />

i pełnowartościowego wygaszacza<br />

ekranu. Nadchodząca wersja 3.0<br />

(wydane już zostały dwie wersje<br />

„pre”) potrafi wyświetlać akwarium,<br />

w którym żyją rozmaite rybki i inne<br />

żyjątka. Możliwe jest też umieszczenie<br />

w jego wnętrzu dodatkowych<br />

elementów, np. termometru<br />

ukazującego aktualne obciążenie<br />

procesora.<br />

http://aquariumapplet.sourceforge.net/<br />

Ratunek przed windowsową<br />

pomocą<br />

Zmorą niejednego użytkownika<br />

Linuksa jest występująca czasem<br />

konieczność wymiany danych<br />

z osobami, które korzystają z systemu<br />

operacyjnego oraz narzędzi firmy<br />

Microsoft. Jednym z formatów, które<br />

sprawiały dotychczas problemy, był<br />

CHM – zapisany w pojedynczym<br />

pliku zestaw dokumentacji w języku<br />

HTML. Na szczęście sytuacja uległa<br />

właśnie znaczącej poprawie – została<br />

wydana wersja 0.7 napisanego w<br />

Pythonie programu GnoCHM, który<br />

skutecznie potrafi nie tylko wyświetlić<br />

zawartość pliku CHM, ale pozwala<br />

także na tworzenie pozycji Ulubionych<br />

z odwołaniami do wybranych<br />

miejsc w dokumencie oraz pełne<br />

przeszukiwanie jego treści.<br />

http://gnochm.sourceforge.net/<br />

Kofiguracja PLD<br />

po gnomowemu<br />

Na początku lutego została wydana<br />

wersja 0.32 znanego już programu<br />

GNOME System Tools. Oprócz<br />

szeregu poprawionych błędów,<br />

oferuje ona interesującą nowość, która<br />

zainteresować może sporą grupę<br />

użytkowników Linuksa w Polsce:<br />

do obsługiwanych przez aplikację<br />

systemów operacyjnych dołączył<br />

PLD Linux (w wersjach 1.1 i 1.99).<br />

Zawdzięczamy to Grzegorzowi<br />

Goławskiemu, który przygotował<br />

odpowiednie poprawki.<br />

ftp://ftp.gnome.org/pub/GNOME/<br />

sources/gnome-system-tools/0.32/<br />

www.linux.com.pl<br />

17


aktualności<br />

kde<br />

KDE mistrzem<br />

KDE jest brane pod uwagę w wielu<br />

konkursach jako jedno z najlepszych<br />

środowisk graficznych. Jednak to od<br />

głosujących najczęściej zależy, czy<br />

wygra w swojej kategorii, czy nie.<br />

KDE wygrało plebiscyt na najlepsze<br />

środowisko graficzne roku 2003 w<br />

serwisie LinuxQuestions.org. Projekt<br />

uzyskał 55% głosów, natomiast edytor<br />

Quanta zwyciężył w swojej konkurencji<br />

zdobywając aż 49% poparcia.<br />

W konkursie serwisu LinuxWorld<br />

Magazine – 2003 Readers' Choice<br />

Awards nagrodzono KDE za wygraną<br />

w kategorii Best Linux Desktop Manager,<br />

natomiast KDevelop zwyciężył<br />

w kategorii Best Development Tool.<br />

http://www.linuxworld.com/story/<br />

39231.htm<br />

http://www.linuxquestions.org/questions/<br />

forumdisplay.php?forumid=37<br />

Kolejne stabilne KDE – 3.2<br />

Po długich oczekiwaniach<br />

użytkowników, po wydaniu dwóch<br />

wersji Beta i jednego Release Candidate,<br />

z zaledwie jednodniowym opóźnieniem<br />

zostało wydane kolejne stabilne KDE<br />

– wersja oznaczona numerkiem 3.2.<br />

W poprzednim numerze opisałem<br />

ważniejsze zmiany w stosunku do<br />

wersji 3.1 – recenzując wydanie Beta2.<br />

Dla przypomnienia jednak, pokrótce:<br />

nowe KDE jest przede wszystkim<br />

szybsze i bardziej stabilne (głównie<br />

dzięki szybkiemu rozwojowi biblioteki<br />

Qt), posiada wiele nowych programów<br />

w standardowym wydaniu (długo<br />

oczekiwany multikomunikator Kopete,<br />

KWallet do zarządzania hasłami, Kontact<br />

– kombajn do pracy grupowej – klon<br />

Evolution, KSVG – do przeglądania<br />

grafiki w formacie SVG oraz wiele<br />

innych) , uporządkowano interfejs<br />

całości środowiska (np. Centrum<br />

Sterowania), zmieniono domyślne<br />

tematy (zarówno styl, jak i dekoracje<br />

okien to temat o nazwie Plastik), przez<br />

co środowisko sprawia wrażenie<br />

(i takie jest!) o wiele lżejszego od wersji<br />

poprzednich, poprawiono tysiące<br />

błędów, które zostały wykryte głównie<br />

przez użytkowników. Nowe KDE<br />

– można by rzec – rozpoczyna nową<br />

erę desktopów linuksowych – szybkich,<br />

funkcjonalnych i łatwych w obsłudze.<br />

Pozostaje nam czekać na kolejne<br />

wydanie, które na pewno zaskoczy nas<br />

wieloma nowinkami i usprawnieniami.<br />

http://www.kde.org/announcements/<br />

announce-3.2.php<br />

Kexi 0.1beta2<br />

Po kilku miesiącach i po wielu zmianach<br />

planów rozwoju, ekipa deweloperów<br />

programu o tajemniczej nazwie Kexi<br />

GTK-Qt, QtGTK – ciąg dalszy integracji<br />

Ostatnie tygodnie w temacie<br />

rozwoju poszczególnych gałęzi<br />

graficznych środowisk dla systemów<br />

uniksowych należą do programistów,<br />

którzy bardzo chcą ujednolicenia<br />

interfejsów GTK i Qt. Miesiąc temu<br />

pisałem o specjalnych łatach dla Open-<br />

Office.org, które upodabniają ten<br />

zestaw biurowy do interfejsu aplikacji<br />

dla KDE. Tym razem sprawy zaszły<br />

o wiele dalej. Już wiele miesięcy temu<br />

użytkownicy KDE marzyli o możliwości<br />

ujednolicenia wyglądu wszystkich<br />

programów, których używali na co<br />

dzień. Dość długo kazano nam czekać<br />

na spełnienie tych „marzeń”.<br />

GTK-Qt to temat dla GTK+ (1.2 i<br />

2.X), który za pomocą odpowiednich<br />

mechanizmów pobiera styl widgetów<br />

z aktualnie używanego tematu Qt.<br />

Można zatem twierdzić, że gdyby projekt<br />

ten powstał wcześniej, nie mielibyśmy<br />

takich tematów dla GTK, jak<br />

Plastig (upodabniający do Plastika,<br />

domyślnego w KDE-3.2) czy Geramik<br />

(upodabniał aplikacje do tych rodem<br />

z KDE 3.1, gdzie domyślnym stylem<br />

był Keramik). Stworzone zostały one<br />

jako zupełnie osobne projekty, na<br />

które sporo trzeba było czekać. Teraz<br />

natomiast otworzyła się przed użytkownikami<br />

możliwość upodobnienia<br />

każdego stylu w GTK do stylu Qt<br />

– właśnie za pomocą GTK-Qt. Projekt<br />

ten jest w bardzo wczesnym stadium<br />

rozwoju i niektóre programy mogą<br />

KDE PIM a Kontact<br />

KDE PIM to rozbudowany pakiet<br />

programów, które służą do organizacji<br />

informacji osobistej (PIM<br />

– Personal Information Management)<br />

i pracy grupowej. W jego skład wchodzą<br />

między innymi aplikacje do obsługi<br />

poczty elektronicznej (zna-ny nam<br />

KMail), książki adresowej (KAddressbook),<br />

planowania zajęć (KOrganizer)<br />

oraz synchronizacji z komputerkami<br />

PDA (KPilot) czy zarządzania „żółtymi<br />

karteczkami” (KNotes). W KDE 3.2<br />

zostanie dołączony Kontact – aplikacja-kombajn<br />

do pracy grupowej,<br />

Okno wyboru pliku z KDE zagnieżdżone<br />

w BMP (Beep Media Player)<br />

nadal nie działać, ale jeśli tempo rozwoju<br />

zostanie utrzymane, to za kilka<br />

miesięcy uruchomione obok siebie<br />

programy dla GTK+ i Qt nie będą się<br />

niczym różniły.<br />

Drugim projektem integrującym<br />

oba interfejsy jest biblioteka QtGTK,<br />

która łączy obsługę zdarzeń Qt<br />

w obsłudze zdarzeń glib („sercu”<br />

GTK). Umożliwia to używanie okien<br />

dialogowych, DCOP, KDE IO i innych<br />

elementów typowych dla KDE<br />

w aplikacjach GTK+, tak jakby było<br />

to robione natywnie. Od teraz każda<br />

aplikacja GTK+ może bez problemu<br />

„wtopić” się technicznie w KDE.<br />

http://www.kde-look.org/content/<br />

show.php?content=9714<br />

http://developer.kde.org/<br />

documentation/tutorials/qtgtk/<br />

main.html<br />

Kontact – centrum pracy grupowej<br />

łącząca w sobie funkcje innych aplikacji<br />

KDE PIM.<br />

http://www.kontact.org/<br />

18<br />

marzec 2004


dział prowadzi: Paweł Biliński<br />

kde@linux.com.pl<br />

Digikam – zdjęcia, zdjęcia<br />

KDE od dawna brakowało<br />

W programu do zarządzania<br />

fotografiami z prawdziwego zdarzenia.<br />

Oprócz oferujących standardowe<br />

funkcje: Konquerora w roli przeglądarki<br />

zdjęć, czy KView, do tej pory<br />

nie było nic lepszego dostępnego<br />

dla użytkowników KDE. Zmienia<br />

się to jednak z powodu stworzenia<br />

programu o nazwie Digikam. Jeszcze<br />

miesiąc temu, gdy była dostępna jedynie<br />

wersja 0.5, program nie charakteryzował<br />

się specjalnie wyszukanymi<br />

funkcjami – był wręcz niewygodny<br />

dla zwykłego użytkownika, ale ostatecznie<br />

spełniał wszystkie swoje podstawowe<br />

zadania. Kilka tygodni temu,<br />

przeglądając serwis KDE-apps.org,<br />

natknąłem się na nową wersję Digikama,<br />

oznaczoną numerkiem 0.6RC.<br />

Odwiedziwszy stronę domową natychmiast<br />

pobrałem źródła programiku<br />

i po kompilacji przystąpiłem do<br />

testowania. Byłem naprawdę bardzo<br />

pozytywnie zaskoczony. Co nowego<br />

w stosunku do wersji 0.5 i czym charakteryzuje<br />

się najlepszy program do<br />

zarządzania albumami zdjęć dla KDE?<br />

Oto kilka z najważniejszych właściwości<br />

programu:<br />

• tworzenie albumów, których nazwy<br />

są odzwierciedleniem nazwy<br />

katalogu ze zdjęciami na dysku;<br />

• możliwość ustalenia daty powstania<br />

albumu oraz przydzielenia do<br />

określonych wcześniej kategorii<br />

– dzięki temu mamy do wyboru<br />

dwa sposoby sortowania albumów;<br />

• każde otwierane zdjęcie może być<br />

obrobione z poziomu Digikam<br />

w zakresie: obracania, zmiany<br />

jasności i kontrasu czy gammy,<br />

oraz konwersji do czerni i bieli;<br />

• możliwość dodawania komentarzy<br />

do zdjęć;<br />

• obsługa informacji na temat<br />

plików JPEG z wykorzystaniem<br />

biblioteki libexif ;<br />

• obsługa wtyczek – do tej pory<br />

powstały: archiwizacja albumów<br />

Przykładowe okno Digikam w akcji<br />

na płytach (z wykorzystaniem<br />

K3b), tworzenie galerii zdjęć<br />

w HTML-u, tworzenie animacji<br />

z albumu, którą możemy następnie<br />

zapisać w postaci pliku<br />

MPEG, kreator wydruków zdjęć,<br />

konwerter, obsługa skanowania<br />

obrazów z wykorzystaniem sane,<br />

slideshow;<br />

• wysyłanie zdjęć e-mailem za pomocą<br />

programu KMail;<br />

• możliwość ustawienia danego<br />

zdjęcia jako tapety;<br />

• komunikacja z aparatem cyfrowym<br />

za pomocą Libgphoto2<br />

i GPhoto2.<br />

Program charakteryzuje się również<br />

całkiem niezłą stabilnością i szybkością<br />

działania. W momencie pisania<br />

tego artykułu, dostępna była wersja<br />

0.6RC2 – miejmy nadzieję, że program<br />

szybko osiągnie status stabilnego,<br />

a wtyczek do niego będzie cały<br />

czas przybywać – otrzymamy wówczas<br />

jedną z najlepszych tego rodzaju<br />

aplikacji dla Linuksa, a na pewno najlepszą<br />

dla samego KDE.<br />

Uwaga: aby móc skompilować najnowszą<br />

wersję wersję programu (nie<br />

ma dostępnych oficjalnych pakietów<br />

binarnych dla poszczególnych dystrybucji),<br />

musimy mieć zainstalowane<br />

dodatkowo w systemie: GPhoto2,<br />

Libgphoto2, Libexif, natomiast wtyczki<br />

wymagają biblioteki Imlib.<br />

http:/digikam.sourceforge.net/<br />

http://kde-apps.org/content/<br />

show.php?content=9957<br />

wypuściła wersję 0.1 Beta 2 swojego<br />

projektu, zintegrowanego środowiska<br />

zarządzania bazami danych dla<br />

KDE. Jest to wczesna wersja dla<br />

zainteresowanych deweloperów<br />

i użytkowników rządnych przygód.<br />

Wśród zmian można wyróżnić<br />

między innymi zintegrowany silnik<br />

kexisql i poprawiony interfejs. W tym<br />

roku planowane jest wypuszczenie<br />

pełnej wersji Kexi. Od momentu<br />

wydania KOffice 1.3 jest on oficjalnym<br />

składnikiem tego zestawu biurowego.<br />

http://www.kexi-project.org/<br />

KOffice 1.3<br />

Po kilkukrotnym przekładaniu<br />

dnia premiery wersji 1.3, w końcu<br />

została wydana stabilna wersja<br />

sztandarowego pakietu biurowego<br />

dla KDE – KOffice. Z szeregu nowych<br />

usprawnień, z pewnością warto<br />

wymienić przede wszystkim o filtrach<br />

importu i eksportu plików. Pakiet<br />

w pełni obsługuje format plików<br />

OpenOffice.org, a także lepiej niż<br />

w poprzedniej wersji radzi sobie<br />

z formatem MS Office. Sam KWord<br />

potrafi już importować PDF-y.<br />

Z dziesięciu programów składających<br />

się na KOffice warto zwrócić uwagę<br />

na dwa programy, nie mające<br />

odpowiedników w innych znanych<br />

mi pakietach, dostępnych na platformy<br />

uniksowe: Kugar (program do<br />

generowania raportów,<br />

z wyraźnym naciskiem na<br />

użytkownika korporacyjnego) oraz<br />

Kivio (Visio-podobna aplikacja do<br />

tworzenia schematów blokowych).<br />

Należy również dodać, że Kexi,<br />

program do zarządzania bazami<br />

danych, jest od tego wydania<br />

standardowym składnikiem KOffice.<br />

http://www.koffice.org/<br />

Jabber Support System<br />

Kilka tygodni temu serwis KDE.pl<br />

uruchomił nową usługę związaną ze<br />

wsparciem dla użytkownika. Nazywa<br />

się ona „Jabber Support System” i jej<br />

głównym założeniem jest pomoc<br />

użytkownikom KDE, którzy posiadają<br />

własne konta w systemie Jabber.<br />

Wystarczy podać swój JID oraz wpisać<br />

w formularzu jasno sformułowane<br />

pytanie, aby wkrótce otrzymać<br />

odpowiedź. Jest to tzw. system<br />

pomocy natychmiastowej, tak więc<br />

istnieje duże prawdopodobieństwo,<br />

że na odpowiedź nie trzeba będzie<br />

czekać tak długo jak np. na forum<br />

dyskusyjnym czy listach dyskusyjnych.<br />

http://www.kde.pl/?page=about&section<br />

=jabbersupport<br />

www.linux.com.pl<br />

19


linuxfresh<br />

KDE 3.2.0<br />

Temat „Linux na desktopie” od bardzo długiego<br />

czasu wywołuje dyskusje zwolenników takiego<br />

rozwiązania i jego przeciwników. Stabilność<br />

i bezpieczeństwo Linuksa na stacji roboczej?<br />

Czemu nie. Wszakże nie każdy z nas jest posiadaczem<br />

serwera, na którym Linux czuje się jak ryba w wodzie. Ku<br />

uciesze zwolenników Linuksa na komputerach klasy desktop,<br />

ukazała się nowa wersja bodajże najpopularniejszego<br />

graficznego środowiska pracy dla systemów Linux i UNIX.<br />

Mowa oczywiście o KDE 3.2. Poprzednie edycje tego środowiska<br />

graficznego przyzwyczaiły nas do bardzo wygodnej<br />

obsługi, cieszącej oko dopracowanej grafiki i dużej wygody<br />

w przystosowywaniu do własnych potrzeb i upodobań. Co<br />

nowego ma nam do zaoferowania nowa wersja? Bardzo<br />

wiele. Efekt ponad roku pracy programistów z całego świata<br />

widać już przy pierwszym uruchomieniu środowiska. Znacznie<br />

wzrosła jego szybkość, bardzo dobre wrażenie sprawia<br />

nowe menu. Pojawiło się bardzo wiele nowych aplikacji<br />

(m.in. rewelacyjny KWallet, o którym później), a wszystkie<br />

obecne wcześniej pozbyły się wielu dostrzeżonych błędów.<br />

Szczególnej uwagi wymagają następujące zmiany:<br />

• znacznie poprawiona szybkość działania;<br />

• nowe Centrum Sterowania;<br />

• ulepszenia w Konsole;<br />

• Krandtray – szybka zmiana rozdzielczości i odświeżania;<br />

• nowa wersja K3B, najlepszego programu do nagrywania<br />

płyt pod Linuksem;<br />

• Kopete – flagowy komunikator w KDE 3.2, obsługujący<br />

m.in. Sieci Jabber, ICQ, AIM;<br />

• wsparcie dla Xineramy;<br />

• Quanta+ z zaczątkami WYSIWYG;<br />

• lepsze wsparcie dla standardów FreeDesktop.org<br />

i W3C;<br />

• nowe wersje dotychczasowych aplikacji i wiele nowych<br />

(JuK, Kopete, KWallet, Kontact, KGPG, KIG, KSVG,<br />

KMag, KMouseTool, KMouth, KGoldRunner);<br />

• znacznie poprawiona przeglądarka WWW Konqueror;<br />

• bardziej przejrzyste, nowe menu;<br />

• nowy temat graficzny – Plastik;<br />

• przeglądarka plików PDF bazująca na XPDF (KPDF);<br />

• moduł do korekcji gamma (KGamma);<br />

• program do konfiguracji i monitoringu WiFi (KWiFiManager);<br />

• analizator mowy (KMouth).<br />

KDE 3.2.0 w pełnej krasie<br />

Ciekawą aplikacją jest wspomniany wcześniej KWallet. Jest<br />

to oprogramowanie, które zarządza hasłami, wprowadzanymi<br />

przez nas w różnej formie. Wyobraźmy sobie taką<br />

sytuację. Mamy konto w banku internetowym. Logując<br />

się, wybieramy zapamiętanie wpisanego identyfikatora/<br />

hasła. Jeśli z naszego komputera skorzysta inna osoba,<br />

to po wpisaniu adresu serwisu bankowego będzie ona<br />

mogła bez większych problemów zalogować się na nasze<br />

konto, ponieważ potrzebne ku temu dane zostaną od razu<br />

wprowadzone. A tego przecież nie chcemy. KWallet oferuje<br />

dodatkową ochronę zapamiętywanych przez oprogramowanie<br />

haseł. Najpierw je szyfruje, a następnie przy wejściu<br />

na stronę, na której zapamiętaliśmy identyfikator/hasło,<br />

wyświetli się nam okienko z pytaniem o hasło do bazy<br />

haseł zapamiętanych w programie KWallet. Takie hasło<br />

znamy tylko my.<br />

Jak zaopatrzyć się w najnowszą edycję KDE? Na serwerach<br />

FTP projektu dostępne są zarówno pakiety źródłowe,<br />

jak i binarne dla najpopularniejszych dystrybucji, m.in.<br />

Debiana, Fedory, Red Hata, PLD, Slackware i SuSE.<br />

Warto w tym miejscu wspomnieć, że Linux+ Live, który<br />

znajduje się na płycie CD dołączonej do tego magazynu<br />

Linux+, jest oparty właśnie na KDE 3.2.0, więc można<br />

zobaczyć możliwości nowego środowiska bez potrzeby<br />

jego instalacji. Edycja KDE obecna na Linux+ Live różni się<br />

nieco od tej, które możemy pobrać ze strony projektu KDE.<br />

Różnice wynikają głównie z ułożenia menu i identycznych<br />

ikon oznaczających w nim dane kategorie.<br />

Dzięki spójnej budowie, ogromnej ilości dodatkowych<br />

aplikacji i prostemu API, KDE rośnie w siłę. W obecnej fazie<br />

rozwoju można z czystym sumieniem polecić to środowisko<br />

graficzne każdemu obecnemu/przyszłemu użytkownikowi<br />

Linuksa. Polecamy.<br />

http://www.kde.org/<br />

20<br />

marzec 2004


fresh@linux.com.pl<br />

KOffice 1.3<br />

Linux w charakterze środowiska pracy w biurze?<br />

Jak najbardziej. Pakietów biurowych na Linuksie<br />

jest naprawdę bardzo wiele. Wspomnieć<br />

w tym miejscu należy chociażby o OpenOffice.org,<br />

Hancom Office czy omawianym tutaj KOffice. Niedawno<br />

swoją premierę miała wersja 1.3 tego ostatniego pakietu<br />

biurowego. Autorzy zapowiadali rewolucyjne zmiany, większą<br />

prędkość działania, usunięcie wielu błędów. Już w tej<br />

chwili mogę powiedzieć, że rewolucji co prawda nie ma,<br />

ale dokonano co najmniej przewrotu pałacowego. KOffice<br />

składa się z następujących komponentów:<br />

• KWord – edytor tekstu;<br />

• KSpread – arkusz kalkulacyjny;<br />

• KPresenter – tworzenie prezentacji;<br />

• Kivio – tworzenie wykresów;<br />

• Karbon14 – grafika wektorowa;<br />

• Krita – program graficzny;<br />

• Kugar – tworzenie raportów;<br />

• KChart – tworzenie wykresów;<br />

• KFormula – edytor formuł;<br />

• Kexi – praca z bazą danych.<br />

Jak możemy zauważyć, otrzymujemy do ręki ogromny zbiór<br />

aplikacji biurowych. KOffice 1.3 testowałem na dystrybucji<br />

Gentoo Linux z zainstalowanym środowiskiem graficznym<br />

KDE 3.2. Komputerem testowym był AMD Athlon XP 2600+<br />

z 512 MB pamięci RAM.<br />

Co ciekawego ma nam do zaoferowania KOffice 1.3?<br />

Skupię się w tym miejscu na wymienieniu kilku najważniejszych<br />

moim zdaniem zmian, istotnych dla przeciętnego<br />

użytkownika:<br />

KSpread podczas pracy<br />

KOffice w pełnej krasie<br />

• poprawiono szybkość działania pakietu;<br />

• dodano odczyt/zapis dokumentów w formacie Open-<br />

Office.org Writer;<br />

• lepsza integracja ze środowiskiem KDE;<br />

• możliwa edycja dokumentów PDF;<br />

• poprawione filtry importu/eksportu dokumentów<br />

z Microsoft Word, zwłaszcza edycji 95/97;’<br />

• możliwy eksport dokumentów do formatów LaTeX<br />

i RTF.<br />

Jedną z ciekawszych z wymienionych funkcji jest odczyt/<br />

zapis dokumentów w formacie OpenOffice.org. Filtr<br />

importu/eksportu działa nad wyraz dobrze. Nie napotkałem<br />

trudności przy próbie otwarcie/zapisania pliku do formatu<br />

OpenOffice.org Writer. Za poprawne działanie tego<br />

filtru autorom pakietu należy się ogromny plus.<br />

Bardzo ciekawą aplikacją, która wyróżnia KOffice 1.3<br />

z grona innych pakietów biurowych, jest Kugar, czyli narzędzie<br />

do tworzenia raportów. Takiej aplikacji wciąż brakuje<br />

najpopularniejszemu pakietowi biurowemu Open Source,<br />

czyli OpenOffice.org, i to właśnie dzięki niej KOffice może<br />

zawalczyć na polu aplikacji biurowych.<br />

KOffice to pakiet biurowy, którym z całą pewnością<br />

warto się zainteresować. Nie bez znaczenia będzie jego prędkość<br />

działania i ilość zajmowanych zasobów (uruchomiony<br />

KWord zabiera w systemie ponad 5 razy mniej zasobów niż<br />

OpenOffice.org Writer!). Osoby używające środowiska graficznego<br />

KDE z pewnością docenią fakt naprawdę bardzo<br />

dobrej integracji całego środowiska z ich nowym pakietem<br />

biurowym. Z czystym sercem mogę polecić KOffice wszystkim<br />

zainteresowanym.<br />

http://koffice.kde.org/<br />

www.linux.com.pl<br />

21


dystrybucje Linuksa<br />

Własny Knoppix<br />

Witold Kieraś<br />

Knoppix to dystrybucja Linuksa, która<br />

w ostatnim czasie zrobiła błyskotliwą karierę<br />

i zapoczątkowała prawdziwy boom na systemy<br />

uruchamiane bezpośrednio z płyty CD. Różne<br />

wersje Knoppiksa służą obecnie m.in. jako podstawa do<br />

budowania klastrów (ClusterLinux), platforma dla oprogramowania<br />

medycznego (Knoppix-Med) czy narzędzie dla<br />

naukowców zajmujących się analizą danych (Quantian).<br />

W ślad Knoppiksa poszli m.in. twórcy dystrybucji Mandrake,<br />

Aurox i PLD, a nawet programiści FreeBSD (projekt<br />

FreeSBIE). Główne atuty Knoppiksa to moduł wykrywania<br />

sprzętu (oparty na Kudzu z dystrybucji Red Hat) oraz<br />

ogromny zasób programów, który można było zgromadzić<br />

na jednej płycie dzięki systemowi dekompresji danych<br />

w locie, opartemu na module cloop.<br />

Knoppix powstał jako dzieło jednego człowieka, Klausa<br />

Knoppera, i siłą rzeczy skonfigurowany jest tak, aby przede<br />

wszystkim zaspokoić potrzeby i cieszyć oko swojego autora.<br />

Jak wiadomo, o gustach się nie dyskutuje, a potrzeby każdy<br />

z nas ma inne. Już dziś Knoppix wykorzystywany jest m.in.<br />

jako narzędzie do zaawansowanych prezentacji multimedialnych,<br />

a wyobraźnia ludzka jest przecież nieograniczona<br />

i możemy sobie wymyślić zastosowania, które autorowi<br />

nigdy nie przyszłyby do głowy. Zbudujmy zatem swojego<br />

własnego Knoppiksa w oparciu o istniejącą wersję oryginalną.<br />

W niniejszym artykule postaram się przeprowadzić<br />

nawet mało doświadczonego użytkownika Linuksa przez<br />

proces przekształcania Knoppiksa we własną, samodzielną<br />

i w pełni spersonalizowaną dystrybucję uruchamianą bezpośrednio<br />

z płyty CD.<br />

Przygotowania<br />

Stworzenie własnej wersji Knoppiksa jest prostsze niż może<br />

się to z pozoru wydawać, jednak nie znaczy to, że nie<br />

będzie wymagało pewnego wkładu pracy – wszak nie od<br />

razu Kraków zbudowano. Do pracy będą nam niezbędne:<br />

O autorze:<br />

Autor jest studentem Uniwersytetu Warszawskiego. Od<br />

dwóch lat wykorzystuje Linuksa do mniej lub bardziej konwencjonalnych<br />

celów.<br />

Kontakt z autorem: autorzy@linux.com.pl.<br />

Rysunek 1. Oficjalna polska strona Knoppiksa<br />

• płyta z dystrybucją Knoppiksa (np. dołączona do styczniowego<br />

numeru Linux+) lub obraz takiej płyty;<br />

Jeśli mamy taką możliwość, to warto ściągnąć z Internetu<br />

najnowszą wersję dystrybucji (na oficjalnej polskiej<br />

stronie Knoppiksa – http://knoppix.7thguard.net/<br />

– dowiemy się, na jakich serwerach znajdują się obrazy<br />

płyt z tą dystrybucją).<br />

• oddzielna pusta partycja na dysku wielkości ok. 5 GB;<br />

Ostatecznie można wykorzystać do tego istniejącą już<br />

partycję, np. /home, ale nie jest to zalecane – dużo<br />

wygodniej i bezpieczniej będzie nam się pracowało na<br />

oddzielnej pustej partycji.<br />

• 1 GB pamięci RAM – oczywiście kości RAM nie rosną<br />

na drzewach i większość z nas nie byłaby w stanie spełnić<br />

takiego wymagania, dlatego ewentualne niedobory<br />

będziemy mogli z powodzeniem uzupełnić dodatkową<br />

partycją swap (zajmiemy się tym pod koniec artykułu<br />

– patrz ramka „Obszar wymiany swap”);<br />

• (opcjonalnie) moduł jądra cloop (patrz ramka „Moduł<br />

cloop”).<br />

Od tej pory zakładam, że partycja, na której pracujemy, to<br />

/mnt/robocza/ i będę się do niej odwoływał jako do partycji<br />

roboczej, a jeśli Czytelnik zdecyduje się zamontować<br />

swoją partycję w innym miejscu, to przy wykonywaniu<br />

większości poleceń powinien pamiętać o odpowiednim<br />

zmodyfikowaniu ścieżek. Dobrze jest też zapamiętać<br />

nazwę partycji, np. pierwsza partycja na drugim dysku<br />

w linuksowym systemie plików oznaczona będzie jako<br />

/dev/hdb1/. Informacje o tym uzyskamy za pomocą polecenia<br />

df. W zależności od tego, czy korzystamy z nagranej<br />

płyty czy z obrazu płyty na dysku, różnić się będzie<br />

ścieżka do katalogów oryginalnego Knoppiksa w naszym<br />

22<br />

marzec 2004


własny knoppix<br />

systemie. Jeśli mamy nagraną płytę, to będzie to zapewne<br />

katalog /mnt/cdrom/, a jeśli mamy tylko obraz iso płyty, to<br />

prawdopodobnie zechcemy zamontować go np. w katalogu<br />

/mnt/knoppix poleceniem:<br />

# mkdir /mnt/knoppix && mount -o loop -t iso9660 S<br />

/ścieżka_do_pliku/knoppix.iso /mnt/knoppix/<br />

W drzewie katalogowym płyty/obrazu znajdziemy m.in.<br />

katalogi Demos/ i Talks/, które nie będą do niczego potrzebne,<br />

pliki autorun.bat, autorun.inf i cdrom.ico (które<br />

służą do automatycznego uruchamiania płyty w systemie<br />

Windows – ich też raczej nie będziemy potrzebować),<br />

plik index.html będący stroną startową w otwierającej się<br />

automatycznie przeglądarce internetowej (zarówno w systemie<br />

Windows, jak i w uruchomionym Knoppiksie) oraz<br />

wreszcie katalog KNOPPIX/, który będzie nas interesował<br />

najbardziej. Znajdują się w nim różne pliki – głównie dokumenty<br />

KNOPPIX-FAQ w różnych językach oraz narzędzia<br />

windowsowe do tworzenia dyskietki startowej. Najważniejsze<br />

są dwa: boot.img, odpowiedzialny za bootowanie płyty<br />

z Knoppiksem (nim zajmiemy się trochę później) oraz plik<br />

KNOPPIX o wielkości prawie 700 MB, będący skompresowanym<br />

obrazem z właściwym Knoppiksem.<br />

Zaczynamy!<br />

Większość użytkowników Linuksa uważa, że restartowanie<br />

komputera to czynność niegodna i powinna być wykonywana<br />

tylko w ostateczności. Jeśli Czytelnik należy do owej<br />

większości, to będzie musiał zainteresować się modułem<br />

jądra cloop i zainstalować go zgodnie z instrukcjami przestawionymi<br />

w ramce "Moduł cloop".<br />

Jeśli instalacja modułu przebiegła pomyślnie, to<br />

możemy teraz na partycji roboczej stworzyć dwa katalogi:<br />

spakowany/ i zrodla/:<br />

$ mkdir /mnt/robocza/spakowany /mnt/robocza/zrodla<br />

Najlepiej, gdy przekopiujemy cały plik KNOPPIX (znajdujący<br />

się na płycie/obrazie w katalogu KNOPPIX) np. na naszą<br />

partycję roboczą:<br />

$ cp /mnt/cdrom/KNOPPIX/KNOPPIX /mnt/robocza<br />

a następnie zamontujemy ów plik w katalogu /mnt/robocza/<br />

spakowany/ w następujący sposób:<br />

# insmod cloop file=/mnt/KNOPPIX<br />

# mount -o ro /dev/cloop /mnt/robocza/spakowany/<br />

Teraz pozostaje nam już tylko przekopiować całą zawartość<br />

skompresowanego obrazu do katalogu /mnt/robocza/<br />

zrodla/ wraz z zachowaniem wszelkich uprawnień:<br />

Rysunek 2. Doom w Knoppiksie<br />

Po przekopiowaniu całości, odmontowywujemy obraz poleceniem:<br />

# umount /dev/cloop<br />

Jeśli z jakichś powodów nie udało nam się zainstalować<br />

modułu cloop lub po prostu mamy mniej ortodoksyjny<br />

stosunek do restartowania komputera, możemy uruchomić<br />

komputer z płyty z Knoppiksem, otworzyć wirtualny terminal,<br />

zalogować się jako root (wystarczy wydać polecenie<br />

su) i przekopiować zawartość całego drzewa katalogowego<br />

do katalogu zrodla/ na partycji roboczej (musimy jednak<br />

pamiętać, jak została ona oznaczona):<br />

# cp -Rupv /* /mnt/hdXY/zrodla<br />

gdzie X to oznaczenie dysku (a lub b), a Y to numer partycji.<br />

Kopiowanie zajmie ok. 10 minut (zależy to oczywiście od<br />

parametrów sprzętu).<br />

Środowisko chroot<br />

Jeśli rozpakowana zawartość Knoppiksa znajdzie się już<br />

na naszej partycji roboczej, to jest to znak, że przyszedł<br />

czas na właściwy Knoppix remastering. Wykorzystamy<br />

polecenie chroot (dostępne standardowo tylko z uprawnieniami<br />

administratora), którego argumentem jest ścieżka<br />

do katalogu. Polecenie to otworzy powłokę w specjalnym<br />

(podanym jako argument) katalogu, tak jakby był to korzeń<br />

całego drzewa katalogowego (czyli katalog / ). Wykonajmy<br />

polecenie:<br />

# chroot /mnt/robocza/zrodla/<br />

Przenieśliśmy się tym samym do drzewa katalogowego<br />

Knoppiksa na naszej partycji roboczej. Musimy jeszcze<br />

zamontować system plików proc:<br />

# cp -Rupv /mnt/robocza/spakowany/* /mnt/robocza/zrodla<br />

# mount -t proc /proc proc<br />

www.linux.com.pl<br />

23


dystrybucje Linuksa<br />

Zakończenie sesji w środowisku chroot następuje po<br />

wydaniu polecenia exit lub wciśnięciu kombinacji klawiszy<br />

[Ctrl]+[D]. Przed wylogowaniem się ze środowiska<br />

chroot należy pamiętać o odmontowaniu /proc poleceniem:<br />

# umount /proc<br />

Praca w środowisku chroot właściwie nie odbiega od<br />

pracy w normalnej linii komend. Jeśli jednak chcielibyśmy<br />

pracować w trybie graficznym, to najpierw musimy<br />

skonfigurować serwer X. Jeśli konfigurowaliśmy serwer<br />

X na naszym komputerze samodzielnie (np. poleceniem<br />

xf86cfg), to prawdopodobnie wystarczy gdy przekopiujemy<br />

(będąc poza środowiskiem chroot) plik /etc/X11/<br />

XF86Config-4 z naszej dystrybucji Linuksa do katalogu<br />

/mnt/robocza/zrodla/etc/X11/. Jeśli jednak serwer X był<br />

konfigurowany automatycznie przez instalator (tak dzieje<br />

się np. w dystrybucji Mandrake i prawdopodobnie we<br />

wszystkich tzw. "przyjaznych" dystrybucjach), to mogą<br />

pojawić się problemy. Wtedy trzeba uruchomić komputer<br />

z płyty z Knoppiksem i skopiować na dyskietkę lub<br />

bezpośrednio na partycję roboczą do odpowiedniego<br />

katalogu plik /etc/X11/XF86Config-4, a będziemy mieli<br />

skonfigurowany serwer X dokładnie tak, jak zrobiłby to<br />

Knoppix (bo w zasadzie tak się stało). Należy pamiętać,<br />

aby skasować ten plik po zakończeniu procesu dopasowania<br />

Knoppiksa do własnych potrzeb, a przed kompresją,<br />

gdyż w przeciwnym razie nasz Knoppix nie będzie<br />

w stanie skonfigurować środowiska graficznego na komputerach<br />

innych niż nasz własny.<br />

Przed zalogowaniem się w środowisku graficznym<br />

wewnątrz środowiska chroot należy najpierw zamknąć<br />

(jeśli tego wcześniej nie zrobiliśmy) sesję X w naszym "normalnym"<br />

systemie.<br />

Jeśli nasz macierzysty system ma aktualnie zestawione<br />

połączenie z Internetem, to w środowisku chroot również<br />

możemy korzystać z tego połączenia. Jedyny problem, który<br />

może się pojawić, to adres serwera DNS – jeśli w pliku<br />

/etc/resolv.conf mamy wpisany numer IP takiego serwera,<br />

to musimy go również przepisać do odpowiadającego mu<br />

pliku resolv.conf w źródłach z Knoppiksem.<br />

Praca z pakietami<br />

Jak już wspomniałem, praca w środowisku chroot nie<br />

różni się od pracy w normalnej konsoli tekstowej. Dotyczy<br />

to także pracy z pakietami – użytkownicy Debiana<br />

będą się tutaj czuć jak u siebie w domu, wszak Knoppix<br />

oparty jest na tej dystrybucji. Jednak osoby, które nie<br />

miały dotąd doświadczeń z Debianem, mogą czuć się<br />

trochę zagubione, dlatego należą im się podstawowe<br />

informacje na temat narzędzi do pracy z pakietami deb.<br />

Pierwszą rzeczą, którą powinni zrobić posiadacze stałego<br />

łącza, jest aktualizacja pakietów Knoppiksa. W Debianie<br />

jest to bardzo proste – wystarczy (w środowisku chroot)<br />

wydać polecenie:<br />

Moduł cloop<br />

Moduł jądra Linuksa o nazwie cloop został stworzony oryginalnie<br />

przez Paula Russela, natomiast rozbudował go<br />

Klaus Knopper - twórca Knoppiksa. Moduł cloop obsługuje<br />

skompresowane urządzenia blokowe tylko-do-odczytu.<br />

Najnowszą wersję modułu można ściągnąć ze strony http:<br />

//www.knopper.net/knoppix/sources/.<br />

Do skompilowania modułu będą nam potrzebne źródła<br />

jądra Linuksa w wersji używanej aktualnie przez nasz system.<br />

Należy więc zainstalować pakiet kernel-source, dostępny<br />

w większości popularnych dystrybucji. Ściągnięte źródła<br />

modułu rozpakowujemy poleceniem:<br />

$ tar xzvf cloop_.tar.gz<br />

a następnie w katalogu ze źródłami wykonujemy polecenie:<br />

$ make KERNEL_DIR=/ścieżka_do_źródeł_jądra/<br />

Zwykle źródła jądra znajdują się w katalogu /usr/src/linux-<br />

. Po chwili moduł będzie skompilowany. Teraz<br />

jako root wykonujemy kolejno polecenia:<br />

# mkdir -p /lib/modules/misc && cp cloop.o /lib/modules/<br />

/misc/<br />

# depmod -a<br />

# mknod /dev/cloop b 240 0<br />

Teraz możemy montować obrazy skompresowane przy<br />

pomocy cloop jako urządzenia do odczytu. Aby to zrobić,<br />

należy jako root wykonać następujące polecenia:<br />

# insmod cloop file=/ścieżka_do_skompresowanego_pliku/<br />

# mount -o ro /dev/cloop /punkt_montowania/<br />

Po zakończeniu pracy odmontowywujemy plik poleceniem:<br />

# umount /dev/cloop<br />

W wyniku kompilacji uzyskaliśmy również program create_<br />

compressed_fs, którego będziemy mogli użyć do kompresji<br />

naszego Knoppiksa. Można go skopiować do katalogu<br />

/usr/bin/ (jeśli tego nie zrobimy teraz, to i tak trzeba będzie<br />

użyć wersji znajdującej się w źródłach Knoppiksa). W ogólnym<br />

przypadku skompresowany obraz tworzymy poleceniem:<br />

$ create_compressed_fs rozmiar_bloku_obrazu > skompresowany_obraz<br />

gdzie wartość rozmiaru bloku jest wielokrotnością liczby 512.<br />

# apt-get update<br />

W ten sposób zostaną zaktualizowane wszystkie zainstalowane<br />

w systemie (czyli w Knoppiksie) pakiety. Do<br />

zainstalowania nowego pakietu służy polecenie apt-get<br />

install . Pakiety można odinstalować<br />

poleceniem apt-get remove . Jeśli dysponujemy<br />

gotową listą pakietów do usunięcia, np. w pliku<br />

24<br />

marzec 2004


własny knoppix<br />

niechciane.txt, to wystarczy wydać polecenie apt-get<br />

remove 'cat niechciane.txt', a zostaną usunięte wszystkie<br />

pakiety wymienione w pliku, wraz z zależnościami.<br />

Wywołanie apt-get remove z opcją --purge spowoduje<br />

usunięcie pakietu wraz ze wszystkimi plikami konfiguracyjnymi.<br />

Więcej informacji na temat możliwości menedżera<br />

pakietów apt-get można znaleźć na odpowiednich<br />

stronach podręcznika man. Jeśli nie mamy stałego dostępu<br />

do Internetu, a chcemy pracować z archiwum pakietów<br />

deb dostępnych offline (np. na płycie CD), to być<br />

może wygodniej będzie nam korzystać z innego menedżera<br />

pakietów o nazwie dpkg. Wywoływany odpowiednio<br />

z opcjami –install, –remove czy –purge daje podobne<br />

efekty co apt-get, za wyjątkiem usuwania pakietów zależnych.<br />

Do wyszukiwania "osieroconych"pakietów możemy<br />

użyć programu deborphan. Jeszcze innym sposobem na<br />

usuwanie pakietów jest program orphaner, który posiada<br />

bardzo intuicyjny interfejs konsolowy.<br />

Mimo tego, że repozytoria pakietów Debiana wydają<br />

się nie mieć dna, to czasem pojawia się potrzeba zainstalowania<br />

jakiegoś programu ze źródeł. Knoppix jest wyposażony<br />

m.in. w kompilator GCC. W środowisku chroot<br />

należy stosować się do zaleceń autorów poszczególnych<br />

programów (zwykle ogranicza się to do wydawania<br />

poleceń ./configure, make, make install z odpowiednimi<br />

opcjami), które kompilujemy. Należy także pamiętać,<br />

że w większości przypadków w Knoppiksie nie ma tzw.<br />

pakietów devel i może zdarzyć się, że będziemy musieli<br />

je doinstalować. Z tego powodu lepiej unikać instalacji ze<br />

źródeł i w miarę możliwości szukać gotowych pakietów.<br />

Jednym z pierwszych pomysłów na wzbogacenie<br />

Knoopiksa, który przyszedł mi do głowy, była instalacja<br />

Dooma. Odkąd producent uwolnił kod tej gry, powstało<br />

kilka jej wersji dla Linuksa, m.in. LxDoom, PrBoom czy<br />

Dumb. Wybrałem wersję LxDoom – do jej zainstalowania<br />

potrzebne mi były pakiety zawierające silnik sterujący grą,<br />

grafiką (w konsoli i w trybie graficznym) oraz dźwiękiem:<br />

lxdoom-sndserv_1.4.4-7_i386.deb, lxdoom-svga_1.4.4-<br />

7_i386.deb, lxdoom_1.4.4-7_i386.deb, lxdoom-x11_1.4.4-<br />

7_i386.deb, doom-wad-shareware_1.9-1.deb.<br />

Ostatni z wymienionych pakietów nie należy do<br />

projektu LxDoom – jest to pakiet zawierający oryginalną<br />

grafikę i dźwięk z Dooma (nie zostały one udostępnione<br />

społeczności), czyli plik doom.wad z darmowej wersji<br />

demonstracyjnej gry. Jeśli mamy oryginalną pełną wersję<br />

Dooma, możemy użyć pliku doom.wad z tej wersji zamiast<br />

pakietu doom-wad-shareware (wystarczy przekopiować go<br />

np. do katalogu /usr/share/games/doom/ w źródłach Knoppiksa<br />

i przy pierwszym uruchomieniu wskazać ścieżkę do<br />

tego pliku poprzez opcję -iwad) – będziemy wówczas<br />

mogli cieszyć się pełną wersją gry w naszym Knoppiksie.<br />

Alternatywą jest wykorzystanie dotychczasowych osiągnięć<br />

programistów projektu FreeDoom, tworzących wolny<br />

zamiennik dla oryginalnych plików *.wad.<br />

Ponieważ nie mam stałego dostępu do Internetu, to<br />

pakiety ściągnąłem w kawiarence i po przeniesieniu ich<br />

Rysunek 3. Xnest: KDE w KDE<br />

na płycie CD do domu przekopiowałem do katalogu root/<br />

Knoppiksa (u nas jest to katalog /mnt/robocza/zrodla/<br />

root/ ). Wersja pakietów nie jest tutaj ważna (choć im<br />

nowsze, tym oczywiście lepiej), ale ważne, aby wszystkie<br />

pakiety posiadały ten sam numer wersji (z wyjątkiem<br />

pakietu doom-wad-shareware, który nie jest częścią<br />

LxDooma). Ponieważ pakiety sterujące są od siebie wzajemnie<br />

zależne i instalowane pojedynczo w nieodpowiedniej<br />

kolejności mogłyby zwracać błędy o niespełnionych<br />

zależnościach, to zainstalujemy je wszystkie naraz. W środowisku<br />

chroot wykonujemy polecenie:<br />

# dpkg –install /root/lxdoom*<br />

a następnie:<br />

# dpkg –install /root/doom-wad-shareware_1.9-1.deb<br />

Teraz już możemy grać. Polecenie lsdoom uruchamia grę<br />

w trybie tekstowym, a lxdoom w środowisku graficznym.<br />

W razie komunikatu o braku pliku *.wad należy wskazać<br />

ścieżkę do tego pliku poprzez opcję -iwad . W<br />

środowisku graficznym możemy zmieniać wielkość okna,<br />

w którym uruchamia się gra poprzez opcje -width i -<br />

height.<br />

Ustawienia użytkownika<br />

Gdy zajrzymy do rozpakowanego pliku KNOPPIX (czyli<br />

do katalogu zrodla/ na naszej partycji roboczej), zauważymy,<br />

że katalog /home jest pusty. A jednak po uruchomieniu<br />

komputera z płyty z Knoppiksem, domyślny<br />

użytkownik będzie miał swój katalog domowy w zwyczajowym<br />

miejscu i będą się w nim znajdować różne pliki<br />

konfiguracyjne. Dzieje się tak dlatego, że Knoppix tworzy<br />

wirtualny katalog domowy domyślnego użytkownika<br />

w pamięci RAM i kopiuje do niego zawartość katalogu<br />

/etc/skel/, w którym znajdują się takie ustawienia wybranych<br />

programów, jakie wybrał Klaus Knopper. Przykładowo<br />

w zakładkach Mozilli znajduje się m.in. adres strony<br />

domowej Knoppiksa (http://www.knopper.net/knoppix/ ),<br />

www.linux.com.pl<br />

25


dystrybucje Linuksa<br />

a wygaszacz ekranu uruchamia się po 10 minutach.<br />

Możemy zmienić te ustawienia, a także dodać nowe ustawienie<br />

dla innych programów. W tym celu, po uprzednim<br />

zamknięciu serwera X w naszym macierzystym systemie,<br />

logujemy się w środowisku chroot, montujemy /proc i uruchamiamy<br />

środowisko graficzne standardowym poleceniem<br />

startx. Naszym oczom ukaże się takie KDE, jak<br />

skonfigurował je Klaus Knopper. Możemy teraz przystąpić<br />

do pracy. Każdy uruchomiony przez nas program albo ma<br />

już swój plik konfiguracyjny (zwykle są to pliki lub katalogi<br />

ukryte, czyli takie, których nazwy rozpoczynają się<br />

od kropki) przekopiowany automatycznie z /etc/skel/, albo<br />

tworzy nowy. Istniejące pliki konfiguracyjne możemy<br />

modyfikować używając programów, którymi one sterują<br />

i zmieniając ich ustawienia, np. zakładki Mozilli możemy<br />

zmienić w samej Mozilli poprzez Menedżera zakładek.<br />

Modyfikacje dotyczą również samego KDE – możemy<br />

zmieniać tematy, style okien, ikony czy menu korzystając<br />

z Centrum Sterowania KDE. Gdy uznamy, że wszystkie<br />

programy mają już takie ustawienia, jakie chcemy,<br />

możemy wylogować się z KDE. Ponieważ przez cały<br />

czas byliśmy zalogowani jako root, to stworzone przez<br />

nas pliki konfiguracyjne znajdują się w katalogu /root/.<br />

Teraz wystarczy nadpisać zawartość /etc/skel/ zawartością<br />

katalogu /root/:<br />

# cp -rf /root/* /etc/skel/<br />

Xnest, czyli 'Iksy' w 'Iksach'<br />

Zdarza się czasem, że pracujemy w środowisku chroot<br />

poprzez wirtualny terminal (np. xterm). Możemy wtedy<br />

korzystać wyłącznie z trybu tekstowego. Gdy chcemy<br />

sprawdzić efekt naszej pracy, np. wygląd interfejsu graficznego<br />

jakiegoś programu, który właśnie konfigurowaliśmy,<br />

to musimy najpierw zamknąć serwer X, otworzyć środowisko<br />

chroot i dopiero ponownie uruchomić środowisko<br />

graficzne Knoppiksa. To bardzo kłopotliwe, ale jest na to<br />

rada. Użyjemy programu Xnest, znajdującego się w pakiecie<br />

XFree86-Xnest. Służy on do zagnieżdżania serwerów<br />

X – dla "prawdziwego" serwera X jest klientem, ale przez<br />

aplikacje klienckie jest traktowany jak serwer. Jeśli nie zrobiliśmy<br />

tego wcześniej, to należy zainstalować ten pakiet<br />

w naszej macierzystej dystrybucji, otworzyć wirtualny terminal<br />

i wydać polecenie Xnest -ac :1. Pojawi się wówczas<br />

na ekranie puste niebieskie okno. Następnie otwieramy<br />

drugi wirtualny terminal, uruchamiamy środowisko chroot<br />

w katalogu ze źródłami Knoppiksa, montujemy /proc<br />

i wydajemy dwa polecenia:<br />

W niebieskim oknie Xnest powinna otworzyć się sesja<br />

KDE. Jeśli wolimy inne menedżery okien, to zamiast<br />

startkde wystarczy użyć poleceń wmaker lub fluxbox,<br />

które otworzą odpowiednio Window Makera lub Fluxboksa.<br />

Praca z Xnest na dłuższą metę jest jednak uciążliwa,<br />

a przede wszystkim obciąża procesor. Jeśli planujemy<br />

przez kilka godzin pracować wyłącznie nad dostosowaniem<br />

Knoppiksa do własnych potrzeb, to lepiej otworzyć<br />

tylko jedną sesję X w środowisku chroot.<br />

Jak zmienić powitalną grafikę<br />

(tzw. boot image)?<br />

Zaraz po uruchomieniu komputera z płyty z Knoppiksem<br />

pojawia się ekran z firmową grafiką tej dystrybucji, a system<br />

oczekuje na podanie dodatkowych opcji (np. języka lub<br />

menedżera okien). Aby zmienić tę grafikę, musimy skopiować<br />

plik boot.img z płyty (znajduje się on w katalogu<br />

KNOPPIX) na naszą partycję roboczą oraz zamontować<br />

go w dowolnym pustym katalogu np. /mnt/boot_image/<br />

poleceniem:<br />

# mount -o loop /mnt/robocza/boot.img /mnt/boot_image/<br />

Teraz w katalogu /mnt/boot_image/ znajdziemy kilka ciekawych<br />

plików, m.in. logo.16 – jest to właśnie interesujący<br />

nas obrazek, ale w specyficznym formacie. Możemy go<br />

wymienić, ale tylko na inny plik w rozdzielczości 640*400<br />

pikseli i tylko 16-kolorowy. Jeśli już znajdziemy plik (nazwijmy<br />

go umownie logo.png) spełniający takie warunki,<br />

który chcielibyśmy ustawić jako logo, to musimy go jeszcze<br />

przekonwertować do odpowiedniego formatu. Służą do<br />

tego następujące polecenia:<br />

# pngtopnm logo.png > logo.pnm<br />

# ppmtolss16 < logo.pnm > logo.16<br />

Jeśli nie mamy programów pngtopnm i/lub ppmtolss16, to<br />

musimy doinstalować w naszym systemie odpowiednio<br />

pakiet netpbm i/lub syslinux. Teraz wystarczy przekopiować<br />

wyjściowy plik logo.16 (dobrze, aby nie miał więcej<br />

niż 50 kB) w miejsce oryginalnego, odmontować plik<br />

boot.img poleceniem umount /mnt/boot_image/ i w dalszej<br />

części tego przewodnika używać zmodyfikowanej wersji<br />

tego pliku.<br />

# export DISPLAY=localhost:1<br />

# startkde<br />

Rysunek 4. Window Maker w KDE<br />

26<br />

marzec 2004


własny knoppix<br />

Jak zmienić domyślny język<br />

Knoppiksa?<br />

Musimy wyedytować plik knoppix-autoconfig znajdujący<br />

się w katalogu /etc/init.d/ Knoppiksa, czyli w naszym<br />

przypadku musimy po prostu zmodyfikować plik /mnt/<br />

robocza/zrodla/etc/init.d/knoppix-autoconfig. Otwieramy<br />

go w naszym ulubionym edytorze (np. jed) i szukamy<br />

następującego fragmentu (w okolicach linii 101 i 102):<br />

LANGUAGE="$(getbootparam lang 2>/dev/null)"<br />

[ -n "$LANGUAGE" ] || LANGUAGE="de"<br />

Wystarczy zmienić wartość zmiennej LANGUAGE z “de” na<br />

“pl”, aby domyślnym językiem Knoppiksa był język polski.<br />

Poniżej tych linii są m.in. deklaracje kodowania znaków<br />

i układu klawiatury dla poszczególnych języków, które<br />

również możemy zmieniać wedle naszych upodobań.<br />

Jak zmienić domyślne środowisko<br />

graficzne?<br />

Tu również będziemy edytować plik knoppix-autoconfig,<br />

ale tym razem należy znaleźć fragment (w okolicach<br />

linii 383-386):<br />

# Also read desired desktop, if any<br />

DESKTOP="$(getbootparam desktop 2>/dev/null)"<br />

# Allow only supported windowmanagers<br />

case "$DESKTOP" in gnome|enlightenment|kde| S<br />

larswm|xfce|xfce4|windowmaker|wmaker|icewm| S<br />

fluxbox|twm) ;; *) DESKTOP="kde"; ;; esac<br />

Wystarczy zmienić wartość zmiennej DESKTOP z ”kde” na<br />

“gnome”, “icewm” czy “fluxbox”, aby te programy stały się<br />

domyślnymi menedżerami okien w naszym Knoppiksie.<br />

Gdzie KDE przechowuje elementy<br />

grafiki zawierające nazwę „Knoppix”?<br />

W Knoppiksie standardową tapetą jest plik /usr/local/<br />

lib/knoppix.jpg – jego podmiana w naszych źródłach na<br />

inny spowoduje zmianę domyślnej tapety.<br />

Obrazek wraz z paskiem postępu pojawiający się przy<br />

starcie KDE, nazywany po angielsku screensplash, znajduje<br />

się zwyczajowo w katalogu /usr/share/apps/ksplash/<br />

– w Knoppiksie przechowywany jest w tym właśnie<br />

miejscu. Podobnie jest z tzw. kickerem, czyli paskiem na<br />

lewym boku menu KDE – w Knoppiksie znajduje się on<br />

w zwyczajowym miejscu, czyli w pliku /usr/share/apps/<br />

kicker/pics/kside.png.<br />

W serwisie http://www.kde-look.org/ można znaleźć<br />

ogromny wybór tapet, splashscreenów, ikon i innych wodotrysków<br />

dla KDE. Zachęcam więc do upiększania swojego<br />

knoppiksowego biurka.<br />

Zanim wypalisz...<br />

Jeśli uznamy, że nasz Knoppix ma już wszystko, czego<br />

moglibyśmy od niego wymagać, i przekopiowaliśmy nasze<br />

Obszar wymiany swap<br />

W czasie kompresji przy użyciu modułu cloop skompresowany<br />

obraz przechowywany jest w pamięci roboczej. Jeśli<br />

mamy dużo RAM-u (np. 1GB), to nie musimy się tym martwić,<br />

gdyż gotowy obraz będzie miał „zaledwie” ok. 700MB<br />

(tak, aby mógł zmieścić się na płycie CD). Większość z nas<br />

będzie jednak musiała uzupełnić braki pamięcią swap. Jeśli<br />

suma pamięci RAM w naszym komputerze i wielkości partycji<br />

wymiany (czyli partycji swap) w systemie jest mniejsza<br />

niż 700MB (lub tylko nieznacznie tę wartość przekracza), to<br />

należy na czas kompresji stworzyć dodatkową partycję swap<br />

– najlepiej tak dużą, aby suma pamięci RAM i całego dostępnego<br />

swap-u wynosiła ok. 1GB. Pokażę teraz, jak stworzyć<br />

dodatkową partycję wymiany o wielkości 500MB, Czytelnik<br />

powinien dopasować jej wielkość do własnych potrzeb.<br />

Na partycji, na której mamy odpowiednio dużo wolnego<br />

miejsca, wykonujemy następujące polecenia:<br />

# dd id=/dev/zero of=swapfile bs=1024 count=500k<br />

# mkswap swapfile<br />

Mamy już stworzony dodatkowy obszar wymiany w postaci<br />

pliku swapfile, więc trzeba go jeszcze aktywować:<br />

# swapon swapfile<br />

Możemy teraz sprawdzić, czy wszystko poszło zgodnie z<br />

planem. Polecenie cat /proc/swaps wypisze nam wszystkie<br />

aktywne obszary wymiany. Powinna się tam znaleźć mniej<br />

więcej taka linia:<br />

/mnt/robocza/swapfile file 511992 0 -3<br />

Po zakończeniu kompresji Knoppiksa dodatkowy swap nie<br />

będzie nam już potrzebny. Najpierw wyłączamy go poleceniem:<br />

# swapoff swapfile<br />

a następnie zwyczajnie usuwany przy pomocy polecenia rm<br />

swapfile.<br />

indywidualne ustawienia z katalogu /root/ do /etc/skel/, to<br />

przyszedł czas na decydującą fazę pracy, czyli przygotowanie<br />

obrazu płyty. Najpierw należy wyczyścić katalog /root/ ze<br />

wszystkich znajdujących się w nim plików, a także skasować<br />

wszystkie pakiety *.deb w katalogu /mnt/robocza/zrodla/<br />

var/cache/apt/archives/ (jeśli znajdują się tam takowe).<br />

Należy także skasować plik /mnt/robocza/zrodla/etc/X11/<br />

XF86Config-4, który wcześniej tam przekopiowaliśmy<br />

(trzeba uważać, aby nie pomylić go z plikiem /mnt/robocza/<br />

zrodla/etc/X11/XF86Config-4.ini). Nie da się niestety przed<br />

kompresją ściśle określić, czy nasz Knoppix zmieści się na<br />

płycie CD, ale jeśli nie odinstalowaliśmy żadnego pakietu,<br />

a doinstalowaliśmy kilka nowych, to istnieje spore prawdopodobieństwo,<br />

że gotowy obraz płyty będzie większy<br />

niż 700MB. Metodą „na oko” możemy jednak wykluczyć<br />

przypadek skrajny – jeśli katalog /mnt/robocza/zrodla/ ma<br />

www.linux.com.pl<br />

27


dystrybucje Linuksa<br />

wielkość wyraźnie większą niż 2,2 GB, to istnieją jedynie<br />

nikłe szanse, że zmieści się na standardowej płycie CD.<br />

Teraz przyda nam się duża partycja swap. Jeśli suma<br />

naszej pamięci RAM i wielkości partycji swap jest mniejsza<br />

niż 1GB, to warto, postępując zgodnie z instrukcjami<br />

zawartymi w ramce „Partycja swap”, stworzyć dodatkową<br />

partycję wymiany, inaczej proces kompresji zwróci błąd<br />

i – co może być jeszcze bardziej irytujące – stanie się to<br />

prawdopodobnie na końcu, a nie na początku tej czasochłonnej<br />

operacji.<br />

Jeśli nie instalowaliśmy modułu cloop, to będziemy<br />

musieli albo zainstalować w naszym systemie pakiet<br />

cloop-utils, albo przekopiować z Knoppiksa narzędzie<br />

create_compressed_fs, którym stworzymy skompresowany<br />

plik KNOPPIX. Wykonajmy więc polecenie:<br />

# cp /mnt/robocza/zrodla/usr/bin/create_compressed_fs S<br />

/usr/bin/<br />

Teraz musimt już tylko stworzyć na partycji roboczej katalog<br />

KNOPPIX/, a jeśli już taki mamy, to wykasować z niego<br />

plik KNOPPIX, oraz wykonać polecenie:<br />

# mkisofs -R /mnt/robocza/zrodla/|create_compressed_fsS<br />

– 65536 > /mnt/robocza/KNOPPIX/KNOPPIX<br />

Najbliższe pół godziny (lub więcej) możemy poświęcić na<br />

sprawy zupełnie nie związane z Knoppiksem, ponieważ<br />

tyle właśnie potrwa proces kompresji, podczas którego<br />

procesor naszego komputera będzie niemal w 100%<br />

zajęty.<br />

Jeśli mieliśmy odpowiednio dużo pamięci RAM i/lub<br />

swap, to proces powinien zakończyć się bez problemów,<br />

a jego efektem będzie plik /mnt/robocza/KNOPPIX/<br />

KNOPPIX. Teraz możemy przetestować naszego Knoppiksa.<br />

Jeśli modyfikowaliśmy pliki w obrazie boot.img, to mamy<br />

już ten plik na naszej partycji roboczej. Jeśli nie, to należy<br />

go przekopiować z płyty (z katalogu KNOPPIX). Teraz<br />

wystarczy włożyć do stacji dyskietek czystą, sformatowaną<br />

dyskietkę i wykonać polecenie:<br />

# dd if=/mnt/robocza/boot.img of=/dev/fd0<br />

Zostanie stworzona dyskietka startowa, która w „normalnej”<br />

wersji Knoppiksa znajduje się na płycie (w postaci<br />

pliku boot.img). Skrypt startowy na dyskietce poszukuje<br />

na wszystkich dostępnych napędach i partycjach katalogu<br />

KNOPPIX/, a w nim pliku KNOPPIX. Jeśli takowy plik<br />

zostanie znaleziony, to rozpoczyna dekompresję w locie<br />

Na DVD<br />

Na pierwszej płycie DVD został zamieszczony obraz ISO dystrybucji<br />

Knoppix 20040209, który można wykorzystać jako<br />

bazę do stworzenia własnego Knoppiksa.<br />

i uruchamianie Knoppiksa. Dlatego ważne było to, aby od<br />

samego początku pracować na oddzielnej partycji.<br />

Teraz wystarczy uruchomić komputer ze stworzonej<br />

przed chwilą dyskietki startowej i cieszyć się własnym<br />

dziełem. Jeśli efekt nie jest zadowalający, to cały proces<br />

przerabiania Knoppiksa trzeba będzie niestety powtarzać<br />

od początku. Jeżeli chcemy już stworzyć gotowy obraz do<br />

wypalenia na płycie, to należy jeszcze skopiować z płyty<br />

z oryginalnym Knoppiksem plik boot.cat na partycję<br />

roboczą. Można też przekopiować inne pliki, znajdujące<br />

się w katalogu KNOPPIX/ na płycie, ale nie będą one<br />

potrzebne do działania. Teraz trzeba jeszcze przekopiować<br />

pliki boot.img i boot.cat do katalogu KNOPPIX:<br />

# cp -f /mnt/robocza/boot.* /mnt/robocza/KNOPPIX/<br />

stworzyć katalog np. /mnt/robocza/moj_knoppix/ i przenieść<br />

do niego cały katalog KNOPPIX/:<br />

# mv /mnt/robocza/KNOPPIX/ /mnt/robocza/moj_knoppix/<br />

i wreszcie wydać polecenie:<br />

# mkisofs -pad -f -l -r -J -v -V "Mój własny KNOPPIX" S<br />

-b KNOPPIX/boot.img -c KNOPPIX/boot.cat -hide-rr-movedS<br />

-o .mnt/robocza/knoppix.iso ./mnt/robocza/moj_knoppix/<br />

a po kilku minutach na partycji roboczej będziemy mieli<br />

obraz płyty o nazwie knoppix.iso, gotowy do wypalenia<br />

na płycie CD.<br />

Zakończenie<br />

Niniejszy artykuł jest przewodnikiem dla osób zainteresowanych<br />

tym, aby Knoppix stał się tak wygodny, jak ich<br />

własna, zainstalowana na dysku dystrybucja. Początkującym<br />

użytkownikom polecam przede wszystkim lekturę<br />

podręczników man poleceń, których używaliśmy w trakcie<br />

pracy – pozwoli to lepiej zrozumieć, co tak naprawdę<br />

działo się w trakcie całego procesu, który opisywałem.<br />

Bardziej zaawansowanych i wymagających użytkowników<br />

być może zainteresuje artykuł „Knoppix Custom<br />

Kernel Howto” (dostępny niestety tylko w języku angielskim<br />

w serwisie www.knoppix.net). Ponadto, wszystkich<br />

zachęcam gorąco do zajrzenia do archiwum forum dyskusyjnego<br />

serwisu http://www.knoppix.net/ – jest to niewyczerpane<br />

źródło informacji.<br />

W Sieci:<br />

• Strona domowa projektu Knoppix:<br />

http://www.knopper.net/knoppix/<br />

• Nieoficjalna strona Knoppiksa:<br />

http://www.knoppix.net/<br />

• Oficjalna polska strona Knoppiksa:<br />

http://knoppix.7thGuard.net/<br />

28<br />

marzec 2004


Linux+ 03/2003 Linux+ 04/2003 Linux+ 05/2003<br />

Linux+ 09/2003<br />

Linux+ 10/2003<br />

Linux+ 06/2003<br />

Linux+ 07/2003 Linux+ 08/2003<br />

Linux+ 11/2003<br />

Linux+ 12/2003<br />

2000<br />

2001<br />

2002<br />

2003<br />

2004<br />

Numery archiwalne<br />

Prosimy o przesłanie kuponu pocztą lub faksem.<br />

Prosimy w odpowiednim polu zakreślić numery, które Państwo chcą zamówić.<br />

białe pola – 15 zł za egzemplarz<br />

żółte pola – 24 zł za egzemplarz<br />

1 2 3 4 5 6 7 8 9 10 11 12<br />

Linux+ 01/2004<br />

Linux+ 02/2004<br />

– rocznik 2000 (12 numerów) – 120 zł<br />

– rocznik 2001 (12 numerów) – 120 zł<br />

– rocznik 2002 (12 numerów) – 150 zł<br />

– rocznik 2003 (12 numerów) – 150 zł<br />

Imię i nazwisko, nazwa firmy ......................................................................<br />

Dokładny adres: ........................................................................................<br />

..................................................................................................................<br />

L+ 03/2004<br />

Wypełnia płatnik VAT. Oświadczam(y), że jestem(śmy) płatnikiem VAT i upoważniam(y)<br />

Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT bez<br />

podpisu odbiorcy.<br />

Software-Wydawnictwo Sp. z o.o.<br />

ul. Lewartowskiego 6, 00-190 Warszawa, Tel.: (22) 860 17 67<br />

pieczątka i podpis


dystrybucje linuksa<br />

Instalacja i konfiguracja<br />

SuSE Linux 9.0<br />

Piotr Truszkowski<br />

Wybór odpowiedniej dystrybucji Linuksa<br />

spędza nowym użytkownikom sen<br />

z oczu. Ogrom wyboru, jaki oferują nam<br />

producenci, stawia pytanie – czy akurat ta<br />

dystrybucja będzie dla mnie odpowiednia? Ci z Was, którzy<br />

wybiorą SuSE Linux, z pewnością się nie zawiodą. Opisywana<br />

dystrybucja oferuje wiele udogodnień dla każdej<br />

grupy użytkowników. Warto w tym miejscu wspomnieć<br />

o SuSE System Doctor (rewelacyjny program do naprawy<br />

systemu po jego uszkodzeniu) i programie YaST (narzędzie<br />

administracyjne systemu SuSE Linux, dzięki któremu<br />

możemy m.in. w bardzo prosty sposób instalować/usuwać<br />

aplikacje, skonfigurować kartę telewizyjną, skaner bądź<br />

firewall). Zainteresowanych ogólnym spojrzeniem na<br />

system i jego oceną, zapraszam do przeczytania recenzji<br />

obecnej w styczniowym numerze Linux+. Poniżej znajduje<br />

się opis instalacji systemu z myślą o polskim użytkowniku.<br />

Przygotowanie do instalacji<br />

Instalacja systemu SuSE Linux jest łatwa. Uruchamiamy<br />

komputer z płytki DVD. Pojawi się ekran powitalny.<br />

Poprzez wciśnięcie klawisza [F2] możemy wybrać, w jakiej<br />

rozdzielczości będzie przeprowadzana instalacja. W menu<br />

instalacyjnym obecnych jest kilka pozycji:<br />

• Boot from Harddisk – uruchomienie już zainstalowanego<br />

systemu z dysku twardego;<br />

• Installation – uruchomienie instalatora ze standardowymi<br />

opcjami (polecane głównie na notebookach);<br />

• Installation – ACPI disabled – uruchomienie instalatora<br />

z wyłączoną obsługą ACPI (polecane na domowych<br />

komputerach);<br />

• Installation – Safe Settings – uruchomienie instalatora<br />

z bezpiecznymi opcjami (uruchom, jeśli nie zadziałają<br />

poprzednie opcje instalacyjne);<br />

• Manual Instalation – instalacja w trybie tekstowym;<br />

• Rescue System – tryb naprawy systemu;<br />

• Memory Test – test pamięci RAM obecnej w komputerze<br />

(jeśli instalator zawiesza się bądź system pracuje<br />

niestabilnie, wybierz tą opcję – w zależności od ilości<br />

posiadanej pamięci, proces ten – z uwagi na swoją<br />

dokładność – może potrwać nawet kilka godzin).<br />

Po wybraniu metody instalacji, uruchomi się instalator<br />

systemu SuSE Linux. W pierwszej kolejności będziemy<br />

Rysunek 1. Ekran powitalny instalatora SuSE<br />

musieli wybrać język, w jakim instalator będzie się z nami<br />

porozumiewał. Niestety, brak jest języka polskiego, więc<br />

wybierzmy język angielski (English US). Po dokonaniu<br />

wyboru, klikamy na przycisk Accept. Uruchomi sie okienko<br />

z różnymi opcjami konfiguracyjnymi:<br />

• Mode – tryb instalacji;<br />

• Mamy tutaj do wyboru: New installation – nowa instalacja,<br />

Update an existing system – aktualizacja już zainstalowanego<br />

systemu, Repair Installed System – naprawa<br />

już zainstalowanej wersji SuSE 9.0, Boot installed system<br />

– uruchomienie zainstalowanego systemu;<br />

• Keyboard layout – wybór ustawień klawiatury;<br />

• Możemy zaakceptować domyślne ustawienia bądź<br />

zmienić je na polskie;<br />

• Mouse – wybór myszki;<br />

• Instalator powinien poprawnie wykryć model myszki.<br />

Jeśli tak się stało, zaakceptujmy ustawienia domyślne.<br />

Jeśli nie, należy wybrać odpowiadający nam model<br />

myszki.<br />

• Partitioning – bardzo ważna część, ponieważ dokonujemy<br />

w niej podziału dysku na partycje;<br />

• Software – wybór oprogramowania do instalacji;<br />

• Booting – ustawienia bootloadera;<br />

• Time Zone – wybór strefy czasowej i ustawienia<br />

zegara;<br />

• Language – wybór języka po instalacji.<br />

30<br />

marzec 2004


suse linux 9.0<br />

Nic nie stoi na przeszkodzie, abyśmy własnoręcznie wybrali<br />

potrzebne nam pakiety do zainstalowania – wybieramy<br />

jedną z trzech opcji instalacyjnych i dostosowujemy ją do<br />

swoich preferencji poprzez wybór opcji Detailed selection.<br />

Rysunek 2. Podział dysku na partycje<br />

Podział dysku na partycje<br />

SuSE Linux oferuje nam zaawansowany program do<br />

podziału dysku na partycje. Możemy zmniejszać partycje<br />

z Windows w celu otrzymania dostatecznej przestrzeni dyskowej<br />

do zainstalowania naszego systemu bądź utworzyć<br />

partycje na czystym dysku. W okienku, które pojawi się<br />

po wybraniu opcji Partitioning, wybieramy opcję Create<br />

custom partition setup, a następnie Custom partitioning.<br />

Przyjmijmy, że posiadamy dysk 40GB – 20GB to partycja<br />

z Windows, więc pozostałe 20GB możemy wykorzystać do<br />

instalacji naszego SuSE Linuksa. Dla typowego komputera<br />

domowego dobry jest następujący schemat:<br />

• obszar wymiany – swap – 300MB;<br />

• partycja główna – / – 6GB;<br />

• partycja domowa – /home – 13,7GB.<br />

Przy tworzeniu partycji / i /home będziemy musieli wybrać<br />

dla nich system plików. SuSE Linux oferuje nam m.in.: Ext2,<br />

Ext3, ReiserFS, JFS i XFS. Polecam JFS z uwagi na jego małą<br />

awaryjność, zadowalającą szybkość i solidne podstawy (JFS<br />

został stworzony przez firmę IBM). Po utworzeniu partycji,<br />

przejdźmy do procesu wyboru oprogramowania.<br />

Konfiguracja bootloadera<br />

Aby móc uruchomić nasz system, potrzebny nam będzie<br />

program zwany bootloaderem. Pozwoli on na wybór systemu<br />

operacyjnego, który chcemy uruchomić podczas startu<br />

naszego komputera. Domyślny bootloaderem w SuSE Linux<br />

jest GRUB, który stał się już standardem i wyparł starego<br />

bootloadera o nazwie LILO (jest on również dostępny<br />

w SuSE). Za wybór bootloadera odpowiada w menu instalacyjnym<br />

opcja Booting. Jeśli na dysku twardym posiadamy<br />

system Windows, instalator powinien poprawnie go<br />

wykryć i dodać do opcji konfiguracyjnych GRUB-a opcję<br />

„Windows”, po wybraniu której, podczas uruchomienia<br />

komputera, uruchomi się nam ten system operacyjny.<br />

Domyślne ustawienia zaproponowane przez instalator<br />

powinny być odpowiednie.<br />

Warto zwrócić uwagę na kilka rzeczy. Pierwszą z nich jest<br />

zmienna Default selection. Określa ona, który system operacyjny<br />

ustawiony jest jako domyślny. Jeśli posiadamy system<br />

Windows, zmienna go określająca będzie wymieniona jako<br />

DOS. Jeśli chcemy, aby domyślnym systemem był Windows,<br />

wybieramy opcję Default selection i klikamy na przycisk Edit.<br />

Pojawi się nam okienko z dostępnymi opcjami. Klikamy na<br />

opcję DOS i wybieramy Set as Default. Jeśli nie odpowiada<br />

nam opcja DOS, możemy zmienić ją na Windows. Klikamy<br />

w tym momencie na DOS i wybieramy Edit. W dziale Section<br />

Name klikamy na Edit i wpisujemy nazwę, która będzie<br />

nam pasowała. Zatwierdzamy wybór przyciskiem OK. Jeśli<br />

domyślnym systemem ma być Linux, możemy zostawić<br />

domyślne wartości zaproponowane przez instalator. Drugą<br />

ważną zmienną jest Available Sections. Zawarte są w niej<br />

wszystkie opcje pojawiające się przy starcie komputera. Jeśli<br />

na drugiej partycji posiadamy system Windows, zwróćmy<br />

uwagę, czy znajduje się tam opcja DOS, która pozwoli uruchomić<br />

Windows podczas startu komputera.<br />

Wybór oprogramowania<br />

SuSE oferuje nam trzy – w pełni konfigurowalne – stopnie<br />

instalacji oprogramowania:<br />

• Minimum system – zainstalowana zostanie sama podstawa,<br />

bez graficznego środowiska pracy (319,3MB);<br />

• Minimum graphical system – podstawa z zainstalowanym<br />

środowiskiem graficznym Window Maker<br />

(516,8MB);<br />

• Default system – zainstalowane zostanie środowisko<br />

graficzne KDE, pakiet biurowy OpenOffice.org,<br />

przeglądarki internetowe, pakiety graficzne i wiele<br />

innego przydatnego w codziennej pracy oprogramowania<br />

– opcja zalecana dla większości użytkowników<br />

(1,46GB).<br />

Rysunek 3. YaST – narzędzie administracyjne SuSE<br />

www.linux.com.pl<br />

31


dystrybucje linuksa<br />

dotyczące błędów w oprogramowaniu. Jeśli tak, zostanie<br />

nam zaproponowana możliwość ich pobrania. Warto z niej<br />

skorzystać.<br />

Rysunek 4. Instalacja oprogramowania<br />

Strefa czasowa<br />

Za wybór strefy czasowej i ustawienia czasu odpowiada<br />

opcja Time Zone. W pierwszej kolumnie wybieramy<br />

Europe, a następnie w drugiej Poland (miejsce naszego<br />

zamieszkania). Jeśli chcemy, aby nasz czas był zgodny<br />

z tym, który ustawiony jest w BIOS-ie naszego komputera,<br />

wybieramy local time przy opcji Hardware clock set to. Jeśli<br />

przy zmianie czas podany na dole zgadza się z naszymi<br />

oczekiwaniami, klikamy na przycisk Accept i przechodzimy<br />

do następnego punktu. Jeśli czas się nie zgadza, możemy<br />

go zmienić wybierając opcję Change Time or Date.<br />

Wybór języka<br />

Niestety w instalatorze SuSE Linux nie ma obsługi języka<br />

polskiego, ale będziemy mogli ustawić nasz ojczysty język<br />

później – zostanie to omówione w dalszej części tego przewodnika.<br />

Zostawmy język angielski.<br />

Instalacja pakietów<br />

Po zakończeniu wszystkich opcji konfiguracyjnych, klikamy<br />

na przycisk Accept. Instalator zapyta się nas, czy jesteśmy<br />

pewni, że wszystko wykonaliśmy poprawnie. Jeśli odpowiemy<br />

twierdząco – Yes, install, rozpocznie się proces tworzenia<br />

partycji i instalacji systemu na dysku twardym. Jeśli nie<br />

jesteśmy pewni wprowadzonych zmian bądź przypomniało<br />

się nam, że coś zrobiliśmy źle, możemy odpowiedzieć No<br />

i poprawić źle wprowadzone dane. W zależności od wybranych<br />

opcji instalacyjnych, procesora i pamięci RAM, instalacja<br />

może potrwać od 10 minut do kilku godzin.<br />

Po zainstalowaniu pakietów, przyjdzie czas na podanie<br />

hasła root-a, utworzenie użytkowników (warto zwrócić<br />

uwagę na opcję autologin – umożliwia ona zalogowanie<br />

użytkownika bez podawania hasła) i konfigurację urządzeń<br />

podłączonych do komputera, takich jak karta graficzna,<br />

dźwiękowa, sieciowa czy skaner. Jeśli mamy dostęp do<br />

Internetu, instalator po jego konfiguracji zaproponuje nam<br />

sprawdzenie poprawności ustawień. Po jej pomyślnym<br />

przejściu, pojawi się kolejna propozycja – sprawdzenia,<br />

czy na serwerach producenta pojawiły się jakieś łatki<br />

YaST<br />

Narzędziem administracyjnym w systemie SuSE Linux jest<br />

program YaST, dostępny w dwóch wersjach – tekstowej<br />

(YaST) i graficznej (YaST2). Jest to bardzo wygodny i bogaty<br />

w możliwości program, który pomoże nam w zadbaniu<br />

o porządek w systemie. YaST ma modularną budowę, co<br />

oznacza, że nie musimy instalować narzędzi do konfiguracji<br />

np. skanera, jeśli takiego urządzenia nie posiadamy.<br />

Możemy wybrać i zainstalować tylko te moduły, które będą<br />

nam naprawdę niezbędne. Dzięki oprogramowaniu YaST<br />

możemy m.in.:<br />

• skonfigurować nasze środowisko graficzne;<br />

• skonfigurować kartę dźwiękową, graficzną, sieciową,<br />

skaner i inne;<br />

• instalować/usuwać oprogramowanie;<br />

• uaktualniać nasz system;<br />

• skonfigurować serwery WWW, poczty, plików i drukarek,<br />

nazw;<br />

• i wiele, wiele więcej...<br />

Program jest wywoływany na dwa sposoby – możemy<br />

wybrać go w menu bądź wpisać jego nazwę w konsoli<br />

systemowej. Aby uruchomić YaST-a w trybie tekstowym,<br />

wpisujemy polecenie yast, natomiast jeśli chcemy poznać<br />

jego możliwości w trybie graficznym – yast2. Wszystkie<br />

wymienione komendy wykonujemy na koncie użytkownika<br />

root. Jeśli jesteśmy zalogowani jako zwykły użytkownik,<br />

możemy uruchomić konsolę systemową i wpisać: su -.<br />

System zapyta się nas o hasło. Po jego podaniu, otrzymamy<br />

na danej konsoli prawa root-a, co umożliwi nam uruchomienie<br />

YaST-a bez potrzeby graficznego przełączania się na<br />

konto administracyjne.<br />

Język polski w SuSE Linux<br />

Pomimo tego, iż podczas instalacji dystrybucji SuSE Linux<br />

nie możemy wybrać języka polskiego, bardzo łatwo dostosować<br />

do niego nasz nowo zainstalowany system. Posłuży<br />

nam do tego omówione wcześniej narzędzie – YaST. Logujemy<br />

się na użytkownika root, otwieramy konsolę systemową<br />

i wpisujemy komendę yast2. Następnie wybieramy:<br />

System -> Editor for /etc/sysconfig Files. Uruchomi się nam<br />

centrum zarządzania konfiguracją systemu. Wprowadzamy<br />

następujące zmiany:<br />

• Hardware:<br />

• Console -> Console_font: lat2-16.psf<br />

• Console -> Console_screenmap: 8859-2_to_<br />

uni.trans<br />

• Keyboard -> Keytable: pl<br />

• Keyboard -> Composetable: clear<br />

• Keyboard -> Yast_keyboard: polish,pc104<br />

32<br />

marzec 2004


suse linux 9.0<br />

• System:<br />

• Environment -> Language -> Rc_lang: pl_PL.ISO-8859-2<br />

• Environment -> Language -> rc_lc_all: pl_PL.ISO-8859-2<br />

Po wprowadzeniu zmian klikamy na finish i akceptujemy zmiany. Jeśli<br />

używamy środowiska KDE, musimy zainstalować pakiet z językiem polskim<br />

o nazwie kde3-i18n-pl. Dokonujemy tego wydając polecenie: yast2<br />

-i kde3-i18n-pl. Dla absolutnej pewności możemy także uruchomić program<br />

SaX2 (wpisując polecenie: sax2), będący narzędziem do konfiguracji<br />

środowiska X Window i sprawdzić, czy jako układ klawiatury mamy<br />

zaznaczony polski. I to wszystko. Zrestartujmy nasz system. Po restarcie<br />

środowisko graficzne powinno przywitać się z nami po polsku, a konsola<br />

systemowa nie powinna mieć problemów z polskimi ogonkami.<br />

Oprogramowanie<br />

Na płycie DVD z systemem SuSE Linux otrzymujemy ponad 4000 różnych<br />

aplikacji. Do ich instalacji i usuwania służy moduł Install/Remove<br />

Software obecny w programie YaST. Przypuśćmy, że chcemy zainstalować<br />

popularny program do obróbki grafiki – GIMP. Uruchamiamy więc<br />

YaST-a, wybieramy z menu opcję Software, a następnie Install/Remove<br />

Software. W lewym górnym rogu mamy rozwijaną listę. Wybieramy<br />

z niej Search i wpisujemy hasło gimp. Po krótkiej chwili instalator poda<br />

nam listę aplikacji zawierających w swojej nazwie hasło gimp. Zaznaczamy<br />

GIMP-a i klikamy na przycisk OK. Instalator pokaże nam, że<br />

GIMP jest zależny od innego oprogramowania i zapyta się, czy chcemy<br />

je doinstalować. Na koniec zostaniemy poproszeni o włożenie płytki.<br />

Załóżmy, ze GIMP znudził się nam i chcemy go usunąć. Postępujemy<br />

w podobny sposób jak podczas jego instalacji. Klikamy na otrzymaną<br />

nazwę prawym przyciskiem myszki i wybieramy Remove. Jeśli<br />

z GIMP-em połączone są jakieś inne programy, instalator wypisze je<br />

i zapyta się, co chcemy zrobić.<br />

Jeśli chcemy zaktualizować nasz system, posłużymy sie modułem<br />

Update System. Mamy tutaj do wyboru serwer, z którego będą pobierane<br />

pakiety, jak i sposób ich pobierania: automatyczny bądź manualny. Jeśli<br />

nasz SuSE pracuje w charakterze serwera, warto zainteresować się opcją<br />

automatycznego pobierania poprawek o określonej przez nas porze.<br />

Jeśli pobraliśmy z sieci jakiś pakiet RPM przygotowany dla dystrybucji<br />

SuSE Linux, możemy zainstalować go na dwa sposoby:<br />

• za pomocą polecenia rpm -ihv nazwa_pakietu.rpm;<br />

• za pomocą YaST-a poleceniem: yast2 -i nazwa_pkaietu.rpm (bądź<br />

yast -i nazwa pakietu.rpm w trybie tekstowym).<br />

• Ten sposób instalacji jest o tyle ciekawy, iż jeśli dany pakiet wymaga<br />

bibliotek, których nie mamy zainstalowanych w systemie, zakomunikuje<br />

to nam i poprosi o włożenie płytki, na której wymagany pakiet<br />

jest dostępny.<br />

Podsumowanie<br />

SuSE Linux jest dystrybucją Linuksa, której z pewnością warto poświęcić<br />

swoją uwagę. Określenie „niemiecka precyzja” nabiera w przypadku<br />

SuSE realnych kształtów. Co by nie mówić na temat komercyjności tego<br />

produktu (w Sieci nie są dostępne obrazy ISO), to trzeba przyznać, że<br />

Niemcy stworzyli system, którym mogą pochwalić się na całym świecie.<br />

Dobrej zabawy!<br />

www.linux.com.pl<br />

33


grafika<br />

GIMP 2.0<br />

Kamila Folta<br />

Po ponad trzech latach od wydania GIMP-a<br />

1.2, najpopularniejszego programu graficznego<br />

dostępnego dla systemu Linux oraz rodziny BSD,<br />

odpowiednika Photoshopa w Windows, dużo<br />

zmieniło się w projekcie. Świadczą o tym opisy modyfikacji<br />

dokonanych w kolejno wydawanych wersjach (gałąź rozwojowa<br />

– 1.3.x), które można prześledzić na witrynie http://<br />

mmmaybe.gimp.org/. W tej chwili możemy zapoznać się<br />

z wydaną na początku lutego wersją 2.0 pre3. Prace nadające<br />

ostateczny kształt aplikacji w dalszym ciągu trwają,<br />

jednak koncentrują się przede wszystkim na poprawianiu<br />

błędów, usuwaniu drobnych usterek oraz optymalizacji<br />

niektórych funkcji; nie należy się zatem spodziewać żadnych<br />

widocznych gołym okiem różnic między najnowszą<br />

wersją rozwojową a mającą niedługo nadejść wersją stabilną.<br />

W tym artykule przedstawię najciekawsze innowacje<br />

w GIMP-ie 2.0.<br />

Nowy GIMP<br />

Na pytanie, dla kogo przeznaczony jest nowy GIMP, można<br />

śmiało odpowiedzieć: dla wszystkich. Szczególnie będą<br />

nim zainteresowani graficy komputerowi, osoby trudniące<br />

się obróbką cyfrowych zdjęć, twórcy stron internetowych,<br />

ilustratorzy książek czy twórcy animacji komputerowych.<br />

Wszyscy ci, którzy chcą zajmować się tworzeniem cyfrowych<br />

obrazów oraz – być może – ich późniejszą publikacją,<br />

powinni zapoznać się z jego możliwościami w nowo<br />

wydanej wersji 2.0, znacznie w stosunku do poprzedniej<br />

rozbudowanymi.<br />

Program jest bardzo intuicyjny w użyciu, co w praktyce<br />

oznacza, że opanowanie „warsztatu technicznego” zajmuje<br />

stosunkowo niewiele czasu.<br />

Ponadto, GIMP jest produktem w pełni darmowym,<br />

rozwijanym jako Wolne Oprogramowanie na licencji GPL.<br />

Wobec istniejących na ryku komercyjnych programów do<br />

obróbki obrazów, dla wielu osób stanowi on wyjątkowo<br />

ciekawą i doskonale sprawdzającą się w praktyce alternatywę.<br />

Z punktu widzenia użytkownika korzystającego<br />

z wcześniejszych wersji GIMP-a, wersja 2.0 przyniosła<br />

Cechy GIMP-a 2.0:<br />

• obsługa modelu kolorów CMYK;<br />

• obsługa formatu SVG w ścieżkach;<br />

• obsługa wszystkich fontów dostępnych w systemie;<br />

• nowy interfejs użytkownika w oparciu o GTK+ 2.0;<br />

• rozszerzone wsparcie dla formatu .PSD (Adobe Photoshop)<br />

i .XCF (GIMP);<br />

• nowe i ulepszone narzędzia do tworzenia selekcji i ścieżek<br />

oraz wykonywania operacji na nich;<br />

• wiele nowych skryptów (głównie filtrów);<br />

• możliwość współistnienia z GIMP-em 1.2 w tym samym<br />

systemie;<br />

• wydzielenie zestawu wtyczek Video do oddzielnego<br />

modułu GAP.<br />

wiele istotnych zmian: spójny interfejs graficzny oparty<br />

na bibliotece GTK+ 2.0, ogromne możliwości konfiguracji<br />

środowiska pracy, udoskonalone narzędzie ścieżek, menu<br />

widoczne w oknie obrazu, skróty klawiszowe do wszystkich<br />

opcji menu oraz możliwość ich przedefiniowania,<br />

obsługę modelu kolorów CMYK, obsługę formatu SVG<br />

i wiele innych.<br />

Z punktu widzenia programisty ważną zmianą jest<br />

udostępnienie znacznie udoskonalonego API do biblioteki<br />

wtyczek libgimp w języku Python (rozszerzenie Gimp-<br />

Python). Dzięki niemu można uzyskać bezpośredni dostęp<br />

do takich obiektów, jak obraz, warstwa czy kanał, bez<br />

konieczności manipulowania ich numerami ID, jak ma to<br />

miejsce w języku skryptowym Script-Fu. Dodatkową zaletą<br />

O autorce:<br />

Autorka jest programistką. Zainteresowania: rysunek, grafika<br />

komputerowa, algorytmika, kryptografia, literatura s-f.<br />

W wolnych chwilach trenuje Aikido oraz zajmuje się tłumaczeniem<br />

dokumentacji języka Python.<br />

Kontakt z autorką: autorzy@linux.com.pl.<br />

Rysunek 1. Zastosowanie filtru rozkładającego obraz na<br />

składowe kolorów<br />

34<br />

marzec 2004


gimp 2.0<br />

import pliku SVG (Scallable Vector Graphics). SVG jest<br />

zaproponowanym przez W3C i opartym na języku XML<br />

formatem do zapisu grafiki wektorowej, który powoli staje<br />

się nowym standardem graficznym. Główną zaletą formatu<br />

SVG jest jego powszechna obsługa przez istniejące aplikacje,<br />

m.in. przez programy graficzne firmy Adobe.<br />

W ramach projektu GNOME powstał doskonały program<br />

do tworzenia grafiki wektorowej, oparty na SVG – Sodipodi.<br />

Połączenie dwóch znakomitych programów graficznych,<br />

GIMP-a i Sodipodi, otwiera przed artystami zupełnie nowe<br />

możliwości. Sodipodi oferuje szeroką paletę wygodnych<br />

i efektywnych narzędzi do tworzenia grafiki wektorowej,<br />

którą w ostatecznym kształcie możemy następnie przenieść<br />

do GIMP-a i wkomponować w obraz rastrowy.<br />

Rysunek 2. Połączenie warstw daje w wyniku obraz wejściowy<br />

użycia rozszerzenia jest fakt, że nie narzuca ono konieczności<br />

korzystania wyłącznie z bazy procedur PDB (Procedural<br />

Database), gdyż pozwala na użycie całej biblioteki libgimp<br />

i zapewnia dostęp do wielu funkcji niższego poziomu.<br />

Obsługa modelu kolorów CMYK<br />

Jedną z istotnych nowości w GIMP-ie, szczególnie dla osób<br />

mających zamiar drukować swoją pracę, jest możliwość<br />

używania modelu kolorów CMYK oraz przekształcanie do<br />

tego modelu obrazu utworzonego wcześniej przykładowo<br />

w modelu RGB. Odpowiedni filtr można znaleźć w menu<br />

Filtry->Kolory->Rozłożenie.<br />

Jego działanie polega na przekształceniu „źródłowego”<br />

modelu kolorów obrazu (np. RGB) do modelu „docelowego”<br />

(np. CMYK). Po przekształceniu nowy obraz jest złożony<br />

z ciągu warstw reprezentujących składowe w modelu<br />

docelowym. Co ciekawe, filtr ten oferuje konwersję do<br />

innych modeli kolorów; na liście znajdziemy m.in.: RGB,<br />

RGBA, CMY, CMYK, HSV, Alfa, LAB, YCbCr_ITU_R470.<br />

Operacja rozkładania na składowe modelu jest operacją<br />

odwracalną – do połączenia warstw służy filtr w menu<br />

Filtry->Kolory->Złożenie.<br />

Biorąc pod uwagę ogromne zainteresowanie użytkowników<br />

GIMP-a tą właśnie funkcją, można przewidywać, że<br />

jej włączenie do wersji 2.0 zostanie uznane za jedną z najważniejszych<br />

zmian.<br />

Należy przy tym podkreślić, że GIMP 2.0 nadal nie<br />

obsługuje modelu CMYK w taki sposób, jak np. słynny<br />

Photoshop, czyli jako jednego z trybów pracy z obrazem. To<br />

chyba najpoważniejszy z mankamentów GIMP-a z punktu<br />

widzenia osób chcących go wykorzystać w poligrafii.<br />

Obsługa formatu SVG<br />

Istniejące w GIMP-ie narzędzie służące do tworzenia ścieżek<br />

(opisanych wektorowo przy użyciu krzywych Beziera)<br />

uzyskało w wersji 2.0 niezwykle wartościowe rozszerzenie<br />

– każdą ze ścieżek można obecnie zapisać w formacie SVG.<br />

Dostępne jest również utworzenie nowej ścieżki poprzez<br />

Fonty w GIMP-e<br />

Pobieranie informacji o czcionkach odbywa się w GIMPie<br />

2.0, podobnie jak w większości nowoczesnych programów<br />

działających pod X11, w oparciu o program o nazwie<br />

Font-config. W pliku konfiguracyjnym /etc/fonts/font.conf<br />

znajdują się informacje dotyczące zainstalowanych w systemie<br />

czcionek (zapisane w formacie XML), w szczególności<br />

zaś ścieżki zawierających je katalogów. Jednym z nich jest<br />

~/.fonts, czyli podkatalog katalogu domowego bieżącego<br />

użytkownika.<br />

W przypadku, gdy chcemy dodać potrzebną czcionkę<br />

do istniejącego zestawu, wystarczy umieścić ją w tym<br />

Historia GIMP-a<br />

W grudniu 2000 roku rozpoczęła się nowa era w dziejach<br />

jednego z najpopularniejszych programów do obróbki grafiki<br />

o nazwie GIMP (GNU Image Manipulation Program). Wtedy<br />

to, po wydaniu GIMP-a 1.2, Sven Neumann i Michael Natterer<br />

wysłali na listę dyskusyjną gimp-developer dokument pt.<br />

„The future of The GIMP” („Przyszłość GIMP-a”). Stanowił on<br />

swoistą deklarację twórców programu dotyczącą jego dalszego<br />

rozwoju.<br />

GIMP 1.2.x<br />

Linia wydań GIMP-a 1.2.x była uznawana powszechnie za<br />

linię stabilną (ang. Maintanance Branch) i stanowiła pierwszą<br />

z opisanych przez autorów dokumentu gałęzi GIMP-a. Dalszy jej<br />

rozwój miał być ograniczony do drobnych poprawek istniejącego<br />

kodu, a nowe wydania (wersje 1.2.x) mogłyby pojawiać się<br />

wyłącznie w przypadku znalezienia poważnych błędów.<br />

GIMP 1.3.x<br />

Linia wydań GIMP-a 1.3.x miała być linią „roboczą”. Jednym<br />

z podstawowych celów tego wydania GIMP-a było oparcie kodu<br />

na bibliotece GTK+ w wersji 2.0 oraz oczyszczenie wewnętrznych<br />

struktur danych. Zarówno zestaw realizowanych zadań,<br />

jak i wygląd programu, miały pozostać bez większych zmian.<br />

GIMP 2.0.x<br />

Wizja GIMP-a 2.0 w oczach jej twórców odsunięta była dość<br />

daleko w przyszłość, dlatego plany jej dotyczące nie zostały<br />

zbyt wyraźnie określone. Najistotniejsze wydawało się użycie<br />

bibliotek GEGL (do przetwarzania obrazu) oraz GCim (rozszerzenie<br />

XML-a dla GTK).<br />

www.linux.com.pl<br />

35


grafika<br />

właśnie katalogu. Ponieważ GIMP korzysta z font-configa,<br />

dodana czcionka będzie w nim natychmiast widoczna (ze<br />

względu na fakt zapisywania dostępnych czcionek w pliku<br />

cache, może okazać się konieczne ponowne zbudowanie<br />

pliku informacji o czcionkach; należy w tym celu uruchomić<br />

program fc-cache z parametrem będącym nazwą katalogu,<br />

w którym znajduje się plik z czcionką).<br />

W GIMP-ie 2.0 dużą uwagę poświęcono wykorzystywaniu<br />

czcionek True Type z lokalnym kodowaniem. Wprowadzono<br />

obsługę m.in. tak odległych od naszego systemu<br />

kodowania jak Indonezyjski czy Koreański. Najważniejsze<br />

dla nas jest jednak to, że bardzo powiększyła się liczba<br />

dostępnych czcionek z polskimi znaczkami, których zastosowanie<br />

nie sprawia żadnego problemu.<br />

Interfejs<br />

Spójrzmy na wspomnianą wersję rozwojową i prześledźmy<br />

ważniejsze zmiany w odnowionym interfejsie użytkownika,<br />

a także nowości i ciekawostki, o których po prostu warto<br />

wiedzieć, np. dodanie trybu pełnoekranowego (standardowo<br />

opcja ta dostępna jest pod klawiszem [F11]).<br />

Ikonki<br />

Już pierwszy rzut oka na główne okno programu, zawierające<br />

zestaw ikon narzędziowych, wystarczy, aby docenić<br />

estetyczny aspekt przejścia na GTK+ 2.x. Nowe, kolorowe<br />

ikonki narzędzi to tylko początek listy niespodzianek.<br />

Rozbudowane menu główne, okna dialogowe narzędzi<br />

do obróbki kolorów czy też menu udostępniające operacje<br />

na obrazie lub warstwie, zostały ożywione dzięki umieszczeniu<br />

przy nich reprezentujących je ikon, wykonanych<br />

z niemal artystycznym kunsztem.<br />

Menu<br />

Dostęp do opcji menu, realizowany od zawsze poprzez<br />

kliknięcie prawym przyciskiem w obszarze okna z obrazem,<br />

doczekał się nowego wcielenia. Będą nim szczególnie<br />

zainteresowani ci użytkownicy GIMP-a, którzy dotychczasowe<br />

menu uważali za niewygodne w obsłudze. Można je<br />

Rysunek 3. Używając Nautilusa można szybko przejrzeć<br />

zainstalowane w systemie czcionki<br />

Rysunek 4. Stare (po lewej) i nowe (po prawej) okno narzędziowe<br />

programu GIMP<br />

teraz zobaczyć na pasku menu znajdującym się w oknie<br />

z obrazem. Menu kontekstowe będzie w dalszym ciągu<br />

dostępne pod prawym przyciskiem myszy, dzięki czemu<br />

zmiana ta nie będzie kłóciła się z dotychczasowymi przyzwyczajeniami<br />

zaawansowanych użytkowników. Pełne<br />

entuzjazmu wypowiedzi osób korzystających z wersji 1.3<br />

świadczą o tym, że zmiana ta została przyjęta z radością,<br />

a w niektórych przypadkach również z głębokim oddechem<br />

ulgi.<br />

Zakładki<br />

Rewolucyjną zmianę, pozwalającą na dostosowanie środowiska<br />

GIMP do własnych, indywidualnych potrzeb, stanowią<br />

zakładki, dzięki którym możliwe jest skonfigurowanie<br />

zawartości okien dialogowych.<br />

Najważniejszą cechą zakładek, decydującą o ich<br />

przydatności, jest mobilność – zakładki można przenosić<br />

między oknami dialogowymi, co daje niezwykłe wprost<br />

możliwości konfiguracji „miejsca pracy” w sposób, który<br />

odpowiada użytkownikowi najbardziej. Każda z zakładek<br />

znajdujących się w oknach dialogowych może zostać<br />

dodana lub usunięta przy pomocy menu kontekstowego<br />

zakładki. Inne opcje, zawarte w tym menu, pozwalają na<br />

zmianę sposobu etykietowania zakładek. Widocznym elementem<br />

identyfikującym zakładkę może być tekst, ikona<br />

lub ikona wraz z tekstem. Ikony występują w dziewięciu<br />

różnych rozmiarach; elementy, które prezentuje zakładka<br />

(np. Gradienty, Pędzle czy Czcionki) można wyświetlić<br />

w postaci listy lub siatki (tabeli).<br />

Skróty klawiszowe<br />

Skróty klawiszowe zdefiniowane w programie pozostaną<br />

prawdopodobnie takie same, przy czym do listy znanych<br />

skrótów dodano kilka nowych (np. możliwość obcięcia<br />

obrazu lub warstwy do granicy zaznaczenia). Przyzwyczajenia,<br />

które zdążyliśmy nabyć podczas pracy z poprzednią<br />

wersją programu, a które być może stały się naszą drugą<br />

naturą, będą wobec tego w dalszym ciągu pomocne.<br />

W Internecie pojawiła się ostateczna wersja listy skrótów<br />

klawiszowych dla poleceń występujących w GIMP-ie 2.0,<br />

36<br />

marzec 2004


gimp 2.0<br />

Rysunek 5. Efekt przejścia na bibliotekę GTK+ 2.x na przykładzie<br />

okna dialogowego służącego do modyfikacji poziomów kolorów<br />

obrazu (stare – po lewej, nowe – po prawej stronie)<br />

dostępna pod adresem http://www.webone.com.au/~oc/<br />

gimp/keybindings.pdf.<br />

GIMP umożliwia dynamiczne przypisanie skrótów klawiszowych<br />

do poleceń znajdujących się w menu, co pozwala<br />

na łatwą zmianę domyślnych wartości skrótów. Inaczej niż<br />

w wersji 1.2, możliwość taka jest domyślnie wyłączona. Aby<br />

móc z niej korzystać, należy ją włączyć w oknie „Preferencje”<br />

(Preferencje -> Interfejs -> Dynamiczne Skróty klawiszowe).<br />

Istnieje również możliwość przywrócenia standardowych<br />

skrótów klawiszowych bez konieczności ponownego uruchomienia<br />

GIMP-a, a także automatycznego zapisywania<br />

skrótów przy zakończeniu programu oraz ich automatycznego<br />

ładowania przy jego uruchamianiu.<br />

Preferencje<br />

Dostosowanie środowiska pracy w GIMP-ie do indywidualnych<br />

upodobań nie byłoby możliwe bez pomocy rozbudowanego<br />

okna „Preferencje”. Podział opcji na kategorie<br />

został zmieniony w taki sposób, aby korzystanie z nich<br />

stało się w nowej wersji jeszcze łatwiejsze i bardziej intuicyjne.<br />

Zmieniono położenie opcji znajdujących się w kategorii<br />

„Session” (sesja) (zapisanie położenia okien lub stanu urządzenia<br />

przed zakończeniem programu) – opcje te zostały<br />

przeniesione do kategorii „Interfejs”.<br />

Do istniejącej wcześniej możliwości wyboru informacji<br />

pojawiających się na pasku tytułowym okna z obrazem,<br />

została dodana możliwość konfiguracji informacji pojawiających<br />

się na pasku stanu. Do zapisania tych informacji<br />

używany jest prosty format tekstowy. Duża liczba udostępnionych<br />

wzorców może służyć jako podstawa do definiowania<br />

oraz zapisywania własnych wzorców.<br />

Dodano również możliwość określenia koloru otaczającego<br />

widoczną część płótna do rysowania. Kolor ten<br />

może być pobierany z bieżącego, stosowanego w systemie<br />

motywu, może być taki sam, jak kolor jasnego lub ciemnego<br />

zaznaczenia, lub ustalony dowolnie przez użytkownika.<br />

Ustawienie to dotyczy zarówno widoku obrazu w trybie<br />

okienkowym, jak i widoku pełnoekranowego. Dla każdego<br />

z tych widoków można ponadto określić widoczność takich<br />

elementów, jak paski menu, stanu i przewijania oraz pionowe<br />

i poziome linijki.<br />

Do opcji regulujących stopień użycia zasobów została<br />

dodana opcja „Maksymalna pamięć dla historii operacji”.<br />

Pozwala ona na określenie wielkości pamięci, jaka może<br />

zostać użyta do przechowania informacji o operacjach<br />

wykonanych podczas pracy. Jeżeli pamięć ta zostanie całkowicie<br />

wykorzystana, informacje o części z wykonanych<br />

w przeszłości operacji zostaną utracone i nie będzie możliwe<br />

ich cofnięcie.<br />

Nowością jest również możliwość wybrania dowolnego<br />

spośród motywów zdefiniowanych w kategorii „Interfejs”.<br />

W chwili obecnej oprócz motywu domyślnego znajduje się<br />

tam jeszcze motyw „Small”, pozwalający na zmniejszenie<br />

wielkości elementów graficznych GTK, dzięki czemu na<br />

pulpicie pozostaje więcej miejsca na rozmieszczenie np.<br />

okien z grafiką. W oknie preferencji można także skonfigurować<br />

domyślną siatkę obrazu. Konfigurację siatki można<br />

poza tym ustalać dla każdego obrazu korzystając z opcji<br />

menu Obraz -> Skonfiguruj siatkę.<br />

Prawie wszystkie zmiany dokonane w oknie „Preferencje”<br />

są widoczne natychmiast, bez konieczności ponownego<br />

uruchamiania programu.<br />

Narzędzia<br />

Wśród nowych opcji narzędzi można znaleźć prawdziwe<br />

„perełki”. Docenią je wszyscy użytkownicy, którzy z GIMPem<br />

pracują na co dzień i dla których nawet drobne poprawki<br />

wprowadzone w nowej wersji znacznie ułatwiają pracę.<br />

Przesuwanie<br />

Na ciekawe nowości można natknąć się wśród narzędzi,<br />

które pozornie nic nowego nie mogą zaoferować. Do takich<br />

narzędzi należy na przykład narzędzie „Move” (Przesunięcie<br />

– klawisz [M]). Można je wykorzystać do przesuwania<br />

Rysunek 6. Zakładki pozwalają na dowolną konfigurację narzędzi<br />

i widoków, dostosowując środowisko pracy do aktualnych potrzeb<br />

(przykładowa konfiguracja zakładek w GIMP-ie używana przez<br />

autorkę)<br />

www.linux.com.pl<br />

37


grafika<br />

Rysunek 7. Zakładki można swobodnie zagnieżdżać wewnątrz<br />

i przemieszczać pomiędzy oknami, zwanymi „dokami”<br />

trzech rodzajów obiektów: warstw, zaznaczeń oraz ścieżek.<br />

Przesunięcie dotyczy obiektów takiego typu, jaki został<br />

wybrany w opcjach narzędzia – otrzymujemy je po kliknięciu<br />

lewym klawiszem na ikonce narzędzia (typy obiektów<br />

reprezentowane są przez trzy ikony). Możliwa jest również<br />

zmiana typu przesuwanych obiektów w trakcie używania<br />

tego narzędzia: domyślnie wybranym typem jest „warstwa”;<br />

wciśnięcie i przytrzymanie klawisza [Alt] zmienia typ obiektu<br />

na „zaznaczenie”, natomiast wciśnięcie i przytrzymanie<br />

klawisza [Ctrl] powoduje, że przesuwane będą obiekty typu<br />

„ścieżka”. Działanie narzędzia może być dodatkowo modyfikowane<br />

poprzez przyciśnięcie klawisza [Shift], które powoduje<br />

zmianę sposobu wybierania obiektu do przesunięcia<br />

– możemy wybrać obiekt (ścieżkę, warstwę) aktywny (tj.<br />

wybrany na liście warstw / ścieżek) lub obiekt, nad którym<br />

w danym momencie znajduje się wskaźnik myszy (czy<br />

innego używanego narzędzia). „Przesunięcie” może ponadto<br />

zostać uaktywnione w czasie, gdy inne narzędzie jest narzędziem<br />

bieżącym – zachowanie takie można uzyskać poprzez<br />

naciśnięcie i przytrzymanie spacji. Liczba wszystkich możliwych<br />

kombinacji trybów działania tego narzędzia może<br />

przyprawić o ból głowy. Niewątpliwie jednak opanowanie<br />

ich wszystkich daje ogromną swobodę działania i pozwala<br />

na zwiększenie efektywności pracy.<br />

Dla przykładu, otwórzmy dowolny rysunek, klawiszem<br />

[R] uaktywnijmy zaznaczanie prostokątnych obszarów,<br />

wykonajmy zaznaczenie, a następnie, po wciśnięciu klawisza<br />

[M] i wybraniu odpowiedniego typu obiektu, przesuńmy<br />

to zaznaczenie.<br />

Zaznaczanie<br />

Trudno wyobrazić sobie pracę z programem graficznym<br />

bez możliwości zaznaczania pewnych obszarów obrazu<br />

i wykonywania na nich operacji graficznych. W GIMP-ie<br />

do zaznaczania obszarów służy kilka narzędzi: zaznaczenie<br />

obszarów prostokątnych, zaznaczenie obszarów eliptycznych,<br />

odręczne zaznaczanie obszarów, zaznaczanie sąsiadujących<br />

obszarów, zaznaczanie przy użyciu krzywych<br />

Beziera oraz zaznaczanie kształtów w obrazie. Do okna<br />

dialogowego prezentującego opcje aktualnie wybranego<br />

narzędzia do wyboru fragmentu obrazu dodano elementy<br />

udostępniające jeden z czterech dostępnych trybów narzędzia:<br />

zastępowanie, dodawanie, odejmowanie bądź przecinanie<br />

zaznaczenia.<br />

Jako ciekawostkę służącą każdemu, kto regularnie<br />

posługuje się zaznaczeniami, warto wskazać na Edytor<br />

zaznaczenia (Okna dialogowe -> Edytor zaznaczenia),<br />

będący nowym okienkiem dialogowym, łączącym<br />

w jednym miejscu zestaw operacji związanych z zaznaczaniem:<br />

zaznaczanie całego obrazu, rezygnacja z zaznaczenia,<br />

odwrócenie zaznaczenia, zapisanie zaznaczenia do kanału,<br />

zapisanie zaznaczenia do ścieżki oraz obcięcie zaznaczenia.<br />

Dla przykładu, otwórzmy dowolny obrazek, wybierzmy<br />

myszką z narzędzi zaznaczanie obszarów według kolorów,<br />

a następnie kliknijmy w dowolny fragment obrazka – zostanie<br />

zaznaczony obszar o tym samym kolorze.<br />

Przekształcenia<br />

Narzędzie, dzięki któremu możliwe było przeskalowanie,<br />

obrócenie, ścięcie oraz nadanie perspektywy (w zależności<br />

od wyboru odpowiedniej opcji narzędzia) zostało w GIMPie<br />

2.0 zastąpione serią czterech narzędzi, przy czym każde<br />

z nich odpowiada za wykonanie jednego z wymienionych<br />

przekształceń. Dzięki tej zmianie możliwe stało się<br />

umieszczenie w oknie dialogowym „Opcje narzędzia” opcji<br />

właściwych dla określonego przekształcenia. Właściwości<br />

przekształceń mogą być teraz niezależnie zapamiętywane.<br />

Rysunek 8. Możliwość aktualizowania większości ustawień<br />

programu bez konieczności jego ponownego uruchamiania<br />

stanowi cenną zaletę GIMP-a – okno preferencji oferuje wiele<br />

nowych i ciekawych opcji, z którymi warto się zapoznać<br />

38<br />

marzec 2004


Rysunek 9. Edytor zaznaczenia pozwala na jego podgląd oraz na<br />

wykonywanie operacji na zaznaczeniu<br />

Nowością wśród opcji narzędzi jest możliwość wyboru<br />

algorytmu interpolacji (brak interpolacji, interpolacja liniowa<br />

oraz sześcienna), wykorzystywanego do renderowania<br />

przekształconego obrazu oraz wyboru widoku siatki<br />

przekształcenia (brak siatki, określenie liczby linii siatki,<br />

określenie odległości między liniami siatki), dostępnych<br />

w postaci list rozwijanych.<br />

Kolejnym ważnym udoskonaleniem jest możliwość<br />

zastosowania przekształcenia nie tylko do bieżącej warstwy,<br />

jak miało to miejsce w GIMP-ie 1.2, lecz także do bieżącego<br />

zaznaczenia oraz do bieżącej ścieżki. Ta ostatnia cecha staje<br />

się szczególnie istotna dla twórców intensywnie korzystających<br />

z narzędzia służącego do tworzenia ścieżek.<br />

Dla przykładu, otwórzmy dowolny rysunek, klawiszem<br />

[E] uaktywnijmy zaznaczanie eliptycznych obszarów, wykonajmy<br />

zaznaczenie, a następnie, po wciśnięciu klawisza<br />

[Shift]+[R] i wybraniu odpowiedniego typu obiektu, obróćmy<br />

to zaznaczenie.<br />

Narzędzie ścieżek<br />

Nowa wersja tego narzędzia już na pierwszy rzut oka<br />

wydaje się być łatwiejsza w obsłudze niż ta, do której zdążyliśmy<br />

się już przyzwyczaić. Odświeżony interfejs pozwala<br />

na manipulację poszczególnymi węzłami w sposób, który<br />

nie wymaga już przełączania trybu pracy w oknie z opcjami<br />

narzędzia. Wszystkie operacje: dodawanie, usuwanie<br />

oraz przemieszczanie węzłów, dodawanie nowych ścieżek<br />

i modyfikacja kształtu krzywych tworzących ścieżkę, są<br />

dostępne przy pomocy klawiszy [Alt], [Shift] i [Ctrl]. Ścieżki,<br />

traktowane w sposób zbliżony do sposobu traktowania<br />

warstw, można wyświetlać lub ukrywać w głównym<br />

widoku obrazu, włączając lub wyłączając dobrze znaną<br />

ikonę widoczności obiektu (przedstawiającą oko) na liście<br />

zdefiniowanych ścieżek. Ponadto, każdą taką ścieżkę<br />

można narysować, stosując pociągnięcie po ścieżce, którego<br />

szczegóły należy określić przy pomocy okna dialogowego<br />

„Wybór stylu pociągnięcia”.<br />

Wtyczki<br />

Wszystkim tym, którzy poszukują nowych wrażeń, polecam<br />

stronę http://registry.gimp.org/, zawierającą zestaw wtyczek<br />

tworzonych przez ludzi, którzy uznali, że z możliwości roz-<br />

www.linux.com.pl<br />

39


grafika<br />

szerzenia GIMP-a warto skorzystać. Wtyczki, które można<br />

tam znaleźć, podzielone są według kategorii (renderowanie,<br />

szumy, mapy kolorów, opcje kanałów, transformacje,<br />

rozmywanie, artystyczne) oraz typu (dotyczące różnych<br />

wersji GIMP-a oraz utworzone przy użyciu różnych języków:<br />

Pythona, Perla czy Script-Fu). Przykładowo, w kategorii<br />

wtyczek „artystycznych” można znaleźć takie, dzięki<br />

którym nasz obraz zostanie otoczony ramką albo szeregiem<br />

„rozmytych” punktów, czy też takie, które dodają do obrazu<br />

efekty świetlne (światło punktowe oraz kierunkowe) oraz<br />

refrakcyjne; z kategorii „obraz” można ściągnąć wtyczkę<br />

oferującą trójkątne zaznaczenie czy też tworzącą obrazy<br />

stereoskopowe, albo taką, która dzieli obraz na n równych,<br />

prostokątnych części (n = col * row, col – liczba kolumn,<br />

row – liczba wierszy).<br />

GIMP Animation Package<br />

Niedawno pojawiła się informacja o wydaniu pierwszej<br />

wersji pakietu do animacji w GIMP-ie – GIMP Animation<br />

Package dla GIMP-a-2.0 (ftp://ftp.gimp.org/pub/gimp/plugins/v2.0/gap/testing/<br />

). Pakiet ten znacznie rozszerza możliwości<br />

GIMP-a w obszarze tworzenia animacji, które powstają<br />

w oparciu o zestaw ramek (w wersji 1.2 był integralną częścią<br />

GIMP-a). Niestety, nie jest jeszcze dostępna strona poświęcona<br />

temu pakietowi, która zawierałaby jego pełną dokumentację<br />

wraz z przykładami użycia. Ponieważ jest to jedna<br />

z pierwszych wtyczek napisanych dla GIMP-a 2.0, przyjrzymy<br />

się jej dokładniej.<br />

Główną ideą GIMP-GAP-a, będącego w rzeczywistości<br />

nie jedną, lecz zbiorem wielu wtyczek, stanowi możliwość<br />

dokonywania operacji na zbiorze obrazów, podobnie jak<br />

operacji na obrazie pojedynczym. Każda ramka animacji<br />

może posiadać wiele warstw; między ramkami można przemieszczać<br />

się przy pomocy skrótu klawiszowego, a wyko-<br />

Rysunek 11. Narzędzie służące do definiowania ścieżek,<br />

po których poruszają się animowane obiekty i zestaw wtyczek<br />

w pakiecie GIMP GAP<br />

nywane na obrazie operacje mogą być automatyczne<br />

propagowane do wszystkich ramek z wybranego zakresu.<br />

Ramki wideo mogą być utworzone na kilka sposobów:<br />

na podstawie pojedynczego pliku (.xcf ) (tworzona jest<br />

określona liczba kopii), na podstawie obrazu zawierającego<br />

wiele warstw (wówczas każda z warstw staje się klatką<br />

animacji) oraz na podstawie zbioru istniejących w systemie<br />

plików obrazów, pod warunkiem zachowania określonej<br />

konwencji nazw (taki sam przedrostek, po którym znajduje<br />

się numer klatki, np. anim_001.xcf, anim_002.xcf itd.). Do<br />

przydatnych podczas tworzenia animacji narzędzi należy<br />

bez wątpienia MovePath, służący do określania ścieżek, po<br />

których będą poruszały się animowane obiekty.<br />

Przejścia między ramkami opisane są przy pomocy<br />

szeregu parametrów, określających skalowanie, obrót czy<br />

przekształcenie perspektywy, która mają się dokonać na<br />

animowanym obiekcie. Wtyczki oferują również możliwość<br />

konwersji ramek do obrazu wielowarstwowego, możliwość<br />

zastosowania operacji typowych dla pojedynczej warstwy<br />

do wszystkich warstw ramek z pewnego zakresu (ustalenie<br />

widoczności, łączenie, zmiana kolejności, dodawanie<br />

masek warstwy) czy użycia efektu bluebox, który pozwala<br />

na uczynienie wybranego koloru przezroczystym.<br />

Utworzoną animację można wyświetlić przy użyciu<br />

wtyczki Playback, ustalając takie parametry, jak np. rozmiar,<br />

szybkość odtwarzania, zakres animowanych ramek<br />

czy zapętlenie.<br />

W Sieci:<br />

Rysunek 10. Okno dialogowe „Wybór stylu pociągnięcia”<br />

umożliwia zdefiniowanie szczegółów rysowania pociągnięcia dla<br />

wybranej ścieżki<br />

• Strona domowa GIMP-a:<br />

http://www.gimp.org/<br />

• Dokument „Przyszłość GIMP-a”:<br />

http://kt.zork.net/gimp/gd20010522_43.html<br />

• Nauka GIMP-a:<br />

http://www.gimp.signs.pl/gimpowanie.shtml<br />

http://www.artgabi.com.pl/gimp_tutoriale.html<br />

40<br />

marzec 2004


grafika<br />

Adobe Photoshop i Linux<br />

Piotr Truszkowski<br />

Adobe Photoshop to profesjonalny pakiet graficzny,<br />

znany na całym świecie. Pomimo tego,<br />

iż na Linuksie mamy inne programy tego typu<br />

(np. omawiany w tym numerze GIMP), to<br />

Photoshop stał się standardem w studiach graficznych.<br />

Czemu nie pokusić się o uruchomienie tego pakietu graficznego<br />

na naszym Linuksie?<br />

Wine<br />

Aby rozpocząć naszą przygodę z Photoshopem, musimy<br />

zaopatrzyć się w pakiet Wine, który jest próbą przeniesienia<br />

API Windows na systemy uniksowe, w tym Linuksa.<br />

Wykorzystajmy w tym celu wersję Wine-20031212, ponieważ<br />

w nowszych edycjach napotkano trochę problemów.<br />

Rozpoczynamy od udania się na stronę projektu, dostępną<br />

pod adresem http://www.winehq.org/. Z menu Download<br />

wybieramy Source i jeden z dostępnych serwerów<br />

lustrzanych, z którego pobierzemy wymienioną wcześniej<br />

wersję Wine. Po ściągnięciu pliku (znajduje się również<br />

na płycie CD i DVD), wydajemy komendę tar -xzvf Wine-<br />

20031212.tar.gz, dzięki której archiwum zostanie rozpakowane.<br />

Udajemy się do katalogu wine-20031212:<br />

cd wine-20031212<br />

Czeka nas teraz kompilacja Wine'a. Potrzebne nam będą:<br />

• jądro w wersji co najmniej 2.2.x;<br />

• pakiet X11 development;<br />

• GCC w wersji co najmniej 2.7.2;<br />

• opcjonalnie, jeśli chcemy korzystać z drukowania:<br />

CUPS i CUPS-devel.<br />

Listing 1. Określenie wersji Windows<br />

[Version]<br />

; Windows version to imitate S<br />

(win95,win98,winme,nt351,S<br />

nt40,win2k,winxp,win2k3,win20,win30,win31)<br />

;"Windows" = "win98"<br />

; DOS version to imitate<br />

;"DOS" = "6.22"<br />

Rysunek 1. Uruchomienie Adobe Photoshopa<br />

Wymienione powyżej pakiety są dostępne w większości<br />

popularnych dystrybucji Linuksa. Po instalacji wymienionych<br />

narzędzi, w katalogu z naszymi źródłami Wine (wine-<br />

20031212) wydajemy następujące polecenia:<br />

• ./configure –prefix=/usr – konfiguracja programu<br />

(zmienna –prefix=/usr określa miejsce jego instalacji);<br />

• make depend – utworzenie odpowiednich zależności;<br />

• make – właściwa kompilacja;<br />

• make install – instalacja programu do miejsca, które<br />

podaliśmy przy zmiennej –prefix.<br />

Jeśli wszystko przebiegło pomyślnie (nie otrzymaliśmy żadnych<br />

błędów podczas kompilacji, a program wine znajduje<br />

się w katalogu /usr/bin/ ), to nasz emulator jest prawie<br />

gotowy do pracy.<br />

Konfiguracja Wine<br />

Co nam po programie, jeśli nie mamy do niego plików konfiguracyjnych?<br />

Zajmiemy się teraz nimi. W katalogu z naszymi<br />

źródłami znajdziemy katalog documentation, a w nim<br />

podkatalog samples. Znajdują się tam przykładowe pliki<br />

konfiguracyjne dla naszego Wine'a. Zacznijmy od stworzenia<br />

w naszym katalogu domowym ukrytego katalogu<br />

o nazwie wine:<br />

cd /home/nazwa_użytkownika<br />

mkdir .wine<br />

Skopiujmy przykładowe pliki konfiguracyjne do naszego<br />

ukrytego katalogu wine:<br />

42<br />

marzec 2004


Adobe Photoshop i Linux<br />

Rysunek 2. Czcionki dostępne w Photoshopie zostały<br />

przekopiowane z Windows<br />

cp wine-20031212/documentation/samples/*.* /home/nazwa_<br />

użytkownika/.wine/<br />

Musimy jeszcze stworzyć odpowiednie podkatalogi:<br />

mkdir /home/nazwa_użytkownika/.wine/c<br />

mkdir /home/nazwa_użytkownika/.wine/c/windows<br />

mkdir /home/nazwa_użytkownika/.wine/c/windows/Fonts<br />

mkdir /home/nazwa_użytkownika/.wine/c/windows/system<br />

Zajmijmy się teraz edycją pliku config, znajdującego się<br />

w ukrytym katalogu .wine, aby dopasować go do potrzeb<br />

naszego Photoshopa. Interesuje nas tak naprawdę tylko<br />

jedna zmienna: ;"Windows" = "wersja_windows". W miejsce<br />

wersja_windows wpiszmy win98, aby wyglądało to tak, jak<br />

na Listingu 1. Zapisujemy zmiany.<br />

Pozostaje nam już tylko skopiowanie czcionek z Windows<br />

do naszego ukrytego katalogu wine, aby nasz Photoshop<br />

wyświetlał wszystko poprawnie:<br />

Rysunek 4. Praca z wieloma grafikami nie sprawia problemów<br />

cp /miejsce_zamontowania_windowsa/windows/Fonts/*.*S<br />

/home/nazwa_użytkownika/.wine/c/windows/Fonts/<br />

Nasz Wine został skonfigurowany. Czas zmusić naszego<br />

Photoshopa do współpracy.<br />

Adobe Photoshop<br />

Skoncentrujemy się na wersji 30-dniowej tego popularnego<br />

programu graficznego (została ona załączona do pierwszego<br />

numeru nowego dwumiesięcznika .PSD oraz na płycie<br />

DVD z Linux+). Aby uruchomić instalator, uruchamiamy<br />

konsolę systemową, przechodzimy do miejsca z instalatorem<br />

i wydajemy komendę:<br />

wine ADOBE_PHOTOSHOP_7_TRYOUT.EXE<br />

Uruchomi się instalator, który poprowadzi nas przez cały<br />

proces instalacji. Jako ścieżkę instalacyjną warto wybrać C:<br />

/Photoshop, dzięki czemu zaoszczędzimy sobie wpisywania<br />

długiej ścieżki aby uruchomić sam program. Po zainstalowaniu,<br />

aby uruchomić Photoshopa, wpisujemy:<br />

wine /home/nazwa_użytkownika/.wine/c/Photoshop/Photoshop.exe<br />

Po kilku chwilach powinniśmy ujrzeć ekran powitalny<br />

naszego nowo zainstalowanego programu.<br />

Rysunek 3. Pełna obsługa formatu TIFF jest z pewnością<br />

ogromną zaletą<br />

Podsumowanie<br />

Adobe Photoshop to tylko jeden z wielu programów przygotowanych<br />

dla systemu Windows, który bez większych problemów<br />

daje się uruchomić na Linuksie za pomocą Wine.<br />

Komfort pracy jest wystarczający, a całość pracuje bardzo<br />

stabilnie nawet pod dużym obciążeniem. Jakość pracy nie<br />

odbiega od tej, jaką uzyskamy uruchamiając Adobe Photoshop<br />

na dedykowanej mu platformie systemowej, czyli<br />

Microsoft Windows. Bez problemu uruchomiliśmy także<br />

Adobe InDesign, Płatnika i wiele innych. Polecam eksperymentować<br />

i życzę dobrej zabawy podczas pracy z Adobe<br />

Photoshopem pod Linuksem.<br />

www.linux.com.pl<br />

43


linux w biznesie<br />

Płatnik 5 na Linuksie<br />

Krzysztof Krawczyk<br />

Program Płatnik, wymagany do przygotowywania<br />

dokumentów dla ZUS-u, nie jest dostępny na<br />

Linuksa – został stworzony tylko na platformę<br />

Windows. Taka sytuacja jest przykładem nierównego<br />

traktowania różnych systemów operacyjnych przez<br />

administrację rządową. Z tego powodu zostały rozpoczęte<br />

prace nad Janosikiem, darmowym i otwartym odpowiednikiem<br />

programu Płatnik, którego będzie można wykorzystać<br />

na Linuksie, Windowsie, FreeBSD oraz Mac OS. Zanim<br />

jednak prace nad nim zostaną zakończone, minie jeszcze<br />

trochę czasu. Z tego powodu warto zainteresować się możliwością<br />

uruchomienia programu Płatnik na Linuksie pod kontrolą<br />

narzędzia o nazwie Wine. W tym artykule przedstawię<br />

instrukcję, jak skorzystać z Płatnika 5 pod Linuksem.<br />

Wine<br />

Podstawowym elementem układanki, kluczowym dla sukcesu,<br />

jest pakiet Wine. Jego źródła można znaleźć na stronie<br />

domowej projektu (http://www.winehq.com/ ). Pakiety<br />

binarne (w różnych wersjach) dostępne są we wszystkich<br />

popularnych dystrybucjach Linuksa. My skorzystamy<br />

z wersji Wine 20030916 (sprzed pół roku) – nie sprawia<br />

ona problemów, w przeciwieństwie do niektórych nowszych.<br />

Opis instalacji Wine można znaleźć w artykule dotyczącym<br />

wykorzystania Photoshopa na Linuksie – znajduje się<br />

również w tym numerze (str. 42).<br />

Wymagane narzędzia<br />

Wykorzystamy gotowy skrypt platnik5_set.sh (znajduje się<br />

na płycie CD i DVD), który zajmuje się przygotowaniem<br />

odpowiedniego środowiska do uruchomienia instalacji<br />

Płatnika.<br />

Aby skorzystać z tego pliku, musimy posiadać w systemie<br />

narzędzie uudecode. Można je znaleźć w pakiecie<br />

sharutils, więc wystarczy odnaleźć pakiet binarny o tej<br />

nazwie (rpm, deb) na płytach instalacyjnych dystrybucji<br />

i zainstalować go.<br />

Innym narzędziem, które będzie potrzebne, jest<br />

Cabextract (www.kyz.uklinux.net/cabextract.php). Umożliwia<br />

ono rozpakowywanie windowsowych archiwów<br />

cab. Instalacja tego programu ze źródeł jest bardzo prosta<br />

(./configure; make; make install wykonane w katalogu<br />

utworzonym po rozpakowaniu archiwum), ale można także<br />

skorzystać z gotowych pakietów binarnych.<br />

Pozostałe narzędzia, takie jak Wget, Bzip2, Tar czy<br />

Sha1sum, powinny być już dostępne w systemie.<br />

Rysunek 1. Płatnik na Linuksie<br />

Instalacja Płatnika<br />

Na początku musimy stworzyć nowego użytkownika, np.<br />

o nazwie platnik, nadać mu hasło i przelogować się na<br />

niego:<br />

adduser platnik ; passwd platnik ; su – platnik<br />

Konieczne jest także pozwolenie na uruchamianie aplikacji<br />

graficznych użytkownikowi platnik (zakładam, że pracujemy<br />

w środowisku graficznym, a wszystkie czynności wykonujemy<br />

w graficznym terminalu). Aby tego dokonać, należy<br />

w innym okienku terminala wykonać komendę xhost +.<br />

Kolejnym krokiem jest uruchomienie pobranego wcześniej<br />

skryptu platnik5_set.sh:<br />

sh ./platnik5_set.sh<br />

Utworzy on katalog platnik5_set, do którego musimy wejść<br />

i w którym uruchamiamy skrypt setup_all:<br />

cd platnik_set ; ./setup_all<br />

Płatnik 6 na Linuksie<br />

Istnieje także możliwość uruchomienia programu Płatnik 6.<br />

Zasada jest taka sama jak w przypadku Płatnika 5 (określanego<br />

również jako II) – trzeba zainstalować Wine 20031212,<br />

pobrać przygotowany skrypt platnik_set.sh, uruchomić go,<br />

a po rozpakowaniu danych skorzystać ze skryptu setup_all.<br />

44<br />

marzec 2004


płatnik na linuksie<br />

Jeśli w katalogu platnik_set nie zostanie znalezione oprogramowanie<br />

potrzebne do przeprowadzenia instalacji,<br />

skrypt setup_all pobierze je z Sieci. Niezbędne składniki<br />

to: biblioteka libeay32.dll, program WordViewer97 (posiada<br />

potrzebną bibliotekę riched20.dll), komponenty dcom98,<br />

instalator przeglądarki Internet Explorer 6SP1, instalator<br />

MDAC w wersji 2.1 oraz oczywiście instalator programu<br />

Płatnik (pełna wersja – jeden plik).<br />

Gdy będziemy już posiadali wszystkie elementy oprogramowania,<br />

rozpocznie się ich instalacja.<br />

Instalator Internet Explorera będzie wymagał od nas<br />

zaakceptowanie licencji oraz wybrania rodzaju instalacji<br />

(należy wybrać minimalną). Podczas jego instalacji mogą<br />

zostać zgłoszone różne błędy – trzeba je zignorować i kontynuować<br />

wciskając przycisk OK.<br />

Instalator Płatnika będzie od nas wymagał określenia<br />

miejsca instalacji – trzeba wskazać katalog c:\platnik. Jeżeli<br />

podczas ustalania konfiguracji konta administratora nie<br />

będziemy mogli wprowadzać danych, należy najpierw kliknąć<br />

w pole Hasło, a potem wrócić do pierwszego pola.<br />

Uruchamianie Płatnika<br />

Aby uruchomić zainstalowanego właśnie Płatnika, należy<br />

przejść do katalogu wine/c/platnik i wykonać komendę:<br />

wine p2.exe<br />

W otworzonym oknie będziemy musieli określić nowego<br />

płatnika bądź skorzystać z wcześniej wprowadzonych<br />

danych pod Windowsem.<br />

Napotkane problemy<br />

Aby korzystać z wbudowanego pobierania/wysyłania<br />

dokumentów oraz pobierania certyfikatów, musimy ręcznie<br />

podmienić plik anim.dat na pustą animację – został przygotowany<br />

odpowiednik plik.<br />

Gdy chcemy wprowadzać polskie znaki, musimy skorzystać<br />

z Notatnika (wine notepad) i mechanizmu skopiuj/<br />

wklej – w przeciwnym przypadku, zamiast polskich<br />

znaków, otrzymamy dziwne “krzaczki”.<br />

Podsumowanie<br />

Program Wine jest stale rozszerzany o nowe możliwości<br />

i można spodziewać się, że z jego pomocą będziemy mogli<br />

uruchamiać coraz więcej programów przeznaczonych<br />

dla Windowsa. Program Płatnik jest dobrym tego przykładem.<br />

W Sieci:<br />

• Strona domowa Płatnika:<br />

http://www.platnik.info.pl/<br />

• Strona domowa Wine:<br />

http://www.winehq.org/<br />

• Strona domowa Janosika:<br />

http://www.janosik.net/<br />

www.linux.com.pl<br />

45


dla początkujących<br />

Zobacz w:<br />

Analiza logów systemowych<br />

Piotr Machej<br />

W<br />

trakcie używania komputera (obojętnie,<br />

czy do pracy, czy do rozrywki) używamy<br />

wielu różnych programów. Wiele z nich<br />

działa w tle, bez naszego udziału. Nie do<br />

pomyślenia byłoby, gdyby wszystkie te programy wyrzucały<br />

na ekran wyniki swoich działań lub komunikaty błędów.<br />

W takim systemie nie dałoby się pracować. Z tego powodu<br />

większość tych informacji zapisywana jest w dziennikach<br />

systemowych (plik dziennika systemowego nazywamy też<br />

logiem lub dziennikiem zdarzeń).<br />

Kontrolowanie wpisów w logach daje możliwość<br />

wykrycia nieprawidłowości w konfiguracji i funkcjonowaniu<br />

naszego systemu. Oprócz tego, jest to jedno ze źródeł<br />

informacji o wszelkich próbach włamań, więc należy<br />

regularnie przeglądać logi systemowe w poszukiwaniu<br />

wszelkich odchyleń od normy. Oczywiście, w przypadku<br />

systemów produkcyjnych zainstalowanych w firmach,<br />

zwykle zatrudniony jest w tym celu administrator bezpieczeństwa.<br />

Nie należy jednak sądzić, że komputery domowe<br />

są bezpieczne, bo „komu by się chciało włamywać do<br />

mojego komputera”. Nasz system może być wykorzystany<br />

przez „czarne kapelusze”, choćby do przygotowania rozproszonego<br />

ataku odmowy usługi (DDOS), czy po prostu jako<br />

„przystanek” podczas dokonywania włamania do innego<br />

systemu.<br />

Nie ulega wątpliwości, że analizowanie logów w systemie<br />

wielozadaniowym (jakim jest Linux) może być bardzo<br />

czasochłonne. Stworzono szereg programów mających<br />

na celu ułatwienie pracy administratorom – pomagają od<br />

razu zwrócić uwagę na najistotniejsze dla bezpieczeństwa<br />

wpisy. Oprócz tego, takie programy pozwalają na tworzenie<br />

rozbudowanych statystyk, co szczególnie przydaje się przy<br />

analizie logów serwerów WWW lub proxy.<br />

ogniowej informowały tylko o kilkudziesięciu skanowaniach<br />

portów. Uśmiechnąłem się widząc, że ktoś próbował<br />

włamać się na serwer wykorzystując starą lukę w IIS<br />

Microsoftu. Chyba nawet nie potrafił sprawdzić, jaki serwer<br />

WWW jest zainstalowany. No cóż, script-kiddies przydają<br />

się przynajmniej do poprawiania humoru, o ile ma się uaktualniony<br />

system.<br />

Przed wyjściem do miasta sprawdziłem jeszcze logi<br />

dzielenia łącza. Od aktualizacji oprogramowania i jądra<br />

tydzień temu, w końcu zdawało się działać poprawnie.<br />

Z zadowoleniem wyłączyłem konsolę administratora,<br />

rozegrałem partyjkę w Go (znów przegrałem o 1,5 moku)<br />

i zgasiwszy monitor wyszedłem na spacer. Jeśli coś się<br />

będzie działo złego, to system i tak powiadomi mnie o tym<br />

SMS-em.<br />

Podstawowe pliki logów<br />

Nie da się skutecznie śledzić dzienników systemowych bez<br />

wiedzy na temat ich lokalizacji i zastosowania. W większości<br />

przypadków pliki logów znajdują się w katalogu<br />

/var/log/ i jego podkatalogach. Za zapis do odpowiednich<br />

plików poszczególnych informacji dotyczących działania<br />

systemu odpowiada demon Syslogd. Oprócz tego istnieje<br />

demon Klogd, odpowiedzialny za przechwytywanie komunikatów<br />

jądra systemu.<br />

Plikiem konfiguracyjnym demona Syslogd jest plik /etc/<br />

syslogd.conf. Z niego możemy dowiedzieć się, jakie informacje<br />

są kierowane do poszczególnych plików. Każda jego<br />

linia ma postać:<br />

urządzenie.priorytet<br />

plik_logu<br />

Przykład użycia<br />

Gdy rano sprawdziłem pocztę, znalazłem codzienny raport<br />

z logów. Znów jakiś wirus rozsyłał po sieci stosy listów. Na<br />

szczęście program antywirusowy w połączeniu z odsiewaniem<br />

spamu odrzucił większość przesyłek. Przynajmniej<br />

użytkownicy nie będą zbytnio narzekać. Logi zapory<br />

O autorze:<br />

Autor zakończył studia zaoczne na V roku Informatyki na<br />

Politechnice Opolskiej. Z Linuksem (i ogólnie systemami<br />

uniksowymi) ma styczność od wielu lat. Obecnie administruje<br />

siecią blokową złożoną z dziesięciu komputerów.<br />

Kontakt z autorem: autorzy@linux.com.pl.<br />

Rysunek 1. Oto skutek zerwanego kabla – dwa dni bez sieci<br />

46<br />

marzec 2004


analiza logów systemowych<br />

Pole urządzenie określa, skąd pochodzą informacje. Może<br />

przyjmować takie wartości, jak:<br />

• authpriv – informacje dotyczące bezpieczeństwa i autoryzacji;<br />

• cron – demony Cron i At;<br />

• daemon – demony systemowe bez osobnej wartości<br />

urządzenie;<br />

• ftp – demon FTP;<br />

• kern – wiadomości jądra;<br />

• lpr – system drukowania;<br />

• mail – system pocztowy;<br />

• news – system wiadomości news (USENET );<br />

• syslog – wewnętrzne komunikaty demona Syslogd;<br />

• user – wiadomości programów użytkownika;<br />

• uucp – system UUCP;<br />

• local0 do local7 – zarezerwowane do lokalnego<br />

użytku.<br />

W polu priorytet określamy, jakie informacje chcemy<br />

logować. Do dziennika systemowego określonego w polu<br />

plik_logu trafią te informacje, które mają priorytet równy<br />

lub wyższy od podanego w polu priorytet. Pole to może<br />

przyjmować następujące wartości (poczynając od najniższego<br />

priorytetu): debug, info, notice, warning, err, crit, alert<br />

oraz emerg. Możemy również zabronić zapisywania informacji<br />

z wybranego urządzenia w pliku – wystarczy w polu<br />

priorytet użyć wartości none. Zarówno pole urządzenie,<br />

jak i priorytet, może przyjmować wartość *, oznaczającą<br />

wszystkie dostępne urządzenia i priorytety (odpowiednio).<br />

Przykładowa linia z pliku /etc/syslog.conf może wyglądać<br />

tak:<br />

*.info;mail.none;news.none;authpriv.none;cron.noneS<br />

/var/log/messages<br />

Powoduje ona, że do pliku /var/log/messages zostaną<br />

zapisane wszystkie wiadomości o priorytecie info lub wyższym,<br />

ze wszystkich urządzeń z wyjątkiem wiadomości<br />

z systemów poczty, news, Crona i informacji dotyczących<br />

bezpieczeństwa.<br />

Jeśli chcemy te same informacje wysyłać na niewykorzystywaną<br />

konsolę (np. na dziesiątą), możemy wpisać<br />

w pliku /etc/syslog.conf linię podobną do poniższej:<br />

*.info;mail.none;news.none;authpriv.none;cron.noneS<br />

/dev/tty10<br />

Rysunek 2. Możemy określić, które słowa są dla nas alarmujące<br />

Dzięki temu po zrestartowaniu demona Syslogd (np. poleceniem<br />

/etc/rc.d/init.d/syslog restart) i przełączeniu<br />

się na dziesiątą konsolę (klawiszami [Alt]-[F10 ]), będziemy<br />

mogli na bieżąco czytać informacje dopisywane do pliku<br />

/var/log/messages.<br />

Analizując plik syslog.conf, możemy zorientować się<br />

w przeznaczeniu części plików dziennika systemowego.<br />

W domyślnie zainstalowanym systemie najczęściej wykorzystywane<br />

są następujące pliki znajdujące się w katalogu<br />

/var/log/:<br />

• messages – plik ogólnego przeznaczenia; są tu logowane<br />

zarówno komunikaty jądra podczas startu systemu,<br />

jak i informacje wysyłane przez różne programy uruchomione<br />

w systemie;<br />

• secure – plik zawierający informacje dotyczące bezpieczeństwa<br />

oraz dane o autoryzacji użytkowników w systemie;<br />

• maillog – tu logowane są wszystkie informacje wysyłane<br />

przez system pocztowy;<br />

• cron – komunikaty o uruchamianiu zadań przez<br />

demony Cron, Anacron oraz At;<br />

• spooler – informacje krytyczne z działania systemów<br />

UUCP i news;<br />

• boot.log – komunikaty wyświetlane podczas startu systemu.<br />

Oprócz powyższych plików, w katalogu /var/log/ mogą<br />

znaleźć się inne pliki i podkatalogi tworzone przez zainstalowane<br />

oprogramowanie. Przykładowo często znajdziemy<br />

tam podkatalogi cups/ (systemu drukowania), httpd/ (logi<br />

serwera WWW), samba/ (komunikaty z działania Samby)<br />

czy squid/ (informacje o serwerze pośredniczącym).<br />

Nie należy dziwić się, jeśli oprócz pliku messages<br />

w katalogu /var/log/ znajdą się pliki messages.1, messages.2<br />

itd. Może to również dotyczyć innych plików. Jest to wynik<br />

działania demona LogRotate, odpowiedzialnego za rotację<br />

logów. Rotacja ma na celu uniknięcie przepełnienia dysku.<br />

Plik z logiem co pewien czas ma zmienianą nazwę (dodawana<br />

jest cyfra). W ten sposób przechowywanych jest kilka<br />

archiwalnych kopii pliku, z których najstarsza jest usuwana<br />

przy kolejnej rotacji.<br />

Analiza logów w trybie tekstowym<br />

Jeśli szukamy w logach konkretnej informacji, najszybciej<br />

znajdziemy ją wykorzystując podstawowe narzędzia<br />

dostępne z konsoli. Najprostszym z tych poleceń jest<br />

grep.<br />

www.linux.com.pl<br />

47


dla początkujących<br />

Przypuśćmy, że chcemy sprawdzić, czy ktoś odwiedza<br />

naszą stronę. Wiemy już, że logi serwera WWW przechowywane<br />

są w katalogu /var/log/httpd/. Informacje<br />

o odwiedzinach zawarte są w pliku access_log. Jeśli więc<br />

stworzyliśmy stronę i opublikowaliśmy ją pod adresem http://<br />

nasz.serwer/~uzytkownik/strona/, to możemy poszukać<br />

informacji o niej:<br />

grep uzytkownik/strona /var/log/httpd/access_log*<br />

Jeśli w plikach access_log* znajdują się jakieś linie zawierające<br />

tekst uzytkownik/strona, to zostaną one wyświetlone<br />

na ekranie. Przykładowo może to wyglądać tak:<br />

access_log.1:127.0.0.1 - - [28/Jan/2004:13:17:41 +0100]S<br />

"GET /~uzytkownik/strona/ HTTP/1.1" 200 1603 "-"S<br />

"Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.4)S<br />

Gecko/20030704"<br />

access_log.1:127.0.0.1 - - [28/Jan/2004:13:17:41 +0100]S<br />

"GET /~uzytkownik/strona/style.css HTTP/1.1" 200 648S<br />

"http://localhost/~uzytkownik/strona/" "Mozilla/5.0S<br />

(X11; U; Linux i686; pl-PL; rv:1.4) Gecko/20030704"<br />

Z powyższych linii możemy dowiedzieć się, że dnia 28<br />

stycznia 2004 roku o godzinie 13:17 jeden z użytkowników<br />

naszego komputera (localhost – 127.0.0.1) wszedł na stronę<br />

o adresie http://localhost/~uzytkownik/strona/. Strona ta<br />

została wysłana do niego bez problemu (kod 200) i miała<br />

rozmiar 1603 bajty. Oprócz tego, strona ta korzystała<br />

z arkusza stylów umieszczonego w pliku style.css o rozmiarze<br />

648 bajtów. Użytkownik wchodzący na stronę korzystał<br />

z przeglądarki przedstawiającej się jako Mozilla. Informacje<br />

te znajdują się w pliku archiwalnym access_log.1.<br />

Możemy także sprawdzić adres MAC naszej karty sieciowej:<br />

dmesg | grep eth<br />

Polecenie to w moim systemie drukuje następujące informacje:<br />

W moim przypadku listów takich było niewiele, więc polecenie<br />

to zwróciło jednocyfrowy wynik:<br />

2<br />

Bardzo przydatne może okazać się polecenie Awk. Jest to<br />

właściwie cały język wyszukiwania i przetwarzania wzorców.<br />

Zobaczmy przykładowo, jak z plików secure wyłuskać<br />

informację o tym, kto i z jakiego komputera logował się do<br />

naszego systemu:<br />

awk '/Accepted/ {print $9 "\t" $7 "\t" $11}'S<br />

/var/log/secure* | sort | uniq<br />

Przykładowy wynik może wyglądać tak:<br />

gerard password 192.168.100.200<br />

gerard publickey 192.168.100.200<br />

ktosik publickey 215.13.57.4<br />

W zestawieniu tym mamy podane nazwy użytkowników<br />

logujących się do naszego komputera za pomocą SSH,<br />

wykorzystaną metodę autoryzacji (hasło lub klucz publiczny)<br />

oraz adres komputera, z którego nawiązano połączenie.<br />

Nie mamy tu informacji na temat ilości połączeń – dzięki<br />

kombinacji poleceń sort i uniq wyeliminowaliśmy wszystkie<br />

powtórzenia. Jeśli interesują nas konkretne linie dotyczące<br />

pierwszego z wymienionych połączeń, to możemy<br />

znów skorzystać z grepa:<br />

grep "password.*gerard.*192.168.100.200" /var/log/secure*<br />

Przykładowo, możemy uzyskać w wyniku następujący<br />

wydruk (zacytowano jedynie fragment):<br />

secure:Jan 25 03:43:49 illusion sshd[6498]:S<br />

Accepted password for gerard fromS<br />

192.168.100.200 port 52790 ssh2<br />

divert: allocating divert_blk for eth0<br />

eth0: RealTek RTL8139 Fast Ethernet at 0xd17ea000,S<br />

00:01:29:24:0d:2f, IRQ 10<br />

eth0: Identified 8139 chip type 'RTL-8139B'<br />

Interesujący nas adres MAC to 00:01:29:24:0d:2f. Przy<br />

okazji dowiadujemy się, że jest to karta oparta na chipie<br />

RealTek RTL8139B.<br />

Oprócz użycia grepa, możemy wykorzystać również<br />

inne polecenia. Poniższe polecenie powoduje zliczenie<br />

listów wysłanych 11 i 12 stycznia (serwerem poczty jest<br />

Postfix):<br />

grep sent /var/log/maillog* | grep "Jan 1[12]" | wc -l<br />

Rysunek 3. W Webminie możemy nie tylko przeglądać logi, ale<br />

również dodawać nowe<br />

48<br />

marzec 2004


analiza logów systemowych<br />

Opcje polecenia Logwatch:<br />

• detail poziom – ustawia poziom szczegółowości raportu;<br />

można użyć wartości low (niska), med (średnia) i high<br />

(wysoka) lub wartości liczbowych od 0 (niska) do 10<br />

(wysoka);<br />

• logfile nazwa_logu – ogranicza analizę do wskazanego<br />

pliku (lub plików, bo tej opcji można użyć kilkakrotnie)<br />

dziennika systemowego; LogWatch użyje filtrów<br />

powiązanych ze wszystkimi usługami korzystającymi ze<br />

wskazanego pliku;<br />

• service nazwa_usługi – ogranicza analizę do wskazanej<br />

usługi (lub usług – opcja może być użyta wielokrotnie);<br />

LogWatch przeanalizuje wszystkie pliki dziennika systemowego<br />

wykorzystywane przez tą usługę; przydatną<br />

wartością nazwa_usługi jest All, pozwalająca wskazać<br />

wszystkie dostępne usługi;<br />

• print – powoduje wysłanie wyniku na standardowe<br />

wyjście (np. na ekran);<br />

• mailto adres – wysyła wynik na adres e-mail lub do<br />

użytkownika podanego jako adres;<br />

• archives – powoduje, że LogWatch oprócz właściwego<br />

pliku logu analizuje również pliki archiwalne (np. messages.1<br />

i następne w przypadku logu messages), oczywiście<br />

z uwzględnieniem wartości opcji range;<br />

• range – pozwala określić zakres analizowanych dat;<br />

obecnie dostępne są tylko trzy wartości: Today (dzisiaj),<br />

Yesterday (wczoraj) i All (wszystkie dni);<br />

• debug poziom – opcja przydatna podczas rozwiązywania<br />

problemów oraz analizowania działania programu<br />

LogWatch; wartość poziom może wynosić od 0 do 10<br />

(powyżej 10 jest sens ustawiać tylko wartości większe od<br />

100, gdyż wtedy nie jest usuwany katalog roboczy);<br />

• save nazwa_pliku – zamiast drukować lub wysyłać<br />

listem e-mail, zapisuje wynik analizy do pliku o nazwie<br />

nazwa_pliku;<br />

• logdir katalog – poleca szukać plików z logami w katalogu<br />

katalog zamiast w standardowej lokalizacji;<br />

• hostname nazwa_hosta – w raportach używa nazwa_<br />

hosta zamiast nazwy zdefiniowanej dla tego systemu;<br />

jeśli w pliku konfiguracyjnym /etc/log.d/logwatch.conf<br />

włączyliśmy opcję HostLimit, to użycie opcji hostname<br />

w linii poleceń spowoduje analizowanie tylko wpisów<br />

dotyczących hosta o nazwie nazwa_hosta; wyjątkiem<br />

są pliki logów nie zawierające informacji o nazwie hosta<br />

(pliki te będą przetwarzane niezależnie od wartości opcji<br />

HostLimit);<br />

• usage – wypisuje informacje o dostępnych opcjach;<br />

• help – to samo, co usage;<br />

secure.1:Jan 31 01:48:13 illusion sshd[28930]:S<br />

Accepted password for gerard fromS<br />

192.168.100.200 port 2203<br />

W powyższym przykładzie illusion jest nazwą komputera,<br />

na którym znajdują się logi.<br />

Samodzielne analizowanie logów stwarza duże pole<br />

do popisu wszystkim programistom. To prawdziwy egzamin<br />

z umiejętności wykorzystania wyrażeń regularnych<br />

oraz z wiedzy na temat działania systemu. Dla początkujących<br />

jest to świetna możliwość zdobycia nowej wiedzy<br />

i umiejętności. Nie zawsze jednak chcemy lub mamy<br />

czas samodzielnie się wszystkim zajmować. Z pomocą<br />

przychodzą nam inni programiści, którzy stworzyli wiele<br />

programów i filtrów na różne sposoby przetwarzające logi<br />

i wyłuskujące istotne informacje.<br />

Red Hat LogViewer<br />

W Auroksie mamy do dyspozycji bardzo przyjemne narzędzie,<br />

które zwalnia nas z konieczności stosowania polecenia<br />

grep. Red Hat LogViewer, bo o tym programie mowa,<br />

dostępny jest z menu Narzędzia systemowe –> System logs.<br />

Oczywiście pod warunkiem, że zainstalowaliśmy go w systemie.<br />

Jeśli nie, to możemy go znaleźć na pierwszej płycie<br />

instalacyjnej.<br />

Program ten jest bardzo prosty w użyciu. Po lewej stronie<br />

mamy do wyboru różne pliki dziennika systemowego.<br />

Gdy wybierzemy jeden z nich, jego zawartość pojawi się<br />

w głównym oknie. Wpisy zasługujące na uwagę oznaczone<br />

są czerwonym wykrzyknikiem. W polu Filter for mamy<br />

możliwość wpisania wyrażenia, które chcemy odszukać<br />

w logu. Po wciśnięciu przycisku Filter na ekranie pozostaną<br />

tylko linie zawierające to wyrażenie.<br />

W menu Edit –> Preferences możemy wskazać lokalizacje<br />

poszczególnych plików logów, ustawić czas odświeżania,<br />

a także wskazać wyrażenia, które powinny być<br />

oznaczane wykrzyknikiem.<br />

Program ten nie jest szczególnie rozbudowany, lecz<br />

z pewnością spełnia swoją funkcję – pozwala w wygodny<br />

sposób przeglądać logi.<br />

Webmin<br />

Ten popularny program służący do administracji systemem<br />

za pośrednictwem WWW nie mógł się obyć bez przeglądarki<br />

logów. W sekcji System –> Logi systemowe mamy dostęp<br />

do ustawień znanych nam już z pliku /etc/syslogd.conf.<br />

Tym razem możemy skonfigurować każdy log za pomocą<br />

interfejsu graficznego, co dla wielu osób jest łatwiejsze<br />

i wygodniejsze.<br />

Niestety, samo przeglądanie logów nie jest tu zbyt rozbudowane.<br />

Jedyne, co możemy zrobić, to wybrać liczbę<br />

linii do wyświetlenia oraz wyświetlić tylko linie zawierające<br />

wprowadzony tekst. Pod tym względem lepszy wydaje się<br />

Red Hat LogViewer.<br />

LogWatch – automatyczne<br />

wykrywanie podejrzanych wpisów<br />

W wyłuskiwaniu nietypowych wpisów w dziennikach systemowych<br />

może nam pomóc program LogWatch. Narzędzie<br />

to codziennie przegląda wybrane pliki i przepuszcza je przez<br />

odpowiednie filtry. Informacje sformatowane przez te filtry<br />

wysyłane są pocztą e-mail na adres administratora. Nie<br />

zawsze muszą one wzbudzać nasze podejrzenia – często są<br />

to zestawienia, np. ilości połączeń z serwerem poczty.<br />

www.linux.com.pl<br />

49


dla początkujących<br />

Rysunek 4. Wiele programów wspomagających analizę logów<br />

z powodzeniem działa pod konsolą<br />

Instalacja<br />

W przypadku dystrybucji Aurox program LogWatch<br />

dostarczany jest na pierwszej płycie instalacyjnej.<br />

Możemy sprawdzić, czy jest zainstalowany w systemie<br />

poleceniem rpm -q logwatch. Powinniśmy uzyskać nazwę<br />

pakietu wraz z numerem wersji. Jeśli zamiast tego otrzymamy<br />

komunikat Pakiet logwatch nie jest zainstalowany,<br />

to należy zainstalować go z płyty. W tym celu montujemy<br />

pierwszą płytę instalacyjną w systemie (np. mount /mnt/<br />

cdrom), po czym instalujemy nasz pakiet – rpm -Uvh /mnt/<br />

cdrom/RedHat/RPMS/logwatch*.rpm.<br />

Jeśli wolimy skorzystać z bardziej aktualnej wersji,<br />

możemy ją pobrać z witryny domowej programu (http://<br />

www.logwatch.org/ ). W chwili pisania artykułu najnowsza<br />

dostępna wersja stabilna nosiła numer 5.0. Warto<br />

ją zainstalować choćby dlatego, że udostępnia większą<br />

liczbę przydatnych filtrów.<br />

Zaraz po instalacji LogWatch jest w zasadzie gotowy<br />

do użycia. Zwykle nie ma potrzeby ingerencji w pliki<br />

konfiguracyjne. Jeśli jednak chcemy rzeczywiście wiedzieć,<br />

co się dzieje w naszym systemie, to powinniśmy<br />

to zrobić.<br />

Konfiguracja<br />

Większość plików znajduje się w katalogu /etc/log.d/.<br />

Główny plik konfiguracyjny to logwatch.conf (właściwie jest<br />

to łącze symboliczne do pliku conf/logwatch.conf ). Zawiera<br />

on domyślne ustawienia, które są stosowane w przypadku<br />

pominięcia poszczególnych opcji w linii poleceń. Przy<br />

zmianach posługujemy się naszym ulubionym edytorem<br />

(np. Vim, mcedit czy pico).<br />

Na samym początku możemy ustawić adresata listów<br />

informacyjnych (MailTo). Domyślnie jest to użytkownik<br />

root, ale możemy wskazać dowolnego innego lub nawet<br />

wpisać pełny adres e-mail.<br />

Inną ważną opcją jest Range – określa ona, które wpisy<br />

w dziennikach systemowych będą analizowane. Opcja<br />

ta może przyjąć kilka wartości – All (wszystkie wpisy),<br />

Yesterday (wczorajsze) oraz Today (dzisiejsze). Domyślnie<br />

analizowane są wpisy z poprzedniego dnia. Warto<br />

zaznaczyć, że opcja ta jest jeszcze bardzo niedoskonała.<br />

W trakcie pracy z LogWatch można zauważyć, że wyniki<br />

zwracane przez program wywoływany z Crona różnią<br />

się od tych zwracanych podczas wywoływania programu<br />

z linii poleceń. Dzieje się tak, gdyż LogWatch pobiera daty<br />

w formacie zależnym od wykorzystywanego w systemie<br />

języka. Załóżmy, że dziś jest 2 luty, a w naszym systemie<br />

zmienna środowiskowa $LANG ustawiona jest na „pl_PL”<br />

(można to sprawdzić poleceniami locale lub echo $LANG).<br />

W takim przypadku użycie opcji –range yesterday spowoduje<br />

wyszukiwanie linii z datą lut 1. Gdy jednak zmienna<br />

$LANG ustawiona jest na „C”, to poszukiwane będą linie<br />

z datą Feb 1. Jak więc widać, obecnie jedyną naprawdę<br />

bezpieczną wartością opcji –range jest All. Dzięki niej<br />

zostaną przeanalizowane wszystkie linie.<br />

Oprócz tego, możemy określić, jak bardzo szczegółowe<br />

raporty chcemy otrzymywać. Służy do tego opcja<br />

Detail, która może przyjąć wartości Low (niewiele szczegółów<br />

– domyślna), Med (średnia ilość szczegółów) oraz<br />

High (dużo szczegółów). Zamiast tych trzech wartości<br />

możemy użyć liczb od 0 (odpowiada to Low) do 10 (odpowiednik<br />

High).<br />

Dzięki opcji Service możemy wskazać usługi, o których<br />

chcemy uzyskać informacje – wartość tej opcji wskazuje<br />

nazwy filtrów (znajdujących się w katalogu /etc/log.d/<br />

scripts/services/ ), których chcemy użyć. W większości<br />

przypadków najlepiej pozostawić tę opcję w ustawieniu<br />

All, dzięki czemu uruchamiane będą wszystkie filtry.<br />

Jeśli z jakiegoś powodu chcemy jednak któryś wyłączyć,<br />

możemy poniżej umieścić dodatkową linię Service<br />

z nazwą wyłączanego filtru poprzedzoną znakiem minusa<br />

(np. Service = -cron).<br />

Wiemy już, że w katalogu /etc/log.d/scripts/services/<br />

znajdują się filtry dotyczące konkretnych usług. Oprócz<br />

tego, w katalogu /etc/log.d/scripts/ znajdują się jeszcze dwa<br />

podkatalogi zawierające filtry. Są to logfiles/ oraz shared/,<br />

zawierające odpowiednio filtry dotyczące konkretnych<br />

plików logów oraz filtry wspólne dla kilku różnych usług<br />

lub logów. Same filtry to po prostu skrypty, napisane<br />

zwykle w języku Perl (ale niekoniecznie). Możemy więc<br />

(jeśli znamy ten język w wystarczającym stopniu) samodzielnie<br />

przeanalizować poszczególne filtry, a nawet napisać<br />

własne.<br />

Wspomniane wyżej filtry mają za zadanie przeszukać<br />

pliki dzienników systemowych i wydobyć z nich pewne<br />

informacje. W katalogu /etc/log.d/conf/logfiles/ znajdują<br />

się pliki konfiguracyjne określające lokalizację dzienników<br />

systemowych oraz archiwów. W katalogu /etc/log.d/<br />

conf/services/ znajdziemy pliki konfiguracyjne dotyczące<br />

poszczególnych usług. Wskazują one między innymi, które<br />

pliki logów lub które fragmenty tych plików dotyczą konkretnej<br />

usługi.<br />

50<br />

marzec 2004


analiza logów systemowych<br />

Uruchamianie<br />

Wraz z instalacją pakietu w katalogu /etc/cron-daily/ zostaje<br />

umieszczony plik o nazwie 00-logwatch. Właściwie<br />

jest to łącze symboliczne prowadzące do pliku /etc/log.d/<br />

scripts/logwatch.pl. Dzięki temu, demon Cron będzie dbał<br />

o codzienne uruchamianie programu LogWatch. Listy e-mail<br />

z wynikami działania filtrów będą wysyłane na konto określone<br />

w pliku /etc/log.d/logwatch.conf w zmiennej MailTo.<br />

Nie jest to jedyna metoda uruchomienia programu. Jeśli<br />

potrzebujemy w danej chwili wyniku działania konkretnego<br />

filtru, możemy uruchomić LogWatch z linii poleceń.<br />

Wywołanie polecenia logwatch bez parametrów spowoduje<br />

użycie domyślnych opcji ustawionych w pliku konfiguracyjnym.<br />

Zależnie od tego, co chcemy osiągnąć, możemy<br />

jednak wykorzystać różne parametry. Przykładowo, jeśli<br />

chcemy sprawdzić komunikaty demona init (np. o zmianie<br />

poziomu runlevel), możemy użyć polecenia:<br />

R E K L A M A<br />

logwatch --detail high --archives --service initS<br />

--range all --print<br />

Poniżej nagłówka informującego o dacie i warunkach<br />

wykonywania raportu, w sekcji zamkniętej liniami Init<br />

Begin i Init End znajdziemy wynik działania filtru. Może<br />

mieć on postać:<br />

Entered or switched to runlevel 0: 2 Time(s)<br />

Entered or switched to runlevel 6: 34 Time(s)<br />

Jak widać, zestawienie to informuje nas, że dwukrotnie<br />

system przechodził do poziomu runlevel 0, natomiast to<br />

poziomu runlevel 6 przechodził 34 razy. Informacje te uzyskamy<br />

tylko korzystając z opcji –detail high, gdyż nie są one<br />

na tyle istotne, aby umieszczać je przy niższych poziomach<br />

szczegółowości.<br />

W rozdziale Analiza logów w trybie tekstowym wydobywaliśmy<br />

z logu secure informacje o tym, kto logował się<br />

do naszego komputera z pomocą ssh. LogWatch również<br />

pozwala nam uzyskać te informacje. Wystarczy, że użyjemy<br />

polecenia:<br />

logwatch --detail high --service sshd –range=allS<br />

--archives --print<br />

Może ono zwrócić dosyć obszerny wynik, jednak nas w tej<br />

chwili interesują linie umieszczone w bloku Users logging in<br />

through sshd. We wspomnianym przykładzie linie te mogą<br />

wyglądać na przykład tak:<br />

gerard:<br />

192.168.100.200: 21 times<br />

ktosik:<br />

215.13.57.4: 7 times<br />

Przy okazji filtru sshd chciałbym zwrócić uwagę, że high<br />

niekoniecznie jest najwyższym poziomem szczegółowości<br />

informacji. Autor filtru sshd przewidział możliwość wyświetlenia<br />

dodatkowych informacji w przypadku użycia opcji<br />

–detail 20 lub wyższej. W takim przypadku powyższe<br />

informacje mogłyby wyglądać tak:<br />

gerard:<br />

192.168.100.200:<br />

ktosik:<br />

publickey: 20 times<br />

password: 1 time<br />

215.13.57.4:<br />

publickey: 7 times<br />

Daje nam to znacznie bardziej szczegółowy raport niż nasze<br />

krótkie polecenie awk. A to tylko mały wycinek informacji,<br />

jakie udostępnia nam filtr sshd.<br />

Jeśli chcemy zapoznać się z raportami na temat kilku<br />

wybranych usług, możemy tego dokonać jednym poleceniem,<br />

np.:<br />

www.linux.com.pl<br />

51


dla początkujących<br />

odwiedzić serwis FreshMeat (http://freshmeat.net/ ), gdzie<br />

między innymi w sekcji Browse –> System –> Logging znajdziemy<br />

co najmniej kilkadziesiąt tego typu programów.<br />

Zachęcam do samodzielnych poszukiwań, a w ramce<br />

W Sieci zamieszczam odnośniki do kilku wybranych projektów.<br />

Rysunek 5. Na witrynie programu LogWatch znajdziemy dokładne<br />

wskazówki, jak stworzyć własne filtry<br />

logwatch --detail high --service arpwatchS<br />

--service cron --range today --print<br />

Jak widać, opcji –service możemy użyć kilkakrotnie,<br />

wskazując kolejne interesujące nas usługi. Powyższe polecenie<br />

wydrukuje nam wyniki działania filtrów arpwatch<br />

i cron umieszczone odpowiednio w sekcjach Arpwatch<br />

Begin/End oraz Cron Begin/End. Program Arpwatch<br />

służy do śledzenia zmian przypisania numerów IP do<br />

poszczególnych kart sieciowych. Informacje zwracane<br />

przez ten filtr mogą dotyczyć pojawienia się nowego<br />

komputera w sieci, jak również wymiany karty sieciowej<br />

w jednym z komputerów.<br />

LogWatch pozwala nam na nie wskazywanie konkretnych<br />

usług. Zamiast tego, możemy wskazać plik logu,<br />

który chcemy przeanalizować. LogWatch wykorzysta<br />

wtedy filtry wszystkich usług powiązanych z tym plikiem.<br />

Przykładowo, możemy sprawdzić wczorajsze informacje<br />

dotyczące pliku /var/log/messages i przesłać je do<br />

skrzynki pocztowej użytkownika gerard (jeśli mamy go<br />

w systemie):<br />

logwatch --detail low --logfile messagesS<br />

--range yesterday --mailto gerard<br />

Użytkownik ten otrzyma list zawierający informacje takie,<br />

jak komunikaty błędów zwracane przez jądro (w sekcji<br />

Kernel), informacje o problemach z ładowaniem modułów<br />

(ModProbe), komunikaty demona Identd i inne. Warto<br />

zwrócić uwagę, że w sekcjach niektórych filtrów może pojawić<br />

się linia o treści **Unmatched Entries**. Umieszczone<br />

po niej linie nie pasowały do żadnej z reguł filtru (chociaż<br />

dotyczyły tej konkretnej usługi).<br />

Inne narzędzia<br />

Programów wspomagających przeglądanie i analizę logów<br />

systemowych jest wiele. Dobór odpowiedniego zależy od<br />

naszych potrzeb, umiejętności i przyzwyczajeń. Warto<br />

Zakończenie<br />

Przeglądanie i analizowanie logów systemowych ma sens.<br />

Pozwala nam na wykrycie błędów w konfiguracji systemu,<br />

„doszlifowanie” go i dopasowanie do naszych potrzeb. Analizując<br />

logi rutera możemy dostosowywać podział łącza tak,<br />

aby korzystanie z niego było jak najbardziej komfortowe<br />

dla użytkowników. Logi serwera WWW mogą nam wskazać<br />

błędy w konstrukcji naszych serwisów. Mogą nas też<br />

powiadomić o próbach włamań (oby nieudanych).<br />

Jeśli chodzi o włamania, trzeba zdawać sobie sprawę<br />

z pewnej rzeczy. Analiza logów w tym konkretnym przypadku<br />

jest często spóźniona. Będzie to już jedynie czytanie<br />

historii o tym, jak ktoś dostał się do naszego systemu<br />

i zrobił z nim, co chciał. Może być też tak, że włamywacz<br />

usunie z logów wpisy świadczące o jego obecności. Uchronić<br />

nas przed takimi sytuacjami mogą systemy wykrywania<br />

włamań (IDS – Intrusion Detection System).<br />

W Sieci:<br />

• ADMLogger:<br />

http://aaron.marasco.com/linux.html<br />

• AJMS:<br />

http://www.argray.org/ams/<br />

• Analog:<br />

http://www.analog.cx/<br />

• Firewall Log Daemon:<br />

http://rouxdoo.freeshell.org/dmn/<br />

• FWAnalog:<br />

http://tud.at/programm/fwanalog/<br />

• FWLogWatch:<br />

http://www.kyb.uni-stuttgart.de/boris/software.shtml<br />

• FWReport:<br />

http://sourceforge.net/projects/fwreport/<br />

• GLogWatch:<br />

http://www.uberh4x0r.org/download/gkrellm/<br />

• Log_analysis:<br />

http://linux.umbc.edu/~mabzug1/log_analysis.html<br />

• Log Tool:<br />

http://xjack.org/logtool/<br />

• LogWatch:<br />

http://www.logwatch.org/<br />

• MultiTail:<br />

http://www.vanheusden.com/multitail/<br />

• Swatch:<br />

http://swatch.sourceforge.net/<br />

• Webalizer:<br />

http://www.mrunix.net/webalizer/<br />

• Webmin:<br />

http://www.webmin.com/<br />

52<br />

marzec 2004


sprzęt<br />

Zobacz w:<br />

Zabawy z flash dyskiem USB<br />

Piotr Wolny<br />

Flash dyski, nazywane często – z racji swoich niewielkich<br />

rozmiarów – pen drive, to stosunkowo<br />

nowe urządzenia. Na tyle nowe, że nazywa się je<br />

wciąż bardzo różnie – flash disk, flash drive, keydrive,<br />

USB key, USB flash drive, keychain drive, pen drive,<br />

memory stick to chyba nawet nie wszystkie ich angielskie<br />

określenia. Rozpowszechnienie flash dysków było możliwe<br />

dzięki opracowaniu tanich pamięci typu eeprom, odpornych<br />

na wielokrotny zapis. Niektórzy producenci zapewniają,<br />

iż flash dysk można zapisywać nawet milion razy, a dane<br />

na nim zawarte wytrzymują 10 lat.<br />

Ogólnie flash dyski to niewielkie urządzenia pamięci<br />

masowej, podpinane do portu USB. Najczęściej występują<br />

w pojemnościach od 32 MB do kilku GB. Model<br />

o pojemności 128 MB można nabyć za około 200 złotych.<br />

W praktyce flash dysk jest więc bardziej pojemny i szybszy<br />

niż dyskietka i choć jest na ogół mniej pojemny niż dysk<br />

CD-R(W), znacznie wygodniej się go nagrywa i transportuje<br />

(podobno jest na tyle lekki, że może go przenieść 14<br />

mrówek). Wszystkie flash dyski korzystają z protokołu USBstorage,<br />

dzięki czemu łatwo jest ich używać – nie wymagają<br />

sterowników na komputerach z różnymi nowymi systemami<br />

operacyjnymi, nawet na MS Windows XP.<br />

Flash dyski USB działają oczywiście również bez żadnych<br />

dodatkowych sterowników w Linuksie, są dobrze<br />

obsługiwane przez w miarę nowe dystrybucje. Nie zetknąłem<br />

się z żadnym modelem, który nie zadziałałby w naszym<br />

systemie operacyjnym (dobrze współpracują nawet tanie<br />

jednostki no-name).<br />

O autorze:<br />

Autor jest politologiem i pracuje dla www.wzz.org.pl.<br />

Linuksem zajmuje się mniej więcej od czasów jądra 2.0.20.<br />

Kontakt z autorem: autorzy@linux.com.pl.<br />

Rysunek 1. Flash dysk nie wygląda na coś, co kosztuje ponad<br />

200 PLN, ale jest wart tych pieniędzy<br />

Flash dysk w Linuksie<br />

W niektórych dystrybucjach Linuksa podłączenie flash<br />

dysku jest natychmiast wykrywalne, np. w Mandrake<br />

Linux 9.2 taki dysk jest automatycznie montowany w /mnt/<br />

removable, a na pulpicie KDE pojawia się odpowiednia<br />

ikona. Inne nowe dystrybucje wymagają kilku minut na<br />

konfigurację, w zależności od osobistych preferencji.<br />

Flash dysk USB pracuje w Linuksie jako urządzenie<br />

SCSI, więc jest oznaczony jako /dev/sda (gdy mamy jakiś<br />

kontroler SCSI, wtedy oznaczenie może przesunąć się na<br />

/dev/sdb). Jego pierwszą partycją (urządzenia te sprzedawane<br />

są z założoną i sformatowaną partycją FAT16 ) jest więc<br />

/dev/sda1. Możemy utworzyć odpowiedni katalog w /mnt<br />

(mkdir -m 666 /mnt/flash) i po podłączeniu zamontować<br />

urządzenie komendą mount /dev/sda1 /mnt/flash. W niektórych<br />

przypadkach może być potrzebne wcześniejsze<br />

wykonanie komendy modprobe usb-storage; modprobe<br />

sg; modprobe sd_mod (w takim przypadku warto od razu<br />

dopisać ją do któregoś ze skryptów startowych). Aby montowanie<br />

było prostsze i można było je wykonywać z konta<br />

zwykłego użytkownika, możemy wpisać odpowiednią linię<br />

do /etc/fstab, np.:<br />

/dev/sda1 /mnt/flash vfat noauto,users 0 0<br />

Po dopisaniu odpowiedniej linijki w pliku fstab, do zamontowania<br />

podłączonego flash dysku wystarczy komenda<br />

mount /mnt/flash. Wygodniejsze może okazać się stworzenie<br />

na pulpicie KDE/GNOME ikony urządzenia CDROM<br />

Tworzenie kopii flash dysku<br />

Jeśli nagraliśmy na flash dysku jakąś dystrybucję Linuksa<br />

i chcemy spróbować innej, zawsze możemy łatwo zachować<br />

obraz starej dystrybucji na flash dysku w pliku. Wystarczy<br />

w tym celu polecenie: dd if=/dev/sda of=/jakas/nazwa/<br />

pliku.img. Oryginalny stan flash dysku przywracamy poleceniem:<br />

dd if=/jakas/nazwa/pliku.img of=/dev/sda. Oczywiście,<br />

przed tymi operacjami należy koniecznie odmontować<br />

flash dysk.<br />

www.linux.com.pl<br />

53


sprzęt<br />

Instalacja „normalnej” dystrybucji<br />

Być może niektórzy z Czytelników mają na tyle duże flash<br />

dyski, że chcieliby zainstalować na nich normalne dystrybucje<br />

Linuksa. Nie ma problemu! Jako dysk docelowy należy<br />

wybrać /dev/sda (bądź sdb, gdy mamy jakieś urządzenia<br />

SCSI) i przeprowadzić normalnie instalację. W niektórych<br />

dystrybucjach może być konieczne załadowanie modułów<br />

usb-uhc/usb-ohci, usb-storage, sg, sd_mod przed podziałem<br />

dysku na partycje. Robi się to zazwyczaj przełączając się na<br />

drugą (bądź kolejną) wirtualną konsolę (klawiszami [Ctrl]+<br />

[Alt]+[F2...]) i wydając polecenie modprobe ....<br />

(nazwę możemy zmienić na np. FLASH), gdzie w zakładce<br />

„urządzenie” podamy /dev/sda1. Po tej operacji możemy<br />

zamontować urządzenie klikając na odpowiadającą mu<br />

ikonkę oraz odmontować komendą dostępną w menu<br />

wywołanym prawym klawiszem myszy. Pamiętajmy przy<br />

okazji, że Linux buforuje dane zapisywane na flash dysku<br />

i przed jego wyciągnięciem należy go koniecznie odmontować,<br />

aby mieć pewność, że wszystko na nim zostało<br />

zapisane. Bardzo ważne jest to, że flash dysków nie można<br />

odłączać, gdy trwa na nich zapis, gdyż kończy się to<br />

powstawaniem nienaprawialnych bad block-ów.<br />

Flash dysk może być również montowany automatycznie<br />

po włożeniu lub gdy jakaś aplikacja chce odczytać<br />

z niego dane. W takim przypadku możemy skorzystać<br />

chociażby z autofs. Przykładowo, w pliku /etc/auto.master<br />

umieszczamy linię:<br />

/misc /etc/auto.misc --timeout=60<br />

a w pliku /etc/auto.miscs linię:<br />

flash -fstype=auto,noauto,owner,kudzu :/dev/sda1<br />

Następnie restartujemy autofs (/etc/init.d/autofs restart)<br />

i nasz flash dysk będzie montowany automatycznie, gdy<br />

jakaś aplikacja będzie chciała odczytać katalog /misc/flash.<br />

Jeśli chcemy uzyskać bardziej „efektowną” konfigurację,<br />

np. uruchamiać jakieś aplikacje po podłączeniu flash dysku,<br />

możemy skorzystać z mechanizmu hotplug. Więcej na temat<br />

hotplug można było przeczytać w artykule „Cyfrowy aparat<br />

fotograficzny w Linuksie” w Linux+ z listopada 2003.<br />

Szybki przykład? Jeśli nasze urządzenie ma identyfikatory<br />

USB 126f/2168/200 (można je sprawdzić w /var/log/syslog<br />

lub /var/log/messagess, gdzie pojawiają się po jego podłączeniu),<br />

tworzymy plik /etc/hotplug/usb/flash.usermap i<br />

wpisujemy w nim jedną linię:<br />

flash 0x000f 0x126f 0x2168 0x0000 0x0200 0x00 0x00 0x00<br />

0x00 0x00 0x00 0x00000000<br />

Najlepiej skopiować ją z jakiegoś innego pliku *usermap<br />

i pozmieniać odpowiednie cyfry – w ten sposób trudniej się<br />

pomylić. W pierwszej kolumnie jest identyfikator urządzeń<br />

USB-storage (może to być również 0x0003, jeśli to pierwsze<br />

nie zadziała), a pozostałe dane otrzymujemy z logów systemowych.<br />

Trzecią cyfrę – u mnie 200 – możemy wpisać do<br />

piątej i/lub szóstej kolumny. Następnie piszemy skrypt /etc/<br />

hotplug/usb/flash. Na początek wystarczy w nim linia:<br />

#!/bin/sh<br />

logger "uruchamia sie $0"<br />

Nadajemy skryptowi prawa do wykonywania oraz podłączamy<br />

nasze urządzenie, patrząc, czy w logach systemowych<br />

znajdujemy powyższy wpis „uruchamia sie...”. Jeśli go<br />

nie ma, musimy poprawić cyfrowe identyfikatory urządzenia.<br />

Jeśli wpis pojawia się, dobrze jest jeszcze sprawdzić,<br />

czy nie będzie się pojawiał, gdy podłączymy jakieś inne<br />

posiadane w domu urządzenie USB – chcemy, aby nasz<br />

skrypt uruchamiał się tylko przy podłączeniu flash dysku.<br />

Bardzo prosty przykład, który przy każdym podłączeniu<br />

flash dysku automatycznie uaktualnia ważne dane,<br />

kopiując je na flash dysk, można znaleźć na Listingu 1.<br />

Skrypt, który jedynie automatycznie montuje urządzenie po<br />

podłączeniu i odmontowuje po wyciągnięciu, jest na Listingu<br />

2. Skrypty te zadziałają, jeśli umieściliśmy odpowiednie<br />

wpisy w /etc/fstab oraz stworzyliśmy właściwie plik /etc/<br />

hotplug/usb/flash.usermap.<br />

Przy pisaniu skryptów hotplug trzeba jedynie pamiętać,<br />

że wykonywane są one z prawami użytkownika root, więc<br />

czasem możemy potrzebować w skrypcie komendy su<br />

. Ponadto, jeśli używamy jakiejś starszej<br />

dystrybucji, zawierającej wersję hotplug sprzed 8 sierpnia<br />

2003 roku, nie możemy tworzyć własnych plików /etc/<br />

hotplug/usb/*.usermap – ich zawartość należy dopisywać<br />

do /etc/hotplug/usb.usermap.<br />

Instalacja Linuksa na flash dysku<br />

Flash dyski są na tyle duże, że można na nich zmieścić<br />

wiele małych dystrybucji Linuksa. Nie tylko wszystkie<br />

„jednodyskietkowe”, ale – zwłaszcza jeśli posiadamy<br />

urządzenie o pojemności 64 MB i więcej – możemy<br />

wykorzystać mniejsze dystrybucje typu LiveCD. Flash<br />

Moduły jądra<br />

Jeśli samodzielnie kompilujemy jądro Linuksa lub nasz sprzęt<br />

nie chce zadziałać, potrzebujemy moduły jądra do obsługi<br />

flash dysku:<br />

• w dziale USB: Preliminary USB device filesystem, sterownik<br />

hosta (ehci/uhci/usb-uhci/ohci) oraz USB Mass Storage<br />

support (usb-storage.o);<br />

• w dziale SCSI: SCSI disk support (sd_mod.o) oraz SCSI<br />

generic support (sg.o).<br />

Flash dysk możemy oczywiście samodzielnie sformatować na<br />

dowolny system plików, ale domyślnie jest to vfat, więc warto<br />

mieć w jądrze wsparcie również dla niego.<br />

54<br />

marzec 2004


flashdysk USB<br />

Listing 1. Przykładowy prosty skrypt, który automatycznie<br />

kopiuje na flash dysk dane z wybranego katalogu<br />

#/bin/bash<br />

logger "$0: start uaktualniania danych"<br />

# czekamy, aż moduły jądra zostaną załadowane<br />

sleep 4<br />

# montujemy flash disk<br />

mount -w /mnt/flash || exit<br />

# tworzymy katalog na flash dysku i kopiujemy dane<br />

mkdir -p /mnt/flash/wazne<br />

cp -Ru /home/piotr/dane/wazne/* /mnt/flash/wazne/<br />

# odmontowujemy dysk i odtwarzamy dźwięk<br />

# program aplay odtwarza dźwięk przez sterowniki ALSA<br />

umount /mnt/flash && aplay /usr/share/apps/kbackgammon/<br />

sounds/kbackgammon-lost.wav<br />

logger "$0: koniec uaktualniania danych"<br />

dyski robią się na tyle popularne, że twórcy niektórych<br />

małych dystrybucji Linuksa dostosowują swoje dzieła do<br />

używania właśnie na takich urządzeniach bądź publikują<br />

dla nich specjalną wersję.<br />

Często dużym problemem jest uruchomienie komputera<br />

z urządzenia USB. Nie jest to uzależnione od typu posiadanego<br />

flash dysku. W tym przypadku ważna jest płyta<br />

główna naszego komputera. W BIOS-ie musimy mieć opcję<br />

startu z USB-ZIP bądź innych urządzeń USB (USB-HDD,<br />

USB-FDD, USB-CDROM itp.). To nie gwarantuje jednak<br />

sukcesu. Wiele płyt głównych nie potrafi uruchomić systemu<br />

z flash dysku, mimo posiadania odpowiedniej opcji<br />

w BIOS-ie. Jeśli mamy dostęp do DOS-a bądź Windowsa,<br />

zanim poświęcimy czas na ściągnięcie i zainstalowanie<br />

jakiejś dystrybucji Linuksa, dobrze jest przeprowadzić prosty<br />

test uruchomienia systemu z flash dysku. Przy pomocy<br />

narzędzi dostarczanych przez jego producenta bądź używając<br />

programów zawartych w DOS/Windows, formatujemy<br />

flash dysk, czyniąc go urządzeniem startowym (kopiujemy<br />

pliki systemowe). Następnie przestawiamy BIOS komputera<br />

na start z USB-ZIP i sprawdzamy, co się stanie. Jeśli system<br />

ruchomi się, to mamy szczęście. Jeśli nie, to pozostaje jeszcze<br />

do sprawdzenia kilka rzeczy:<br />

• możemy spróbować przestawić urządzenie startowe<br />

w BIOS-ie na inne USB-xxx (USB-HDD, USB-FDD,<br />

USB-CDROM itd.);<br />

• niektóre (wadliwe) płyty główne wymagają podłączenia<br />

flash dysku przy całkowicie odłączonym zasilaniu<br />

od komputera (z wyciągniętą wtyczką), w przeciwnym<br />

razie BIOS nie zobaczy dysku USB; konieczne jest również<br />

wtedy włączenie w BIOS-ie obsługi klawiatury<br />

USB – znane z takich dziwnych zachowań są niektóre<br />

płyty z chipsetem VIA i AMI BIOS-em, np. Epia-m czy<br />

Shuttle mv42n;<br />

• możemy spróbować specjalnego bootloadera z projektu<br />

SPBLinux (adres w ramce „W Sieci”), instalując go<br />

komendą dd if=spb2 of=/dev/sda;<br />

• dobrze sprawdzić, czy producent płyty opublikował<br />

jakieś uaktualnienia firmware, które poprawiałoby uruchamianie<br />

z USB;<br />

• czasem pomaga takie przestawienie urządzeń, aby<br />

kontroler USB nie dzielił przerwania z innym urządzeniem;<br />

• mój flash dysk (TwinMos(r) Mobile Disk III – 021) uruchamia<br />

się tylko i wyłącznie, gdy sformatujemy go<br />

programem pod systemem Windows, dostarczonym<br />

przez producenta, a z dwóch dostępnych opcji przy<br />

formatowaniu, w praktyce z moją płytą główną działa<br />

tylko USB-HDD.<br />

Powyższe porady mogą być przydatne, ale większość Czytelników<br />

zapewne nie napotka żadnego problemu przy<br />

uruchamianiu komputera z USB, jeśli tylko BIOS ma taką<br />

opcję. Spośród kilku płyt głównych, które udało mi się<br />

przetestować, wszystkie się uruchomiły. Nie były to modele<br />

z „górnej półki”, lecz tanie płyty główne z chipsetami VIA,<br />

np. ECS K7VTA3 czy ECS K7VZA.<br />

Gdy już potrafimy uruchomić komputer z naszego<br />

flash dysku, czas rozejrzeć się za jakąś ciekawą dystrybucją<br />

Linuksa dla niego. Wybór jest bardzo duży.<br />

Najpierw przyjrzałem się dystrybucjom, które przez ich<br />

autorów zostały przystosowane do uruchamiania z flash<br />

dysków.<br />

Flonix<br />

Mój pierwszy wybór padł na Floniksa (http://flonix.<br />

tuxfamily.org/ ). Jest to ciekawa dystrybucja, oparta na<br />

Knoppiksie, o ogólnych zastosowaniach. Znajdziemy na<br />

niej narzędzia do multimediów (mplayer, xmms, przeglądarki<br />

obrazków), nagrywania płyt CD, manipulacji plikami,<br />

przeglądania stron WWW i wiele innych. Wszystko<br />

można zamieścić na flash dysku o pojemności 64 MB,<br />

ale przed instalacją należy go odpowiednio przygotować.<br />

Musi na nim znajdować się aktywna partycja FAT16 (tak<br />

jest domyślnie na nowych sprzedawanych urządzeniach).<br />

Jeśli nie zauważymy obecności partycji FAT16, możemy<br />

ją stworzyć przy pomocy fdiska i następnie sformatować<br />

poleceniem mkfs.vfat /dev/sda1. Następnie po ściągnięciu<br />

i rozpakowaniu pliku Flonix_USB_Edition_build36.zip<br />

należy zawartość tego archiwum przegrać do głównego<br />

katalogu flash dysku.<br />

Po skopiowaniu plików, odmontowujemy flash dysk<br />

(ale nie odłączamy). Potrzebne jest tylko jedno polecenie,<br />

które umożliwi uruchamianie się Linuksa z flash dysku.<br />

Cały czas przy założeniu, że nasz flash dysk to /dev/sda1,<br />

musimy wydać polecenie syslinux /dev/sda1. Program<br />

syslinux można znaleźć we wszystkich dystrybucjach lub<br />

ściągnąć z http://syslinux.zytor.com/ – w jego archiwum<br />

jest również gotowa do użycia, skompilowana wersja.<br />

www.linux.com.pl<br />

55


sprzęt<br />

Listing 2. Przykładowy prosty skrypt, który montuje włożony<br />

flash dysk i odmontowuje go po wyciągnięciu<br />

Rysunek 2. Na stronach internetowych dystrybucji Knoppix<br />

znajdziemy namiary na wiele dystrybucji, które nadają się do<br />

instalowania na flash dyskach<br />

To już wszystko! Czas zrestartować komputer i podziwiać<br />

Floniksa. Na mnie zrobił naprawdę imponujące<br />

wrażenie. Bardzo wygodna jest szczególnie możliwość<br />

zapisywania konfiguracji i plików osobistych wprost na<br />

flash dysk, z którego uruchamiamy komputer. Odpada<br />

konieczność używania dodatkowych dyskietek lub ponownego<br />

nagrywania płyty, jak ma to miejsce w przypadku<br />

dystrybucji typu LiveCD.<br />

Movix2<br />

Movix2 (http://movix.sourceforge.net/ ) to kolejna dystrybucja,<br />

która przez autora została przystosowana do<br />

uruchamiania z flash dysku. Tym, którzy jej nie znają,<br />

należy przypomnieć, że dystrybucja ta służy do oglądania<br />

filmów przy pomocy programu MPlayer. Ta wersja jest<br />

wyposażona w system X Window. Jej przeniesienie na<br />

flash dysk jest jednak nieco trudniejsze niż w przypadku<br />

Floniksa i to tym bardziej, że skrypt przeznaczony do<br />

automatycznego przenoszenia dystrybucji na flash dysk<br />

– przynajmniej u mnie – nie zadziałał. Musiałem przenieść<br />

dystrybucję ręcznie.<br />

Po rozpakowaniu pliku movix2-0.3.1pre4.tar.gz, do<br />

katalogu src/mplayer/codecs dołożyłem pliki z kodekami<br />

z Windows (plik win32codecs.tar.bz2 i inne, bez rozpakowywania),<br />

zaś do katalogu src/movix/ znaleziony<br />

w sieci plik libdvdcss-1.2.6-1.i386.rpm, który umożliwia<br />

odczyt zakodowanych płyt DVD. Do katalogu src/mplayer/<br />

mplayer-fonts/ dołożyłem czcionkę verdana.ttf, a do pliku<br />

src/movix/gui.conf dopisałem linię: subfont-encoding=cp1250.<br />

Ponadto, w pliku src/movix/rc.movix zakomentowałem<br />

kilka linii ładujących Sambę, która u mnie nie<br />

chciała zadziałać. Te działania nie są jednak niezbędne.<br />

Samo przeniesienie na flash dysk należy rozpocząć od<br />

jego zamontowania, np. w /mnt/flash. Następnie kopiujemy<br />

konfigurację bootloader-a: cp extras/flash/syslinux.cfg<br />

/mnt/flash/. Tworzymy na karcie główny katalog: mkdir<br />

/mnt/flash/movix2, oraz kopiujemy tam cały katalog src: cp<br />

-R src/* /mnt/flash/movix2. Następnie na karcie przenosimy<br />

kilka plików:<br />

#/bin/bash<br />

logger "$0: Montowanie flash dysku..."<br />

# czekamy, aż moduły jądra zostaną załadowane<br />

sleep 4<br />

# montujemy flash dysk i odtwarzamy jakiś dźwięk<br />

mount -w /mnt/flash || exit<br />

aplay /usr/share/dzwiek1.wav<br />

# zmienna $REMOVER określa nazwę programu w katalogu<br />

# /var//var/run/usb/<br />

# który zostanie uruchomiony przy odłączeniu urządzenia<br />

cat > $REMOVER


flashdysk USB<br />

• spowodować, aby Knoppix ładował potrzebne nam<br />

moduły jądra, obsługujące USB, przed modułami SCSI<br />

i przed próbą odszukania nośnika, na którym znajduje<br />

się właściwa część dystrybucji;<br />

• ustawić urządzenie, z którego uruchamia się Knoppix,<br />

na /dev/sda1, rezygnując ze standardowego skryptu,<br />

który wyszukuje urządzenia CDROM z odpowiednią<br />

płytą;<br />

• skopiować potrzebne nam moduły jądra w odpowiednie<br />

miejsce, aby Knoppix mógł użyć ich do uruchomienia<br />

właściwego systemu.<br />

Na początku musimy zmodyfikować bootimage Knoppiksa,<br />

który znajdziemy na płycie CD tej dystrybucji<br />

w katalogu /KNOPPIX/boot.img. Montujemy go (mount -o<br />

loop boot.img /mnt/tmp) i kopiujemy całą jego zawartość<br />

do katalogu np. /tmp/bootdisk i odmontowujemy. Teraz<br />

musimy dostać się do pliku miniroot.gz, skopiowanego<br />

przed chwilą do /tmp/bootdisk/ – gunzip /tmp/bootdisk/<br />

miniroot.gz; mount -o loop /tmp/bootdisk/miniroot /<br />

mnt/tmp/. W miniroot interesuje nas plik linuxrc. Musimy<br />

w nim dopisać załadowanie odpowiednich modułów<br />

USB (przed modułami SCSI, około linii 170, przed<br />

komentarzem Check for SCSI), czyli dopisujemy następujące<br />

linie:<br />

#insmod -f ehci-hcd.o #(możemy spróbować USB 2.0 jeśli nasz<br />

insmod -f usbcore.o<br />

insmod -f usb-uhci.o<br />

insmod -f uhci.o<br />

insmod -f usb-ohci.o<br />

insmod -f usb-storage.o<br />

ash -c "sleep 5"<br />

sprzęt to obsługuje)<br />

Następnie wyszukujemy fragment skryptu, który odpowiada<br />

za wyszukiwanie napędu CD (zaczyna się od komentarza<br />

Now that the right SCSI driver is (hopefully) loaded, try to<br />

find CDROM i kończy linią done). Całą tę część komentujemy.<br />

Pod nią dopisujemy:<br />

FOUND_KNOPPIX="/dev/sda1"<br />

mount -t vfat /dev/sda1 /cdrom<br />

Zanim przejdziemy do następnego kroku (kopiowania<br />

modułów jądra), parę słów wyjaśnienia. W Knoppiksie,<br />

po starcie jądra systemu, najpierw ładowany jest plik<br />

KNOPPIX/boot.img i montowany plik miniroot.gz (niektóre<br />

dystrybucje pochodne od Knoppiksa zmieniają jedynie<br />

nazwę KNOPPIX na swoją). Dopiero później następuje<br />

odnalezienie napędu CD oraz podmontowanie wielkiego<br />

pliku KNOPPIX/KNOPPIX, zawierającego właśnie całe<br />

oprogramowanie. Moduły jądra, odpowiedzialne za obsługę<br />

USB, znajdują się właśnie w pliku KNOPPIX/KNOPPIX,<br />

a naszym zadaniem jest przekopiowanie ich stamtąd do<br />

miniroot.gz.<br />

Do naszej pracy najlepiej jest użyć wersji cloop 1.0.2,<br />

gdyż jest ona najpopularniesza. Niestety, poszczególne<br />

wersje cloop nie są ze sobą kompatybilne, a my musimy<br />

użyć dokładnie tej, którą użyto do skompresowania naszej<br />

odmiany dystrybucji Knoppix. Czasem wersję skompresowanego<br />

obrazu można zobaczyć po wykonaniu polecenia<br />

strings KNOPPIX/KNOPPIX | less.<br />

Ładujemy więc moduł: insmod cloop.o, montujemy<br />

plik KNOPPIX poleceniem: file=sciezka_do_KNOPPIX &&<br />

mount -t iso9660 /dev/cloop /mnt/tmp2 i kopiujemy do<br />

katalogu /mnt/tmp pliki z katalogu /mnt/tmp2/lib/modules/<br />

[wersja_jadra]/kernel/drivers/usb/: ehci-hcd.o uhci.o usbohci.o<br />

usb-storage.o usb-uhci.o usbcore.o. Jak pamiętamy,<br />

w /mnt/tmp/ podmontowaliśmy wcześniej miniroot. Tym<br />

samym zakończyliśmy potrzebne modyfikacje w pliku<br />

miniroot. Odmontowujemy go i ponownie kompresujemy<br />

przy użyciu gzip.<br />

Następnie na wcześniej sformatowany (mkfs.vfat /dev/<br />

sda1) i podmontowany flash dysk kopiujemy całą zawartość<br />

/tmp/bootdisk/ i inne pliki Knoppiksa, w tym oczywiście<br />

najważniejszy, czyli KNOPPIX/KNOPPIX. W efekcie zawartość<br />

bootdisk-u ma znaleźć się w głównym katalogu na<br />

flash dysku, a sam plik bootdisk.img możemy skasować.<br />

Podobnie jak przy innych dystrybucjach nagrywanych na<br />

flash dysk, musimy jeszcze wydać komendę syslinux /dev/<br />

sda1. Następnie pozostaje nam tylko zrestartowanie maszyny<br />

i radość z samodzielnie dostosowanej dystrybucji.<br />

Zakończenie<br />

Flashdysk może być świetnym rozwiązaniem dla osób,<br />

które są zmuszone do poruszania się, np. między pracą<br />

a domem, ze swoim dyskiem twardym. Flashdysk doskonale<br />

nadaje się do przechowywania prywatnych danych<br />

(np. kluczy ssh) czy też posiadania swojego Linuksa zawsze<br />

przy sercu. Wygodny rozmiar urządzenia, często mniejszy<br />

od zapalniczki, duża prędkość działania (zwłaszcza w przypadku<br />

modeli USB 2.0), no i oczywiście możliwość podłączania,<br />

bez konieczności wyłączania komputera, to ogromne<br />

zalety tego rozwiązania.<br />

W Sieci:<br />

• Samodzielne tworzenie Knoppiksa:<br />

http://www.knoppix.net/docs/index.php/<br />

KnoppixRemasteringHowto<br />

• Uruchamianie Knoppiksa z flash dysku oraz bootloader<br />

z SPBLinux:<br />

http://rz-obrian.rz.uni-karlsruhe.de/knoppix-usb/<br />

• Dystrybucja Flonix:<br />

http://flonix.tuxfamily.org/<br />

• Dystrybucja Movix:<br />

http://movix.sourceforge.net/<br />

• Strona domowa Hotplug:<br />

http://linux-hotplug.sourceforge.net/<br />

• Ogólne informacje na temat urządzeń USB w Linuksie:<br />

http://www.linux-usb.org/<br />

www.linux.com.pl<br />

57


dla programistów<br />

Zobacz w:<br />

CVS – system zarządzania<br />

wersjami<br />

Piotr Machej<br />

Oprogramowanie Open Source jest często rozwijane<br />

przez wielu różnych programistów.<br />

Każdy z nich może pracować nad innym<br />

fragmentem kodu. Utrzymanie porządku<br />

staje się w takim przypadku bardzo trudne. W celu ułatwienia<br />

pracy programistom powstał CVS (Concurrent Versions<br />

System), czyli system zarządzania wersjami. Przydaje się on<br />

jednak nie tylko przy tworzeniu oprogramowania – świetnie<br />

nadaje się również do rozwijania serwisów WWW czy<br />

dokumentacji. Można go zastosować właściwie wszędzie,<br />

gdzie tylko występują cyfrowe dane.<br />

Jak to działa?<br />

Wykorzystując CVS mamy możliwość zapoznania się<br />

z historią zmian w projekcie. Oprócz tego, możemy<br />

w każdej chwili uzyskać informacje o różnicach pomiędzy<br />

poszczególnymi wersjami plików. Co więcej, w dowolnej<br />

chwili możemy odtworzyć projekt w takiej postaci, w jakiej<br />

znajdował się jakiś czas temu. Możemy nawet rozwijać projekt<br />

równocześnie w kilku kierunkach (tzw. rozgałęzieniach<br />

– ang. branches), co pozwala nam na eksperymentowanie<br />

bez naruszania głównej wersji projektu. Jeśli dodać do tego<br />

możliwość równoczesnego dostępu wielu programistów,<br />

system CVS okazuje się być bardzo przydatny.<br />

Najważniejszym pojęciem dotyczącym CVS jest repozytorium<br />

(ang. repository), czyli obszar na dysku komputera<br />

(lokalnego lub zdalnego), w którym przechowywane<br />

są wszystkie informacje na temat poszczególnych<br />

projektów. Każdemu projektowi możemy przyporządkować<br />

osobny moduł, czyli po prostu podkatalog w repozytorium.<br />

Wiemy już, że mamy jedno repozytorium z projektem,<br />

oraz wiele osób, które mogą z nim pracować. Powstaje<br />

pytanie, jak to działa. Otóż każdy z programistów (przyjmijmy,<br />

że nasz projekt jest programem) może pobrać (ang.<br />

checkout) z repozytorium aktualną wersję projektu. Posiada<br />

wtedy u siebie kopię roboczą, z którą może pracować.<br />

O autorze:<br />

Autor zakończył studia zaoczne na V roku Informatyki na<br />

Politechnice Opolskiej. Z Linuksem (i ogólnie systemami<br />

uniksowymi) ma styczność od wielu lat. Obecnie administruje<br />

siecią blokową złożoną z dziesięciu komputerów.<br />

Kontakt z autorem: autorzy@linux.com.pl.<br />

Rysunek 1. Wielu webmasterów wykorzystuje CVS w pracach<br />

nad swoimi witrynami<br />

W dalszych etapach pracy nie będzie musiał już pobierać<br />

całości projektu, a jedynie będzie uaktualniał (ang. update)<br />

swoją wersję. Jeśli programista dokonał zmian w swojej<br />

kopii roboczej, może je przesłać (ang. commit) do repozytorium.<br />

Może zdarzyć się, że wcześniej jakiś inny programista<br />

wysłał już swoje poprawki. O ile nie kolidują one ze<br />

sobą, to nie będzie problemu. Jeśli jednak zmieniany był<br />

ten sam fragment kodu, to podczas przesyłania będziemy<br />

mieli możliwość zdecydowania, które poprawki i w jakiej<br />

kolejności powinny być wprowadzone.<br />

Warto wiedzieć, że CVS może działać nie tylko w trybie<br />

sieciowym, ale również i lokalnym. Jeśli więc sami opracowujemy<br />

jakiś projekt, to z powodzeniem możemy wykorzystać<br />

CVS tworząc repozytorium na dysku własnego komputera.<br />

Przykład użycia<br />

Obudziłem się z potwornym bólem głowy. Jeden rzut<br />

okiem na budzik uświadomił mi, że jest już po południu.<br />

Szybko wstałem i usiadłem przy komputerze – na jutro<br />

muszę mieć skończony program na zaliczenie, a tu jeszcze<br />

tyle do napisania. Z zadowoleniem stwierdziłem, że<br />

przed zaśnięciem wysłałem wszystkie moje zmiany do<br />

zdalnego repozytorium CVS. Sprawdziłem historię zmian<br />

w plikach i ucieszyłem się jeszcze bardziej – koledzy z<br />

grupy dopisali już kilkaset istotnych linii kodu. Ściągnąłem<br />

na dysk nowsze wersje plików i zabrałem się dalej<br />

do pracy.<br />

58<br />

marzec 2004


cvs<br />

Na drugiej konsoli włączyłem pobieranie z CVS uaktualnienia<br />

mojego ulubionego MPlayera, a gdy już wylądowało<br />

na moim dysku, uruchomiłem kompilację.<br />

Tymczasem przyszedł mi do głowy nowy pomysł dotyczący<br />

programu na zaliczenie. Stworzyłem osobną gałąź<br />

projektu, aby nie przeszkadzać kolegom, po czym zacząłem<br />

eksperymenty z kodem. Nawet nie zauważyłem, jak nadszedł<br />

wieczór. Pomysł okazał się dobry, więc za zgodą reszty<br />

grupy włączyliśmy moje eksperymentalne zmiany do głównego<br />

projektu, który w tym czasie znów się rozwinął. Jeszcze<br />

tylko ostatnie szlify i jutro będziemy mieli piątki z zaliczenia.<br />

Nie da się ukryć, że CVS ułatwia pracę grupową.<br />

Instalacja<br />

Pakiet cvs znajduje się praktycznie w każdej z popularnych<br />

dystrybucji i w większości przypadków będzie umieszczony<br />

na dysku podczas standardowej instalacji. W przypadku<br />

Auroksa 9.2 pakiet cvs-1.11.2-10.i386.rpm znajduje się<br />

na drugiej płycie CD z dystrybucją. Jeśli przypadkiem CVS<br />

nie jest zainstalowany, możemy doinstalować go samodzielnie<br />

poleceniem rpm -Uvh cvs-1.11.2-10.i386.rpm wydanym<br />

w katalogu /RedHat/RPMS/ na drugiej płycie CD. W innych<br />

dystrybucjach należy wykorzystać narzędzia właściwe dla<br />

konkretnej dystrybucji.<br />

Niektórych Czytelników może nie zadowolić aktualność<br />

pakietów dostarczanych z dystrybucją. W chwili<br />

pisania niniejszego artykułu dostępna już była stabilna<br />

wersja 1.11.11. Jeśli chcemy zainstalować najaktualniejszą<br />

wersję, warto wejść na domową witrynę projektu (http://<br />

www.cvshome.org/ ) i z sekcji CVS Downloads pobrać<br />

najnowszy plik. Po pobraniu możemy rozpakować go<br />

poleceniem tar xjvf cvs-1.11.11.tar.bz2 (nazwa pliku<br />

dotyczy wersji aktualnej w chwili pisania artykułu).<br />

Przechodzimy do utworzonego podkatalogu poleceniem<br />

cd cvs-1.11.11, po czym zapoznajemy się z dokumentacją<br />

(przede wszystkim z plikami INSTALL oraz<br />

README). Kompilacja i instalacja nie powinna sprawić<br />

problemu – na ogół wystarczy standardowy ciąg poleceń:<br />

./configure, make i make install (to ostatnie wydane<br />

z uprawnieniami użytkownika root).<br />

Pobieramy dane ze zdalnego serwera<br />

CVS<br />

Większość użytkowników Linuksa najczęściej wykorzystuje<br />

CVS do pobierania najnowszych wersji oprogramowania.<br />

Jeśli tylko twórcy konkretnego programu przewidzieli możliwość<br />

pobrania plików z repozytorium CVS, to opis powinien<br />

znajdować się na stronie domowej projektu.<br />

Przykładem niech będzie popularny program MPlayer.<br />

Po wejściu na jego witrynę (http://www.mplayerhq.hu/<br />

homepage/ ) możemy przejść do sekcji Downloads. Tam, na<br />

samym dole strony (Rysunek 2), znajdziemy sekcję oznaczoną<br />

napisem CVS. Postępując zgodnie z umieszczonymi tam<br />

informacjami, powinniśmy wydać w konsoli polecenie:<br />

cvs -d:pserver:anonymous@mplayerhq.hu:S<br />

Rysunek 2. Instrukcja pobierania programu MPlayer z CVS jest<br />

umieszczona na witrynie domowej projektu<br />

/cvsroot/mplayer login<br />

Dzięki temu powinniśmy zalogować się anonimowo do<br />

zdalnego repozytorium CVS. Po pytaniu o hasło należy po<br />

prostu wcisnąć klawisz [Enter]. Następnie wydajemy właściwe<br />

polecenie pobierające aktualne pliki źródłowe:<br />

cvs -z3 -d:pserver:anonymous@mplayerhq.hu:S<br />

/cvsroot/mplayer co -P main<br />

Dzięki temu w podkatalogu main/ bieżącego katalogu<br />

zostanie umieszczona najbardziej aktualna wersja źródeł<br />

programu. Dokładne znaczenie poszczególnych opcji zostanie<br />

omówione w dalszej części artykułu.<br />

Wykorzystujemy GCvs<br />

Jeśli wolimy korzystać z interfejsu graficznego, to musimy<br />

wykonać nieco inne kroki. W przypadku programu GCvs<br />

(opisanego dokładniej w rozdziale Interfejsy graficzne)<br />

zaczynamy od wybrania opcji Admin –> Preferences.<br />

W otwartym okienku w zakładce General wpisujemy<br />

w pole CVSROOT linię:<br />

anonymous@mplayerhq.hu:/cvsroot/mplayer<br />

Następnie w sekcji Authentication zaznaczamy pole Password<br />

("pserver"). Wartości te odpowiadają opcji -d:pserver:anonymous@<br />

mplayerhq.hu:/cvsroot/mplayer z poleceń<br />

wpisywanych w konsoli i wskazują na lokalizację repozytorium,<br />

z którego będziemy pobierać pliki. W zakładce Globals<br />

warto zaznaczyć opcję Use TCP/IP compression – jeśli<br />

ustawimy ją na wartość 3, to będzie dokładnie odpowiadać<br />

opcji -z3 z podanego wcześniej polecenia. Sprawia ona, że<br />

dane podczas przesyłania są kompresowane algorytmem<br />

gzip (dzięki temu powinny szybciej znaleźć się na naszym<br />

dysku). Ostatnia z użytych opcji (-P) jest domyślnie ustawiona<br />

w zakładce Globals – Prune (remove) empty directories.<br />

Sprawia ona, że po pobraniu plików z repozytorium,<br />

www.linux.com.pl<br />

59


dla programistów<br />

kasowane są pobrane puste katalogi (oczywiście tylko na<br />

naszym dysku – w repozytorium pozostają bez zmian).<br />

Zmienione opcje zatwierdzamy przyciskiem OK.<br />

Teraz możemy zalogować sie do repozytorium. Służy do<br />

tego opcja Admin –> Login. Również w tym przypadku na<br />

pytanie o hasło po prostu wciskamy przycisk OK. Po chwili<br />

w oknie komunikatów, poniżej linii cvs -z3 login, powinien<br />

pojawić się napis *****CVS exited normally with code<br />

0*****. Skoro zalogowaliśmy się bez problemu, możemy<br />

pobrać pliki źródłowe MPlayera. W tym celu wybieramy<br />

opcję Create –> Checkout module. W otwartym okienku<br />

przechodzimy do katalogu, w którym chcemy zapisać pliki<br />

i wciskamy OK. Pozostaje nam w kolejnym okienku wpisać<br />

nazwę modułu do pobrania (w polu Enter the module<br />

name...). W naszym przypadku jest to main. Wciskamy<br />

jeszcze raz przycisk OK i czekamy, aż pliki znajdą się na<br />

naszym dysku.<br />

Jak widać, do zwykłego pobrania plików wygodniej jest<br />

po prostu wpisać dwa polecenia w konsoli, zamiast klikać<br />

i klikać... Na dłuższą metę interfejs graficzny okazuje się<br />

jednak całkiem przydatny.<br />

Rysunek 3. Po pobraniu projektu do katalogu roboczego<br />

mamy dostęp do informacji o wersjach poszczególnych<br />

plików<br />

Interfejsy graficzne<br />

Minęły już chyba bezpowrotnie czasy, gdy słowa Unix<br />

i Linux kojarzyły się z czarnym ekranem wypełnionym<br />

białymi literkami. W dobie rozbudowanych środowisk<br />

graficznych coraz trudniej o program, który nie posiadałby<br />

interfejsu graficznego. CVS nie jest wyjątkiem. Posiada<br />

graficzne nakładki działające nie tylko w systemach uniksowych,<br />

ale również w Windows czy MacOS.<br />

Adresy witryn niektórych interfejsów graficznych<br />

umieszczone są na końcu artykułu, w ramce W Sieci.<br />

Oprócz samych interfejsów graficznych (również tych<br />

dostępnych z poziomu WWW), znajdują się tam też odnośniki<br />

do takich projektów, jak CVSMonitor (pozwala śledzić<br />

aktywność w projekcie, wprowadzane zmiany itp.) czy<br />

CVSspam (program powiadamiający e-mailem o zmianach<br />

wprowadzonych w repozytorium). Poniżej pozwolę sobie<br />

krótko opisać jeden wybrany interfejs graficzny.<br />

GCvs<br />

GCvs jest bardzo rozbudowanym i wygodnym klientem<br />

CVS. Jest to odmiana programu WinCvs, przeznaczonego<br />

dla systemu Windows. Istnieje również odmiana tego<br />

programu dla platformy Mac OS X – MacCvsX. Niezależnie<br />

więc, z której platformy będziemy korzystać, mamy możliwość<br />

używania programów o praktycznie identycznych<br />

interfejsach.<br />

Program GCvs możemy pobrać z witryny domowej<br />

projektu (http://cvsgui.sourceforge.net/ ), z sekcji Download.<br />

Dostępne są zarówno źródła, jak i pakiety RPM oraz DEB.<br />

Zależnie od posiadanej przez nas dystrybucji, pobieramy<br />

odpowiedni plik i instalujemy. W przypadku Auroksa<br />

można pobrać plik gcvs-1.0-1.i386.rpm (i zainstalować<br />

poleceniem rpm -Uvh gcvs-1.0-1.i386.rpm) lub wybrać<br />

pakiet źródłowy gcvs-1.0-1.src.rpm (instalujemy go poleceniami:<br />

rpmbuild --rebuild gcvs-1.0-1.src.rpm, rpm -Uvh<br />

/usr/src/redhat/RPMS/i386/gcvs-1.0-1.i386.rpm).<br />

Po instalacji możemy go uruchomić poleceniem gcvs.<br />

Okno programu podzielone jest na trzy duże okna. Po<br />

lewej stronie mamy listę katalogów. Możemy w niej wybrać<br />

katalog, w którym akurat chcemy pracować. W górnym<br />

oknie znajduje się spis plików wraz z informacjami na<br />

temat ich aktualności. Wreszcie w trzecim, dolnym oknie,<br />

pojawiają się komunikaty drukowane przez CVS.<br />

Program jest przyjemny i wygodny w użyciu, a dzięki<br />

wypisywaniu w oknie komunikatów postaci polecenia,<br />

świetnie nadaje się do nauki CVS dla początkujących.<br />

W niniejszym artykule postaram się wskazać, jak można<br />

w GCvs wykonać wszystkie opisywane czynności.<br />

Wykorzystujemy CVS lokalnie<br />

Jak już wspomnieliśmy, CVS pozwala na pracę w trybie<br />

lokalnym. Dzięki temu możemy stworzyć repozytorium na<br />

dysku naszego komputera i korzystać z niego bez potrzeby<br />

łączenia się z siecią komputerową.<br />

Tworzymy repozytorium<br />

Tworzenie repozytorium zaczynamy od stworzenia katalogu,<br />

w którym umieszczane będą wszystkie pliki. Może on<br />

znajdować się w dowolnym, wybranym przez nas miejscu.<br />

Należy jednak pamiętać, abyśmy mieli do niego prawa<br />

odczytu i zapisu. No i oczywiście powinniśmy dysponować<br />

odpowiednią ilością wolnego miejsca na dysku. Przykładowo,<br />

niech będzie to katalog ~/repozytorium/ – w naszym<br />

katalogu domowym na pewno możemy zapisywać pliki<br />

i nie potrzebujemy do tego uprawnień użytkownika root:<br />

mkdir ~/repozytorium<br />

Teraz musimy zainicjować nasze repozytorium. Służy do<br />

tego następujące polecenie:<br />

cvs -d ~/repozytorium init<br />

Powyższe czynności wykonujemy tylko raz. Od tego<br />

momentu możemy już korzystać z utworzonego katalogu.<br />

Warto zwrócić uwagę na opcję -d katalog. Wskazuje<br />

ona lokalizację repozytorium, do którego odwołujemy<br />

się poleceniem cvs. Każdorazowe jej wpisywanie może<br />

być uciążliwe, dlatego lepiej umieścić nazwę właściwego<br />

katalogu w zmiennej środowiskowej CVSROOT. W naszym<br />

przykładzie dokonamy tego poleceniami:<br />

CVSROOT=~/repozytorium<br />

export CVSROOT<br />

Możemy te linie dopisać do któregoś z plików wykonywanych<br />

w momencie logowania, dzięki czemu nawet po prze-<br />

60<br />

marzec 2004


cvs<br />

logowaniu się zmienna środowiskowa CVSROOT będzie<br />

ustawiona. W Auroksie takim plikiem jest ~/.bash_profile.<br />

Od tej chwili możemy pomijać opcję -d katalog i stosować<br />

skróconą wersję poleceń (np. cvs init).<br />

W przypadku programu GCvs pole CVSROOT ustawiamy<br />

na ~/repozytorium, natomiast opcję Authentication na<br />

wartość Local.<br />

Jeśli chcemy, aby z repozytorium w trybie lokalnym<br />

mogli korzystać inni użytkownicy, warto przygotować je<br />

tak, jak opisano w rozdziale Tworzymy własny serwer CVS.<br />

Szczególnie należy zwrócić uwagę na rozdział Nieupoważnionym<br />

wstęp wzbroniony.<br />

Umieszczamy projekt w repozytorium<br />

Jeśli rozpoczęliśmy już pracę z naszym projektem, możemy<br />

go teraz umieścić w repozytorium. Załóżmy, że pliki projektu<br />

znajdują się w katalogu ~/projekt/. Przechodzimy do<br />

niego poleceniem cd ~/projekt, po czym wydajemy polecenie:<br />

cvs import -m "Pierwszy import projektu"S<br />

projekt gerard start<br />

Oczywiście polecenie to możemy dostosować do naszych<br />

potrzeb – ma ono postać:<br />

cvs import [-opcje] nazwa_modułu vendor release<br />

Podstawowe polecenia CVS:<br />

• checkout moduł (skrót: co) – tworzy podkatalog z kopią<br />

roboczą plików umieszczonych w repozytorium<br />

• update (skrót: up) – uaktualnia pliki kopii roboczej do najnowszej<br />

wersji obecnej w repozytorium<br />

• add plik – komunikuje CVS, że plik zostaje dołączony<br />

do projektu i ma zostać przesłany przy następnym<br />

wywołaniu commit;<br />

• remove plik – po usunięciu pliku z kopii roboczej możemy<br />

użyć tej funkcji, aby plik został również usunięty z repozytorium<br />

(przy najbliższym wywołaniu commit);<br />

• commit plik – przesyła zmiany wprowadzone w pliku do<br />

repozytorium;<br />

• diff – wypisuje różnice pomiędzy plikami z kopii roboczej<br />

i ich wersjami z repozytorium;<br />

• import – przesyła pliki do repozytorium tworząc nowy<br />

projekt;<br />

• init – inicjuje repozytorium dodając w nim katalog<br />

CVSROOT oraz domyślne pliki konfiguracyjne;<br />

• log – wyświetla informacje o zmianach w plikach;<br />

• status – podaje informacje o aktualnym stanie plików<br />

(numer wersji w repozytorium i kopii roboczej, czy pliki<br />

były edytowane itp.);<br />

• tag znacznik – ustawia nazwę symboliczną znacznik<br />

dla aktualnych wersji plików w repozytorium (można się<br />

później do niej odwoływać z użyciem opcji -r znacznik).<br />

Ciekawe opcje wywołania CVS:<br />

• -d katalog_główny_CVS – pozwala pracować na innym<br />

repozytorium niż zdefiniowane w zmiennej środowiskowej<br />

CVSROOT;<br />

• -e edytor – wskazuje nazwę edytora, który będzie wykorzystywany<br />

do wpisywania informacji do rejestru zmian<br />

(przydaje się, jeśli nie chcemy korzystać z domyślnego);<br />

• -n – nie wykonuje żadnych operacji zmieniających repozytorium<br />

lub kopię roboczą, a jedynie wypisuje komunikaty;<br />

• -z liczba – ustawia kompresję na poziom określony wartością<br />

liczba.<br />

W naszym poleceniu użyliśmy opcji -m, która pozwala<br />

dodać własną informację do rejestru zmian w projekcie.<br />

W opcji nazwa_modułu podajemy krótką nazwę,<br />

którą będzie nosił podkatalog utworzony w katalogu<br />

~/repozytorium/, zawierający pliki z naszym projektem.<br />

W polu vendor możemy wpisać dowolne słowo nie zawierające<br />

spacji i znaków specjalnych – np. może to być nasz<br />

przydomek (nick). Ostatnia opcja, release, pozwala na<br />

użycie symbolicznego określenia numeru wersji. Nazwa<br />

start odpowiada numerowi 1.1.1.1.<br />

W GCvs wybieramy opcję Create –> Import module.<br />

Następnie w otwartym oknie przechodzimy do katalogu,<br />

w którym znajdują się pliki projektu (w naszym przypadku<br />

~/projekt) i wciskamy OK. Jeśli pojawi się okienko z komunikatem<br />

błędu, to należy je dokładnie przeczytać i odpowiednio<br />

zareagować. Może okazać się przykładowo, że<br />

GCvs źle odgadnie typ pliku i uzna plik tekstowy za binarny<br />

(BINARY). W takim przypadku należy wskazać odpowiednią<br />

pozycję i wcisnąć Edit. Z listy możemy wybrać<br />

jedną z opcji: Leave unchanged (nic nie zmieniaj), Force<br />

binary (potraktuj plik jako binarny), Force text (potraktuj<br />

plik jako tekstowy) oraz Ignore (zignoruj).<br />

Warto dbać, aby pliki miały przypisany właściwy typ.<br />

Jeśli plik binarny zapiszemy jako tekstowy, to zostanie on<br />

doszczętnie zniszczony – CVS przechowuje pliki tekstowe<br />

wraz z historią zmian zapisaną w nich samych. Z tego<br />

samego powodu nie ma sensu czystych plików tekstowych<br />

przechowywać jako binarnych – wysłanie każdej poprawki<br />

do repozytorium wiązałoby się z jego powiększeniem<br />

o kolejny plik.<br />

W kolejnym oknie możemy ustalić jeszcze nazwę<br />

modułu, wpisać komunikat (odpowiednik opcji -m) oraz<br />

ustawić wartości pól Vendor i Release.<br />

Jeśli przesłanie plików do repozytorium zakończyło się<br />

bez błędów, możemy skasować nasz katalog ~/projekt/ wraz<br />

z zawartością. Za chwilę odzyskamy go z repozytorium, już<br />

razem z informacjami o wersjach poszczególnych plików.<br />

Pobieramy projekt z repozytorium<br />

Przyszedł czas na prawdziwą pracę. Zaczynając pracę<br />

z naszym projektem musimy pobrać go z repozytorium.<br />

W tym celu wybieramy sobie odpowiadający nam katalog,<br />

www.linux.com.pl<br />

61


dla programistów<br />

w którym będziemy chcieli przechowywać pliki z projektem.<br />

Może to być nawet katalog domowy (~/ ), gdyż wywołanie<br />

polecenia, które za chwilę poznamy, spowoduje<br />

utworzenie odpowiedniego podkatalogu. Podkatalog ten<br />

będzie miał taką nazwę, jakiej użyliśmy w opcji nazwa_<br />

modułu polecenia cvs import. No dobrze, zatem stwórzmy<br />

katalog ~/projekty1/ i wykonajmy nasze polecenie:<br />

mkdir ~/projekty1<br />

cd ~/projekty1<br />

cvs checkout projekt<br />

W programie GCvs po prostu wybieramy opcję Create –><br />

Checkout module. W otwartym oknie tworzymy katalog<br />

~/projekty1/, po czym wchodzimy do niego i wciskamy OK.<br />

W kolejnym oknie wpisujemy nazwę modułu do pobrania<br />

(projekt) i możemy znów wcisnąć OK. Jeszcze tylko wybieramy<br />

opcję Query –> Reload view, dzięki czemu zostanie<br />

uaktualniona lista katalogów i plików.<br />

Teraz w katalogu ~/projekty1/projekt/ mamy nasze pliki,<br />

które wcześniej znajdowały się w katalogu ~/projekt/. Czy<br />

coś się zmieniło? Tak – pojawiły się podkatalogi o nazwie<br />

CVS/. Zawierają one informacje o wersjach – nie należy ich<br />

edytować ani kasować.<br />

Dokonywanie poprawek<br />

Edycji plików dokonujemy w odpowiednich programach<br />

– ta sprawa z oczywistych względów jest niezależna od CVS.<br />

Tak więc do edycji plików tekstowych możemy użyć naszego<br />

ulubionego edytora (np. Vim), do retuszowania fotografii<br />

(również ich wersjami można zarządzać dzięki CVS) możemy<br />

wykorzystać GIMP-a itd. Gdy dokonamy już poprawek i<br />

jesteśmy z nich zadowoleni, należy wydać polecenie:<br />

cvs commit<br />

Zostaniemy poproszeni o podanie komentarza dotyczącego<br />

tego uaktualnienia. Możemy też wskazać konkretne pliki,<br />

Rysunek 5. Wybieranie odpowiednich opcji porównania plików<br />

jest znacznie wygodniejsze w interfejsie graficznym<br />

które mają być wysłane do repozytorium. Wystarczy wyliczyć<br />

je na końcu polecenia, np.:<br />

cvs commit plik1.c plik3.php<br />

Możliwość ta jest bardzo przydatna, gdy chcemy już wysłać<br />

uaktualnienie do niektórych plików, podczas gdy z innymi<br />

zmodyfikowanymi chcemy jeszcze popracować.<br />

W przypadku programu GCvs zaznaczamy pliki,<br />

które chcemy uaktualnić (możemy też zaznaczyć katalog),<br />

a następnie wybieramy Modify –> Commit selection.<br />

Podajemy komentarz dotyczący uaktualnienia, po czym<br />

wciskamy OK.<br />

Jeśli nad projektem pracuje więcej osób, to może<br />

okazać się, że ktoś inny wysłał już uaktualnienie do poprawianego<br />

przez nas pliku. W takim przypadku polecenie cvs<br />

commit zakończy się błędem i komunikatem zbliżonym do<br />

poniższego:<br />

cvs commit: Up-to-date check failed for `plik1.c'<br />

W takim przypadku należy pobrać (update) do siebie<br />

najnowszą wersję pliku, a następnie zapoznać się z różnicami<br />

(pobrany plik będzie zawierał o nich informacje).<br />

Po zlikwidowaniu konfliktów w pliku, możemy<br />

skasować kopię zapasową (zapisaną w pliku o nazwie<br />

.#nazwa_pliku), a następnie ponownie wysłać plik do<br />

repozytorium.<br />

Rysunek 4. Praca z CVS w linii komend również jest dosyć<br />

wygodna – wymaga tylko lepszej znajomości poleceń<br />

Pobieranie poprawek z repozytorium<br />

Gdy mamy już na dysku (pobraną przez cvs checkout) kopię<br />

roboczą projektu, nie musimy jej już ponownie pobierać<br />

w całości. Jeśli nad naszym projektem pracują i inne osoby,<br />

to po każdej przerwie w pracy warto sprawdzić, czy nie<br />

zostały wprowadzone jakieś poprawki. Dokonujemy tego<br />

poleceniem wydanym w katalogu z projektem:<br />

cvs -n update<br />

62<br />

marzec 2004


cvs<br />

Jeśli wskaże ono jakieś zmienione pliki, możemy pobrać<br />

poprawki poleceniem:<br />

cvs update<br />

Różnica pomiędzy tymi poleceniami jest taka, że dzięki<br />

opcji -n nie dokonujemy żadnych zmian, a jedynie<br />

otrzymujemy komunikaty. Jeśli chcemy sprawdzić<br />

dokładnie, jakie zmiany zostały wprowadzone, możemy<br />

zapoznać się z historią zmian dzięki poleceniu cvs<br />

log nazwa_pliku. Następnie możemy porównać nasz<br />

plik z jego wersją w repozytorium. W tym celu wydajemy<br />

polecenie cvs diff nazwa_pliku -r nr_wersji.<br />

Wartość pola nr_wersji odczytujemy sobie z wyniku<br />

wcześniejszego polecenia. Możemy też pominąć opcję<br />

-r, a wtedy porównanie zostanie przeprowadzone<br />

z plikiem w wersji takiej, jaką mamy w naszej kopii<br />

roboczej. Opcję -r możemy wykorzystywać w innych<br />

poleceniach, np. użycie jej z poleceniem cvs update<br />

spowoduje uaktualnienie kopii roboczej do konkretnej<br />

wersji projektu z repozytorium. W ten sposób możemy<br />

edytować starsze wersje projektu.<br />

Podobnie jak w przypadku cvs commit, możemy wskazać<br />

konkretne pliki, które chcemy uaktualnić. Jeśli w repozytorium<br />

znajdują się nowsze wersje plików, to zostaną one<br />

przesłane do naszej kopii roboczej.<br />

Jak już wiemy, w GCvs możemy po prostu zaznaczyć<br />

pliki, na których chcemy pracować. Później wystarczy<br />

wskazać opcję Query –> Query update w celu sprawdzenia<br />

aktualności kopii oraz Modify –> Update selection<br />

w celu pobrania poprawek. Odpowiednie opisane<br />

wcześniej polecenia (cvs log i cvs diff) znajdują się<br />

w opcjach Query –> Log selection oraz Query –> Diff<br />

selection.<br />

Tworzymy własny serwer CVS<br />

Posiadanie repozytorium na własnym dysku jest wygodne,<br />

jednak tylko do pewnego momentu. Jeśli nad projektem<br />

pracuje więcej osób, to najczęściej nie wszystkie<br />

mają bezpośredni dostęp do naszego komputera. W takim<br />

przypadku musimy skonfigurować własny serwer CVS.<br />

Listing 1. Zawartość pliku /etc/xinetd.d/cvspserver<br />

service cvspserver<br />

{<br />

port = 2401<br />

socket_type = stream<br />

protocol = tcp<br />

wait = no<br />

user = root<br />

passenv = PATH<br />

server = /usr/bin/cvs<br />

server_args = -f --allow-root=/usr/cvsroot pserver<br />

}<br />

OFERTA PRACY DLA PROGRAMISTY<br />

Firma o ustabilizowanej pozycji na rynku zatrudni programistów<br />

zajmujących się tworzeniem oprogramowania dla platformy<br />

Linux.<br />

Wymagania:<br />

• Praktyka w programowaniu aplikacji bazodanowych SQL<br />

– najlepiej pod SYBASE ASE;<br />

• Dobra znajomość programowania w C, C++;<br />

• Dobra znajomość semantyki języka i umiejętność jej<br />

wykorzystania w praktyce: foxpro, clipper, dbase;<br />

• Pożądana znajomość pakietu CLIP (www.itk.ru);<br />

• Znajomość tematyki z zakresu zarządzania firmą – czyli<br />

systemów ERP/CRM/MRP na poziomie podstawowym.<br />

Oferty (CV, list motywacyjny, oczekiwania finansowe, termin podjęcia<br />

pracy) z dołączoną klauzula: Wyrażam zgodę na przetwarzanie danych<br />

osobowych zawartych w mojej ofercie pracy w celach rekrutacyjnych,<br />

zgodnie z ustawa z dn. 29.08.1997r. „O ochronie danych osobowych”,<br />

Dz.U. nr 133, poz. 833.<br />

Kontakt: info@softwork.com.pl<br />

WWW: www.softwork.com.pl<br />

Innym wyjściem jest umożliwienie korzystania z CVS za<br />

pomocą SSH – o tym jednak przeczytamy w następnym<br />

rozdziale.<br />

Konfiguracja serwera<br />

Wszystkie czynności wykonujemy z uprawnieniami użytkownika<br />

root. Zaczynamy od stworzenia katalogu dla repozytorium.<br />

Ponieważ będzie to katalog przeznaczony dla<br />

większej grupy użytkowników, więc możemy go umieścić<br />

przykładowo w katalogach /usr/ lub /home/. Ja proponuję<br />

utworzyć katalog /usr/cvsroot/:<br />

mkdir /usr/cvsroot<br />

Następnie postępujemy podobnie jak przy trybie lokalnym<br />

– musimy zainicjować nasze repozytorium:<br />

cvs -d /usr/cvsroot init<br />

Ze względu na to, że tym razem w naszym katalogu będą<br />

przechowywane hasła użytkowników, warto ograniczyć do<br />

niego dostęp:<br />

chmod -R o-rwx /usr/cvsroot<br />

Dzięki temu tylko użytkownik i grupa root będą mieli<br />

prawa do tego katalogu.<br />

Serwer CVS uruchamiany jest przez demona xinetd,<br />

więc musimy stworzyć specjalny plik konfiguracyjny – /<br />

etc/xinetd.d/cvspserver. Treść, którą należy w nim umieścić,<br />

znajduje się na Listingu 1. Wartość zmiennej server jest<br />

zależna od tego, gdzie mamy zainstalowany CVS. Najlepiej<br />

www.linux.com.pl<br />

63


dla programistów<br />

z trzech pól oddzielonych dwukropkiem. Kolejne pola<br />

to:<br />

• nazwa użytkownika CVS (a więc nazwa wykorzystywana<br />

przy logowaniu się);<br />

• hasło oraz nazwa użytkownika, z którego prawami ma<br />

działać CVS, jeśli autoryzacja przebiegnie pomyślnie.<br />

Tylko pierwsze pole jest obowiązkowe – dwa ostatnie<br />

pola są opcjonalne i można je pominąć. Jak jednak wspomnieliśmy<br />

przed chwilą, należałoby podać co najmniej<br />

hasło. Zobaczmy na przykładowe dwie linie naszego pliku<br />

z hasłami:<br />

Rysunek 6. Informacje z CVS o wielu projektach możemy uzyskać<br />

również za pośrednictwem WWW<br />

sprawdzić to poleceniem which cvs. Ścieżka umieszczona<br />

w zmiennej server_args to oczywiście ścieżka do naszego<br />

katalogu z repozytorium.<br />

Pozostaje nam uruchomić ponownie demona xinetd<br />

poleceniem /etc/rc.d/init.d/xinetd restart.<br />

Konfiguracja klienta<br />

Z punktu widzenia użytkownika korzystającego z CVS,<br />

jedyną różnicą w porównaniu z trybem lokalnym jest inna<br />

wartość zmiennej środowiskowej CVSROOT. Chcąc połączyć<br />

się z serwerem CVS będziemy ustawiać ją następująco:<br />

CVSROOT=:pserver:gerard@192.168.0.1:/usr/cvsroot<br />

export CVSROOT<br />

Oczywiście zamiast gerard i 192.168.0.1 wpisujemy naszą<br />

nazwę użytkownika na zdalnym serwerze oraz adres tego serwera.<br />

Opcja pserver określa sposób autoryzacji użytkownika.<br />

W przypadku korzystania z GCvs, ustawiamy w polu<br />

CVSROOT wartość gerard@192.168.0.1:/usr/cvsroot, natomiast<br />

w sekcji Authentication zaznaczamy pole Password<br />

(proszę porównać opis w rozdziale Pobieramy dane ze<br />

zdalnego serwera CVS).<br />

Poza tym obsługa nie różni się niczym od obsługi CVS<br />

w trybie lokalnym.<br />

Hasła użytkowników<br />

CVS w domyślnej konfiguracji pozwala na autoryzowanie<br />

użytkowników na podstawie systemowego pliku z hasłami.<br />

Niesie to ze sobą duże zagrożenie, gdyż CVS stosuje<br />

bardzo proste kodowanie przesyłanych haseł. Jeśli więc<br />

użytkownicy będą korzystać ze swoich haseł systemowych,<br />

potencjalnemu włamywaczowi będzie bardzo łatwo je<br />

odszyfrować (zakładając, że uda mu się je podsłuchać – co<br />

wcale nie musi być trudne).<br />

Z tego powodu warto poświęcić trochę czasu na<br />

edycję pliku /usr/cvsroot/CVSROOT/passwd. Plik ten ma<br />

bardzo prostą konstrukcję. Każda linia może składać się<br />

gerard:$1$61pntEz1$my4xVjdiPpLXj8Zgm23i8.<br />

ktos:$1$RrFGfpK2$/54OCXueq4SpQ4a/SOBSC0:gerard<br />

Mamy tu użytkownika gerard (który musi istnieć w systemie)<br />

z zakodowanym hasłem cvspass. Oprócz tego mamy<br />

użytkownika ktos z zakodowanym hasłem ProsteHaslo,<br />

który po poprawnej autoryzacji będzie pracował w CVS<br />

jako gerard. Dzięki temu użytkownik o nazwie ktos nawet<br />

nie musi istnieć w systemie, ale i tak będzie miał możliwość<br />

korzystania z CVS. Hasła są kodowane tą samą metodą<br />

co w pliku /etc/shadow, więc można je stamtąd po prostu<br />

przekleić.<br />

Prawa do pliku /usr/cvsroot/CVSROOT/passwd może<br />

mieć tylko root, więc wydajemy polecenie chmod 600 /usr/<br />

cvsroot/CVSROOT/passwd. Oprócz tego w pliku /usr/cvsroot/<br />

CVSROOT/config wstawiamy linię o treści SystemAuth=no<br />

(wystarczy usunąć znak # znajdujący się na jej początku),<br />

a wtedy z CVS będą mogli korzystać tylko użytkownicy<br />

określeni w naszym pliku /usr/cvsroot/CVSROOT/passwd.<br />

Nieupoważnionym wstęp wzbroniony<br />

Jeśli użytkownicy mają mieć dostęp do repozytorium,<br />

musimy ustawić odpowiednie prawa dostępu do plików<br />

i katalogów. Katalogi wewnątrz repozytorium powinny<br />

być zapisywalne przez osoby, które mają mieć możliwość<br />

zmieniania plików w tych katalogach. Co więcej, jeśli nawet<br />

dana osoba ma tylko czytać pliki, to i tak musi mieć prawo<br />

do zapisu (ze względu na tworzenie plików blokujących).<br />

Sprowadza się to do tego, że jeśli chcemy, aby nad jakimś<br />

projektem pracowała większa ilość osób, to musimy stworzyć<br />

w systemie grupę, do której wszystkie te osoby będą<br />

należeć. Grupę taką należy uczynić właścicielem katalogów<br />

i plików z projektem.<br />

Korzystanie z CVS poprzez SSH<br />

Wiemy już, że korzystanie z CVS za pomocą metody pserver<br />

może być niebezpieczne ze względu na słabe kodowanie<br />

haseł podczas przesyłania. Problem ten możemy obejść<br />

stosując tunel SSH lub wykorzystując SSH bardziej bezpośrednio.<br />

CVS daje nam taką możliwość – jedną z metod<br />

pracy zdalnej jest wykorzystanie SSH do przesyłania poleceń<br />

i danych. Jeśli zdecydujemy się na tę drugą metodę,<br />

64<br />

marzec 2004


cvs<br />

użytkownicy będą musieli ustawić następujące zmienne<br />

środowiskowe:<br />

CVSROOT=:ext:gerard@192.168.100.1:/usr/cvsroot<br />

CVS_RSH=ssh ; export CVSROOT CVS_RSH<br />

Polecenia te można oczywiście dodać do pliku ~/.bash_profile<br />

lub innego odpowiedniego dla naszej dystrybucji. Od tej<br />

chwili wszystkie polecenia będą miały taką samą postać,<br />

jak podczas korzystania z CVS lokalnie.<br />

Korzystając z programu GCvs musimy ustawić pole<br />

CVSROOT na wartość gerard@192.168.100.1:/usr/cvsroot,<br />

a opcję Authentication na Secure shell.<br />

Oczywiście, aby skorzystać z tej metody, musimy<br />

spełnić kilka warunków. Na komputerze z repozytorium<br />

musi być uruchomiony serwer SSH. Oprócz tego każdy<br />

z użytkowników mających mieć dostęp do CVS musi mieć<br />

tam konto – do autoryzacji wykorzystywane jest jego hasło<br />

systemowe. Do katalogów repozytorium stosują się wszystkie<br />

zasady opisane w rozdziale Nieupoważnionym wstęp<br />

wzbroniony – musimy zadbać o odpowiednie ustawienia<br />

praw dostępu do plików.<br />

Przy wykorzystaniu dostępu przez SSH nie potrzebujemy<br />

konfigurować serwera CVS. W zamian za to nie ma możliwości<br />

jednorazowego zalogowania się do CVS i wykonywania<br />

kolejnych czynności. Każde polecenie musi być autoryzowane<br />

hasłem. Możemy tego uniknąć wykorzystując parę kluczy<br />

SSH (publiczny i prywatny). Można o tym przeczytać w artykule<br />

Praca z OpenSSH w numerze styczniowym.<br />

W Sieci:<br />

• Witryna domowa CVS:<br />

http://www.cvshome.org/<br />

• Zalety i wady CVS:<br />

http://www.softax.pl/prywatne/marcink/narzedzia/<br />

narzedzia_cvs/<br />

• The CVS Book – darmowa książka o CVS:<br />

http://cvsbook.red-bean.com/<br />

• GCvs:<br />

http://cvsgui.sourceforge.net/<br />

• CVS Monitor:<br />

http://ali.as/devel/cvsmonitor/<br />

• TkCVS:<br />

http://www.twobarleycorns.net/tkcvs.html<br />

• CVSspam:<br />

http://www.badgers-in-foil.co.uk/projects/cvsspam/<br />

• CVS2HTML:<br />

http://cvs.sslug.dk/cvs2html/<br />

• CVSadmin:<br />

http://www.cooptel.qc.ca/~limitln/cvsadmin/<br />

• CVSweb:<br />

http://www.freebsd.org/projects/cvsweb.html<br />

• LinCVS:<br />

http://www.lincvs.org/<br />

• CvsGraph:<br />

http://www.akhphd.au.dk/~bertho/cvsgraph/<br />

www.linux.com.pl<br />

65


dla graczy<br />

Racer<br />

Krzysztof Wolski<br />

Racer jest pierwszym trójwymiarowym symulatorem<br />

wyścigów samochodowych stworzonym<br />

z myślą o Linuksie. Gra posiada również wersje<br />

na inne systemy operacyjne, np. Windows. Omawiana<br />

pozycja udostępniona jest do pobrania za darmo<br />

dla celów niekomercyjnych. Na stronie projektu dostępny<br />

jest również kod źródłowy. Potrzebne nam będą dwa pliki<br />

– jeden z danymi dla gry i drugi z binariami. Binaria znajdujące<br />

się na stronie są przeznaczone dla kart graficznych<br />

opartych na kościach NVIDIA. Bardziej zaawansowani<br />

użytkownicy Linuksa mogą spróbować skompilować własną<br />

wersję Racera.<br />

Dla użytkowników dystrybucji Aurox polecam ściągnięcie<br />

i zainstalowanie pakietu RPM. Adres strony, na której<br />

można znaleźć wspomniany plik, znajduje się na końcu<br />

artykułu. W przypadku instalowania pakietu RPM postępujemy<br />

w standardowy sposób, czyli posiadając uprawnienia<br />

administratora wydajemy polecenie: rpm -Uvh racer-0.5.0-<br />

4pdc.i686.rpm.<br />

Po tak przeprowadzonej instalacji uruchomienie gry jest<br />

już prostą czynnością – wybieramy odpowiednią pozycję<br />

w menu Gry menedżera okien.<br />

Po pomyślnym uruchomieniu gry, na ekranie powinno<br />

pojawić się menu główne. Najbardziej interesującymi opcjami<br />

dla gracza są oczywiście te związane z wyborem trasy,<br />

na której będzie rozgrywany wyścig (Select track) oraz opcja<br />

związana z wyborem samochodu, którym będziemy się<br />

ścigać (Select car).<br />

Standardowo do gry dołączony jest tylko jeden samochód<br />

oraz tylko jedna trasa, ale gra została napisana w ten<br />

sposób, że bardzo łatwo jest do niej dodać nowe samochody<br />

czy trasy. Należy pobrać je ze strony http://www.racerxtreme.com/,<br />

a następnie rozpakować i skopiować pliki do<br />

odpowiedniego katalogu. W przypadku tras odpowiednim<br />

katalogiem (jeśli gra została zainstalowana z pakietu RPM)<br />

jest /usr/games/racer/data/tracks, natomiast dla samochodów<br />

jest to katalog /usr/games/racer/data/cars. Następnie<br />

wystarczy ponownie uruchomić grę.<br />

Prowadzenie samochodu odbywa się przy pomocy<br />

myszki – na początku może to sprawiać niemałe trudności,<br />

ale po przejechaniu kilku lub kilkunastu okrążeń można<br />

dojść do wprawy. Lewym przyciskiem myszki zmieniamy<br />

bieg na wyższy, natomiast prawym dokonujemy jego redukcji.<br />

Przesuwając myszkę do przodu przyspieszamy, natomiast<br />

przesunięcie myszki do tyłu to hamowanie. Bieg wsteczny<br />

jest uruchamiany po zredukowaniu do biegu jałowego (N)<br />

i ponownym naciśnięciu prawego przycisku myszy (tak jak<br />

w przypadku prawdziwych samochodów, załączony bieg<br />

wsteczny sygnalizuje litera R).<br />

Rysunek 1. Racer w akcji<br />

Grafika w grze jest dopracowana, choć zależy to bardziej<br />

od autora danej trasy niż od samego autora gry. Zainteresowani<br />

odnajdą różne modele samochodów, które prezentują<br />

się naprawdę wyśmienicie pod względem graficznym<br />

– dostępna ilość samochodów może naprawdę przyprawić<br />

o zawrót głowy.<br />

Ponieważ gra znajduje się w stosunkowo wczesnej<br />

fazie rozwoju, nie jest pozbawiona błędów. Objawia się<br />

to dziwnym zachowaniem samochodu w czasie wypadku,<br />

który koziołkuje w powietrzu kilkanaście razy i najczęściej<br />

tego rodzaju kraksa kończy się koniecznością rozpoczęcia<br />

wyścigu od początku (gra po prostu się „gubi”). Dźwięki<br />

w grze nie przedstawiają się jeszcze najlepiej, ale można<br />

mieć nadzieję na poprawę sytuacji w przyszłości – prace<br />

wciąż trwają.<br />

Racer na pewno jest godny uwagi. Miejmy nadzieję, że<br />

następne wersje będą jeszcze lepsze zarówno pod względem<br />

dźwiękowym, jak i dopracowaniem sposobu prowadzenia<br />

samochodu. Z pewnością warto czasem usiąść i dla<br />

rozluźnienia po ciężkim dniu pościgać się na torze wyścigowym.<br />

Dostępna ilość tras i samochodów na pewno nie spowoduje,<br />

że gra szybko się znudzi.<br />

Wymagania sprzętowe:<br />

• Karta grafiki ze sprzętowym wspomaganiem 3D (najlepsza<br />

w tym przypadku będzie karta oparta o układy<br />

firmy NVIDIA);<br />

• 64 MB RAM;<br />

• X Window.<br />

http://www.racer.nl/<br />

http://www.racer-xtreme.com/<br />

66<br />

marzec 2004


Wybierz swoją prenumeratę:<br />

Drodzy Prenumeratorzy!<br />

Wspólnie z firmą INTERNEWS, dystrybutorem i importerem<br />

czasopism obcojęzycznych, przygotowaliśmy dla Was atrakcyjną<br />

ofertę zakupu prenumeraty ze zniżką wyszczególnionych<br />

w tabeli czasopism informatycznych.<br />

Zamówienia i szczegółowe informacje:<br />

tel. (22) 853 60 23, 853 87 77. www.linux.com.pl.<br />

W tym numerze polecamy:<br />

Dr. Dobb’s Journal jest wiodącym<br />

magazynem dla deweloperów oprogramowania.<br />

Od ponad 25 lat jest on<br />

najlepszym źródłem informacji dla profesjonalnych<br />

programistów, pisanym<br />

i redagowanym przez programistów<br />

dla programistów. W DDJ znajdziesz<br />

liczne algorytmy, wskazówki przydatne<br />

podczas pisania programów,<br />

opracowania dotyczące podstawowych<br />

zagadnień z projektowania oprogramowania oraz<br />

wszystkie listingi omawianych programów, co zagwarantuje<br />

Ci, że staniesz się jeszcze lepszym programistą.<br />

Dr. Dobb’s Journal is the leading magazine for software<br />

developers. For more than 25 years it has been the<br />

foremost source of software tools for the professional<br />

programmer. It is written and edited by programmers for<br />

programmers. With DDJ you’ll get algorithms, coding tips,<br />

discussions of fundamental design issues, and program<br />

listings guaranteed to make you a better programmer.<br />

C/C ++ Users Journal jest magazynem<br />

poświęconym praktycznym<br />

rozwiązaniom dla programistów<br />

C/C++, który omawia zaawansowane<br />

techniki programowania w<br />

C, C++ oraz Javie. Każde wydanie<br />

dostarcza szczegółowych informacji<br />

o wymienionych językach, stosowanych<br />

standardach oraz programowaniu<br />

zorientowanym obiektowo.<br />

Zajrzyj do CUJ, aby znaleźć najlepsze oraz najnowsze<br />

techniczne informacje o językach C i C++, które wciąż<br />

są najlepszym wyborem podczas rozwijania współczesnego<br />

oprogramowania.<br />

C/C ++ Users Journal is the magazine devoted to practical<br />

solutions for C/C ++ programmers, providing advanced<br />

techniques in C, C ++ and Java. Each issue provides<br />

how-to articles with full source code, and in-depth information<br />

about languages, standards and object-oriented<br />

programming. Look to CUJ for the best and latest<br />

in technical information on C and CC++, the language<br />

of choice for contemporary software development.<br />

www.linux.com.pl<br />

Tytuł czasopisma obecna cena cena<br />

prenumeraty promocyjna<br />

półrocznej prenumeraty<br />

(brutto) półrocznej<br />

ACCESS OFFICE & VB ADVISOR 237,70 180,70<br />

C-C++ USERS JOURNAL 199,50 152,10<br />

COMP.SHOPPER CD 222,50 171,20<br />

COMPUTER ARTS CD* 366,20 277,70<br />

COMPUTER ARTS SPECIAL CD 391,80 320,00<br />

COMPUTER GAMING WORLD CD 354,30 268,70<br />

COMPUTER SHOPPER USA 203,20 155,60<br />

CRE@TE ONLINE CD 351,70 266,30<br />

DR.DOBB`S JOURNAL 199,50 152,10<br />

DVD REVIEW 280,10 214,30<br />

DYNAMIC GRAPHICS 118,90 90,40<br />

HOME ENTERTAIMENT 216,90 165,80<br />

INTELLIGENT ENTERPRISE 355,70 270,40<br />

INTERNET MAGAZINE CD 223,70 170,90<br />

LAPTOP 240,30 212,80<br />

LINUX FORMAT CD* 354,30 268,70<br />

LINUX JOURNAL 203,80 155,90<br />

LINUX MAGAZINE 232,30 177,30<br />

MAC FORMAT CD* 354,30 268,70<br />

MAC USER 440,20 339,30<br />

MACWORLD UK CD 287,60 218,70<br />

MACWORLD USA CD 203,20 155,60<br />

MSDN MAGAZINE 239,70 182,80<br />

OFFICIAL PS2 MAGAZINE* 329,20 250,00<br />

OFFICIAL UK PLAY`STATION CD* 297,30 226,00<br />

PC ADVISOR CD 208,50 173,50<br />

PC FORMAT CD* 388,70 318,80<br />

PC FORMAT DVD* 432,50 354,10<br />

PC GAMER CD* 301,80 230,50<br />

PC MAGAZINE UK CD 183,30 140,60<br />

PC MAGAZINE USA 520,60 397,20<br />

PC PLUS CD 401,60 329,30<br />

PC PRO CD 293,80 224,50<br />

PC UTILITIES CD 287,60 218,70<br />

PC WORLD USA 163,30 125,60<br />

PC ZONE CD* 252,20 192,30<br />

PERS.COMP.WOR.CD 205,40 158,30<br />

PLAY MAG UK DVD* 234,60 179,00<br />

PLAYSTATION WORLD DVD* 244,80 187,80<br />

PRACTICAL INTERNET CD* 320,60 243,50<br />

PSM2 DVD* 240,30 183,30<br />

SOFTWARE DEWELOPMENT 199,50 152,10<br />

SYS ADMIN 237,10 180,30<br />

WEB PAGES CD 167,80 145,80<br />

WHAT PC ? CD 239,10 182,50<br />

WIRELESS BUSINESS & TECHNOLOGY 237,70 170,70<br />

* wraz z kosztami wysyłki zwykłej (pln)<br />

67


warto przeczytać<br />

dział prowadzi: Piotr Truszkowski<br />

piotrt@linux.com.pl<br />

warto przeczytać<br />

W obronie wolności<br />

Autor: Sam Williams<br />

Tłumaczenie: Krzysztof Masłowski<br />

ISBN: 83-7361-247-5<br />

Tytuł oryginału: Free as in Freedom<br />

Format: B5, stron: 296<br />

Data wydania: 11/2003<br />

Cena książki: 34.90 zł<br />

<br />

Richard Stallman to postać bardzo dobrze znana w świecie Wolnego Oprogramowania. Książka Sama Williamsa,<br />

zatytułowana „W obronie wolności”, wydana niedawno przez wydawnictwo Helion, opowiada nam<br />

historię kontrowersyjnego geniusza, który zmienił spojrzenie na świat oprogramowania. Znajdziemy w niej<br />

historię Stallmana od jego lat młodzieńczych aż do czasu teraźniejszego. Z licznych wywiadów przedstawionych<br />

w tym tytule, wyłania sie obraz człowieka wyobcowanego i samotnego, dla którego pasją i domem<br />

stał się świat uniwersyteckich komputerów i oprogramowania. Poznamy czynniki, które popchnęły bohatera<br />

książki do walki o idee ruchu Wolnego Oprogramowania.<br />

Richard Stallman jest osobą bardzo kontrowersyjną. Z jednej strony nie sposób nie docenić jego zasług,<br />

z drugiej zaś, podejście do świata przeplata się z religijną, niemalże fanatyczną ideologią. Czytelnik wgłębiając<br />

się w kolejne rozdziały dochodzi do wniosku, że ideologia Stallmana wcale nie jest taka, jaką mu<br />

się wydawała, staje się dziwnie logiczna i warto się z nią utożsamiać.<br />

Polecam ten tytuł absolutnie każdemu – zarówno ludziom korzystającym z oprogramowania Open Source,<br />

jak i tym broniących oprogramowania z niedostępnym kodem źródłowym. Nie zawiodą się także Ci, którzy chcą poznać Stallmana z innego<br />

punktu widzenia.<br />

Obraz całości psują drobne błędy językowe, ale nie jest to zbytnim problemem – książka została również wydana w postaci elektronicznej, którą<br />

można pobrać ze strony wydawnictwa Helion i modyfikować zgodnie z potrzebami. Jaki będzie kolejny rozdział?<br />

FreeBSD. Księga eksperta<br />

Autor: Roderick W. Smith<br />

Tłumaczenie: Marcin Jędrysiak<br />

ISBN: 83-7361-158-4<br />

Tytuł oryginału: FreeBSD: The Complete Reference<br />

Format: B5, stron: 824 (oprawa twarda)<br />

Zawiera CD-ROM<br />

Data wydania: 12/2003<br />

Cena książki: 89.00 zł<br />

FreeBSD uchodzi za niemalże idealny system serwerowy. Elastyczność, swoboda działania i moc, którą<br />

wraz z systemem otrzymuje jego przyszły administrator, mogą się jednak wyrwać spod kontroli. Jak<br />

zacząć i jak posłużyć się tym systemem, aby osiągnąć maksimum jego bezpieczeństwa i wydajności?<br />

Odpowiedzi na te, jak i inne pytania, przedstawia nam Roderick W. Smith, autor książki o wiele mówiącym<br />

tytule: „FreeBSD. Księga eksperta”. Ilość omówionych tematów przytłacza. Jest ich tak wiele, że sam<br />

spis treści zajmuje ponad 12 stron. Zaczynając od historii systemu, poprzez jego instalację, konfigurację,<br />

omówienie serwerów plików, drukarek, www, logowania i innych, poprzez przystosowanie FreeBSD do<br />

pracy w charakterze stacji roboczej. Książka „FreeBSD. Księga eksperta” należy do tej grupy tytułów,<br />

które nie starzeją się przez bardzo długi okres czasu. Dzięki dokładnym omówieniom przedstawionych<br />

problemów, ilości poruszonych zagadnień i przystępnemu językowi autora, mogę polecić ten tytuł każdemu,<br />

kto ma ochotę poznać FreeBSD i szuka książki, która pomoże mu w realizacji tego celu. Gorąco<br />

polecam.<br />

Bestsellery Merlina<br />

Lista najlepiej sprzedających się książek informatycznych<br />

w sklepie internetowym www.merlin.pl, w styczniu:<br />

1. Zaawansowane modele finansowe z wykorzystaniem Excela i VBA (+ CD-ROM) – M. Jackson, M. Staunton, Wyd. Helion, 2003<br />

2. Google dla praktyków – A. Szewczyk, Wyd. Mikom, 2003<br />

3. Delphi. Tworzenie aplikacji bazodanowych w praktyce – P. Stokłosa, Wyd. Read Me, 2003<br />

4. BIOS. Leksykon kieszonkowy – A. Pyrchla, Wyd. Helion, 2003<br />

5. Kurs HTML. Jak stworzyć własną witrynę WWW, Wyd. Axcel Springer, 2003<br />

6. E-Commerce – B. Gregor, M. Stawiszyński, Wyd. Branta, 2002<br />

7. Fotografia cyfrowa – B. Long, Wyd. Helion, 2003<br />

8. Nauka języka XML – E.T. Ray, G. Werner, Wyd. Read Me, 2001<br />

9. Cisco. Technologie telekomunikacyjne – B. Dunsmore, T. Skandier, Wyd. Mikom, 2003<br />

10. Hakerzy w Linuksie. Sekrety zabezpieczeń sieci komputerowych. Wydanie drugie – B. Hatch, J. Lee, G. Kurtz,<br />

Wyd. Translator, 2003<br />

www.linux.com.pl<br />

69


Zainwestuj w siebie, zainwestuj w swojego pracownika<br />

PRENUMERATA TO NAJLEPSZY WYBÓR<br />

Z A M Ó W I E N I E<br />

Prosimy wypełnić czytelnie i przesłać faksem na numer: (22) 860 17 71 lub listownie na adres Software-Wydawnictwo Sp. z o.o.,<br />

Lewartowskiego 6, 00-190 Warszawa, e-mail: pren@software.com.pl. Przyjmujemy też zamówienia telefoniczne: (22) 860 17 67<br />

Imię i Nazwisko<br />

Stanowisko<br />

ID kontrahenta*<br />

* jeżeli jesteś już klientem firmy Software-Wydawnictwo Sp. z o.o. – wystarczy, że podasz swój numer<br />

ID kontrahenta; jeżeli nie posiadasz takiego numeru, podaj swe dane w tabeli Dane teleadresowe<br />

Upoważniam firmę Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT bez podpisu odbiorcy<br />

Pieczęć firmy i podpis<br />

Dane teleadresowe<br />

Nazwa firmy<br />

Dokładny adres<br />

Telefon (wraz z numerem kierunkowym)<br />

Adres e-mail<br />

Faks (wraz z numerem kierunkowym)<br />

Numer NIP firmy<br />

Tytuł pisma<br />

Liczba<br />

kolejnych<br />

numerów<br />

Liczba<br />

zamawianych<br />

prenumerat<br />

Od numeru<br />

pisma<br />

lub miesiąca<br />

Opłata w zł<br />

Aurox<br />

Numery specjalne Linux+ Extra! z dystrybucją Aurox Linux<br />

4<br />

Oferta dla szkół: 99 zł<br />

Oferta standardowa: 119 zł<br />

Linux+<br />

Miesięcznik użytkowników systemów linuksowych<br />

12<br />

Oferta dla studentów i osób prywatnych: 180 zł<br />

Oferta dla firm: 250 zł<br />

Linux+ Extra!<br />

Numery specjalne z dystrybucjami Linuksa<br />

8<br />

Oferta dla prenumeratorów Linux+ lub Software 2.0: 198 zł<br />

Oferta standardowa: 232 zł<br />

Linux w szkole<br />

Kwartalnik o stosowaniu Linuksa w edukacji<br />

4 99 zł<br />

Linux+ DVD<br />

Miesięcznik użytkowników systemów linuksowych 12<br />

Oferta dla studentów i osób prywatnych: 198 zł *<br />

Oferta dla firm: 270 zł *<br />

Zamiana prenumeraty Linux+ na Linux+ DVD: 18 zł *<br />

W sumie<br />

(liczba prenumerat * cena)<br />

* oferta promocyjna ważna do końca maja<br />

UWAGA! Nadesłanie zamówienia jest jednocześnie zobowiązaniem do zapłaty!<br />

SOFTWARE-WYDAWNICTWO SP. Z O.O.<br />

ul. Lewartowskiego 6, 00-190 Warszawa, e-mail: pren@software.com.pl

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!