aktualnoÅci
aktualnoÅci
aktualnoÅci
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§ion<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