Debian Reference ---------------- Osamu Aoki Koordynator tłumaczenia: Bartosz Feński aka fEnIo Rozdział A.1, `Autorzy' CVS, czwartek, 18 styczeń 2007, 11:53:26 UTC ------------------------------------------------------------------------------- Streszczenie ------------ Debian Reference (http://qref.sourceforge.net/) z założenia stanowić ma _podręcznik poinstalacyjny_ Debiana, będąc jednocześnie szerokim omówieniem tego systemu. Dokument opisuje wiele aspektów administracji, ilustrując je przykładowymi poleceniami. Zawarte w nim samouczki, porady i inne informacje dotyczą tematów takich jak: podstawowe założenia systemu Debian, wskazówki instalacyjne, zarządzanie pakietami, jądro Linuksa, dostrajanie systemu, konfiguracja bramy sieciowej, edytory tekstu, CVS, programowanie oraz GnuPG (dla zwykłych użytkowników). Prawa autorskie --------------- Copyright (C) 2001--2005 by Osamu Aoki . Copyright (Rozdział 2) (C) 1996--2001 by Software in the Public Interest. Ten dokument może zostać użyty zgodnie z warunkami GNU General Public License w wersji 2 lub wyższej. (http://www.gnu.org/copyleft/gpl.html) Udziela się zgody na dystrybuowanie wiernych kopii tego dokumentu pod warunkiem opatrzenia wszystkich kopii informacją o prawach autorskich a także niniejszym pozwoleniem. Udziela się zgody na tworzenie i dystrybucję zmodyfikowanych wersji tego dokumentu na warunkach takich, jak w przypadku wiernych kopii, pod warunkiem, że całe zmodyfikowane dzieło rozprowadzane jest na zasadach identycznych do zawartych w niniejszym pozwoleniu. Udziela się zgody na kopiowanie i dystrybucję tłumaczeń tego dokumentu w innym języku, zgodnie z powyższymi warunkami dotyczącymi modyfikowanych wersji dokumentu, z tym wyjątkiem, iż tłumaczenie niniejszego pozwolenia musi zostać zatwierdzone przez Free Software Foundation lub pozostać w brzmieniu oryginalnym. Powyższe tłumaczenie _nie_ zostało zatwierdzone przez Free Software Foundation i w związku z tym _nie_ jest w żadnym stopniu wiążące. Ma jedynie charakter informacyjny, a w przypadku redystrybucji lub modyfikacji dokumentu należy stosować się do oryginału zamieszczonego poniżej. Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this document into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. ------------------------------------------------------------------------------- Spis treści ----------- 1. Wstęp 1.1. Oficjalny dokument 1.2. Konwencje w dokumencie 1.3. Przykładowe skrypty 1.4. Podstawowe ustawienia 1.5. Podstawowe informacje o dystrybucjach Debiana 2. Debian -- Podstawy 2.1. Archiwa Debiana 2.1.1. Struktura katalogów 2.1.2. Dystrybucje Debiana 2.1.3. Dystrybucja `stabilna' 2.1.4. Dystrybucja `testowa' 2.1.5. Dystrybucja `niestabilna' 2.1.6. Dystrybucja `frozen' (`zamrożona') 2.1.7. Kryptonimy dystrybucji Debiana 2.1.8. Kryptonimy używane w przeszłości 2.1.9. Źródło kryptonimów 2.1.10. Katalog `pool' 2.1.11. Nota historyczna o dystrybucji Sid 2.1.12. Pakiety umieszczone w `incoming/' 2.1.13. Odzyskiwanie starszego pakietu 2.1.14. Podział na architektury 2.1.15. Kod źródłowy 2.2. System zarządzania pakietami w Debianie 2.2.1. Przegląd pakietów Debiana 2.2.2. Format pakietów Debiana 2.2.3. Zasady nadawania nazw pakietom Debiana 2.2.4. Ochrona lokalnych plików konfiguracyjnych 2.2.5. Skrypty instalacyjne i deinstalacyjne 2.2.6. Priorytety pakietów 2.2.7. Pakiety wirtualne 2.2.8. Zależności między pakietami 2.2.9. Znaczenie ,,pre-depends'' 2.2.10. Status pakietu 2.2.11. Zapobieganie instalacji nowych wersji pakietów 2.2.12. Pakiety źródłowe 2.2.13. Tworzenie pakietów binarnych ze źródłowych 2.2.14. Tworzenie nowych pakietów Debiana 2.3. Aktualizacja systemu Debian 2.3.1. Sposoby aktualizacji systemu Debian 2.3.2. Przegląd narzędzi do zarządzania pakietami 2.3.3. `dpkg' 2.3.4. APT 2.3.5. `dselect' 2.3.6. Aktualizacja działającego systemu 2.3.7. Pobrane i chwilowo zapisane na dysku pliki `.deb' 2.3.8. Rejestracja zmian w pakietach 2.4. Proces ładowania systemu w Debianie 2.4.1. Program `init' 2.4.2. Poziomy startu (Runlevels) 2.4.3. Modyfikacje procesu ładowania 2.5. Wsparcie dla różnorodności 2.6. Internacjonalizacja 2.7. Debian i kernel 2.7.1. Kompilacja jądra ze źródeł innych, niż debianowe 2.7.2. Narzędzia do tworzenia jądra 2.7.3. Specjalne wyposażenie do obsługi modułów jądra 2.7.4. Usuwanie starego pakietu z jądrem 3. Wskazówki dotyczące instalacji Debiana 3.1. Główne wskazówki dotyczące instalacji systemu Linux 3.1.1. Podstawy zgodności sprzętowych 3.1.2. Określanie informacji o sprzęcie i układach płyty głównej. 3.1.3. Określanie informacji o sprzęcie za pomocą Debiana; 3.1.4. Określanie informacji o sprzęcie za pomocą innego systemu operacyjnego: 3.1.5. Mity o Lilo 3.1.6. GRUB 3.1.7. Wybór zestawu dyskietek startowych 3.1.8. Instalacja 3.1.9. Nazwy hostów i adresy IP używane w sieci LAN 3.1.10. Konta użytkowników 3.1.11. Tworzenie systemów plików 3.1.12. Wytyczne dotyczące pamięci DRAM 3.1.13. Przestrzeń wymiany 3.2. Konfiguracja Basha 3.3. Konfiguracja myszy 3.3.1. Myszy PS/2 3.3.2. Mysz na USB 3.3.3. Touchpad 3.4. Konfiguracja NFS 3.5. Konfiguracja Samby 3.6. Konfiguracja drukarki 3.6.1. `lpr'/`lpd' 3.6.2. CUPS(TM) 3.7. Inne wskazówki instalacyjne 3.7.1. Doinstaluj jeszcze trochę pakietów po wstępnej instalacji 3.7.2. Moduły 3.7.3. Podstawy instalacji CD-RW 3.7.4. Automatyczne wyłączanie komputera oraz komputery z większą ilością pamięci 3.7.5. Dziwne kłopoty z dostępem do witryn WWW. 3.7.6. Konfiguracja połączenia modemowego (Dialup PPP) 3.7.7. Inne pliki konfiguracyjne do dostrojenia w `/etc/' 4. Debian - samouczek 4.1. Zaczynamy 4.1.1. Logowanie do powłoki jako root 4.1.2. Tworzenie minimlnego środowiska dla początkującego 4.1.3. Dodawanie konta użytkownika 4.1.4. Przełączanie między konsolami wirtualnymi 4.1.5. Zamykanie systemu 4.1.6. Do rzeczy 4.2. Midnight Commander (MC) 4.2.1. Konfigurowanie MC 4.2.2. Uruchamianie MC 4.2.3. Menedżer plików w MC 4.2.4. Triki linii poleceń w MC 4.2.5. Edytor w MC 4.2.6. Podgląd w MC 4.2.7. Własności auto-startu programu MC 4.2.8. Wirtualny system plików FTP w programie MC 4.3. Praca w środowisku uniksopodobnym 4.3.1. Specjalne sekwencje klawiszy 4.3.2. Podstawowe komendy uniksowe 4.3.3. Wykonywanie poleceń 4.3.4. Proste polecenie 4.3.5. Wykonywanie polecenia oraz zmienna środowiskowa 4.3.6. Ścieżka przeszukiwań poleceń 4.3.7. Opcje linii poleceń 4.3.8. Wzorce powłoki 4.3.9. Wartość zwracana przez polecenia 4.3.10. Właściwa sekwencja poleceń 4.3.11. Aliasy poleceń 4.4. Uniksopodobne przetwarzanie tekstów 4.4.1. Wyrażenia regularne 4.4.2. Wyrażenia zastępujące 4.5. Uniksopodobny system plików 4.5.1. Podstawy uniksowego systemu plików 4.5.2. Koncepcja systemu plików w systemie Debian 4.5.3. Prawa dostępu do plików i katalogów 4.5.4. Znaczniki czasu 4.5.5. Dowiązania (links) 4.5.6. Nazwane potoki (FIFOs) 4.5.7. Gniazda 4.5.8. Pliki urządzeń 4.5.9. System plików `/proc' 4.6. System X Window 4.6.1. Uruchamianie systemu X Window 4.6.2. Menu systemu X Window 4.6.3. Skróty klawiszowe w systemie X Window 4.7. Dalsza nauka 5. Uaktualnianie dystrybucji do wersji `testowej' 5.1. Przejście do APT z Woodiego 5.2. Przygotowanie do przejścia (z wersji `stabilnej' na `testową') 5.3. Aktualizacja systemu 5.3.1. Najlepiej do aktualizacji jest użyć programu `dselect' 5.3.2. Niezalecany sposób aktualizacji przy użyciu `apt-get' 6. Zarządzanie pakietami Debiana 6.1. Wprowadzenie 6.1.1. Podstawowe narzędzia 6.1.2. Wygodne narzędzia 6.2. Podstawy zarządzania pakietami Debiana 6.2.1. Instalowanie _zadań_ programem `tasksel' lub `aptitude' 6.2.2. Konfiguracja systemu APT 6.2.3. `dselect' 6.2.4. `aptitude' 6.2.5. Polecenia `apt-cache' i `apt-get' 6.2.6. Podążanie za smakiem dystrybucji Debian 6.2.7. Obniżenie wersji wszystkich pakietów do `stable' 6.2.8. Przegląd pliku `/etc/apt/preferences' 6.3. Polecenia zapewniające przetrwanie w Debianie 6.3.1. Sprawdzanie błędów w Debianie i poszukiwanie pomocy 6.3.2. Problemy przy aktualizacji APT 6.3.3. Ratowanie przy użyciu `dpkg' 6.3.4. Przywracanie danych wyboru pakietów 6.3.5. Przywracanie systemu po awarii `/var' 6.3.6. Instalowanie pakietu w niestartującym systemie 6.3.7. Co robić, gdy polecenie `dpkg' nie działa? 6.4. Polecenia prowadzące do nirwany w Debianie 6.4.1. Informacje o pliku 6.4.2. Informacje o pakiecie 6.4.3. Niepilnowana instalacja przy użyciu APT 6.4.4. Ponowna konfiguracja zainstalowanych pakietów 6.4.5. Usuwanie i czyszczenie pakietów 6.4.6. Wstrzymywanie starszych pakietów 6.4.7. Mieszany system - `stable'/`testing'/`unstable' 6.4.8. Wyczyść buforowane pliki pakietów 6.4.9. Zapisanie/kopiowanie konfiguracji systemu 6.4.10. Przeniesienie pakietu do systemu `stabilnego' 6.4.11. Lokalne archiwum pakietów 6.4.12. Zmiana lub instalacja obcego pakietu binarnego 6.4.13. Sprawdzanie poprawności zainstalowanych plików 6.4.14. Zoptymalizowane `sources.list' 6.5. Inne osobliwości Debiana 6.5.1. Polecenie `dpkg-divert' 6.5.2. Pakiet `equivs' 6.5.3. Alternatywne polecenia 6.5.4. System-V `init' i poziomy startu (runlevels) 6.5.5. Wyłączone usługi demonów 7. Jądro systemu Linux w Debianie 7.1. Kompilacja jądra 7.1.1. Standardowa metoda Debiana 7.1.2. Metoda klasyczna 7.1.3. Pliki nagłówkowe jądra 7.2. Zmodularyzowane jądro 2.4 7.2.1. PCMCIA 7.2.2. SCSI 7.2.3. Obsługa sieci 7.2.4. System plików EXT3 ( > 2.4.17) 7.2.5. Wsparcie układu Realtek RTL-8139 w jądrze 2.4 7.2.6. Wsparcie dla portów równoległych 7.3. Dostrajanie jądra przy pomocy systemu plików proc 7.3.1. Za dużo otwartych plików 7.3.2. Przedziały czasu między operacjami dyskowymi 7.3.3. Stare, powolne maszyny z małą ilością pamięci 8. Debianowe porady 8.1. Uruchamianie systemu 8.1.1. ,,Zapomniałem hasła roota!'' (1) 8.1.2. ,,Zapomniałem hasła roota!'' (2) 8.1.3. System się nie uruchamia 8.1.4. Jak wyłączyć automatyczne uruchamianie Xów przy starcie?! 8.1.5. Inne triki stosowane podczas startu systemu 8.1.6. Ustawianie parametrów uruchomieniowych GRUB 8.2. Rejestrowanie działań 8.2.1. Rejestrowanie poleceń powłoki 8.2.2. Rejestrowanie obrazu w Xach. 8.3. Kopiowanie oraz archiwizacja całych katalogów 8.3.1. Podstawowe polecenia do kopiowania całych podkatalogów 8.3.2. `cp' 8.3.3. `tar' 8.3.4. `pax' 8.3.5. `cpio' 8.3.6. `afio' 8.4. Kopia różnicowa oraz synchronizacja danych 8.4.1. Kopia różnicowa z użyciem rdiff 8.4.2. Codzienna kopia z użyciem `pdumpfs' 8.4.3. Regularne kopie różnicowe wykonywane z użyciem RCS 8.5. Przywracanie po zawieszeniu systemu 8.5.1. Usuwanie procesów 8.5.2. Alt-SysRq 8.6. Warte zapamiętania polecenia 8.6.1. Przeglądarka treści tekstowych 8.6.2. Wolna pamięć 8.6.3. Ustawianie czasu (BIOS) 8.6.4. Ustawianie czasu (NTP) 8.6.5. Jak kontrolować funkcje konsoli, takie jak wygaszacz ekranu 8.6.6. Przeszukiwanie administracyjnych baz danych 8.6.7. Wyłączenia dźwięków (brzęczyk) 8.6.8. Komunikaty o błędach na ekranie konsoli 8.6.9. Ustawienie właściwego typu konsoli 8.6.10. Przywracanie konsoli do rozsądnego stanu 8.6.11. Konwersja plików ze stylu dosowego na uniksowy 8.6.12. Zastępowanie przy pomocy wyrażeń regularnych 8.6.13. Edytowanie plików przez skrypt 8.6.14. Odnajdywanie różnic i scalanie uaktualnień w pliku źródłowym 8.6.15. Przekształcanie dużego pliku w kilka małych 8.6.16. Wyłuskiwanie danych z tekstowych tabel 8.6.17. Kawałki kodu przekierowywania poleceń 8.6.18. Skrypty działające w pętli na każdym pliku 8.6.19. Szaleństwo krótkich skryptów Perla 8.6.20. Pobieranie tekstu oraz archiwów list dyskusyjnych ze stron WWW 8.6.21. Estetyczne wydruki stron WWW 8.6.22. Estetyczne wydruki stron podręcznika systemowego 8.6.23. Łączenie dwóch plików w formacie PostScript lub PDF 8.6.24. Czas trwania 8.6.25. Polecenie `nice' 8.6.26. Harmonogram działań (`cron', `at') 8.6.27. Zmiana konsoli przy pomocy `screen'a 8.6.28. Podstawy testowania sieci 8.6.29. Wypychanie przesyłek z lokalnej kolejki 8.6.30. Usuwanie zamrożonych przesyłek z lokalnej kolejki 8.6.31. Ponownie dostarczanie zawartości mboksa 8.6.32. Usuwanie zawartości plików 8.6.33. Sztuczne pliki 8.6.34. `chroot' 8.6.35. Jak weryfikować dowiązania (hardlink) 8.6.36. Montowanie obrazów systemów plików 8.6.37. Samba 8.6.38. Narzędzia do obsługi obcych systemów plików 8.7. Typowe błędy 8.7.1. `rm -rf .*' 8.7.2. `rm /etc/passwd' 9. Dostrajanie systemu Debian 9.1. Inicjalizacja systemu 9.1.1. Dostosowywanie skryptów startowych do własnych potrzeb. 9.1.2. Logowanie komunikatów systemowych 9.1.3. Optymalizacja sprzętu 9.2. Ograniczenia dostępu 9.2.1. Ograniczenia dostępu poprzez PAM 9.2.2. ,,Dlaczego GNU `su' nie obsługuje grupy `wheel''' 9.2.3. Przeznaczenie standardowych grup 9.2.4. Bezpieczniejsza praca -- `sudo' 9.2.5. Ograniczenia dostępu do usług 9.2.6. Centralne uwierzytelnianie -- LDAP Użyj Lightweight Directory Access Protocol (LDAP). 9.3. Nagrywarki CD 9.3.1. Wstęp 9.3.2. Sposób 1: moduły jądra + `lilo' 9.3.3. Sposób 2: ponowna kompilacja jądra 9.3.4. Czynności po konfiguracji 9.3.5. Obrazy startowe płyt CD 9.3.6. Wypalanie płyty (R, RW): 9.3.7. Wykonanie obrazu z posiadanej płyty CD 9.3.8. Obrazy Debian CD 9.3.9. Wykonywanie kopii systemu na płytach CD-R 9.3.10. Kopiowanie CD z muzyką 9.4. X 9.4.1. Pakiety związane z X 9.4.2. Wykrywanie sprzętu dla X 9.4.3. X serwer 9.4.4. Klienty X 9.4.5. Sesje X 9.4.6. Używanie X'ów poprzez TCP/IP 9.4.7. Zdalne połączenie z X -- `xhost' 9.4.8. Zdalne połączenie z X -- `ssh' 9.4.9. Emulator terminala X -- `xterm' 9.4.10. Zasoby X 9.4.11. Mapy klawiatury i mapowanie myszy w X 9.4.12. Zdobywanie uprawnień administratora w X 9.4.13. Czcionki TrueType dla X 9.4.14. Przeglądarka WWW w X 9.5. SSH 9.5.1. Podstawy SSH 9.5.2. Przekierowywanie portów dla tuneli SMTP/POP3 9.5.3. Połączenia z mniejszą ilością haseł -- RSA 9.5.4. Radzenie sobie z innymi klientami SSH 9.5.5. Ustawianie `ssh-agent' 9.5.6. Rozwiązywanie problemów z SSH 9.6. Poczta 9.6.1. Agenci transportu poczty (MTA) 9.6.2. Pobieranie poczty -- Fetchmail 9.6.3. Przetwarzanie poczty -- Procmail 9.6.4. Odczytywanie poczty -- Mutt 9.7. Lokalizacja 9.7.1. Podstawy lokalizacji 9.7.2. Locales 9.7.3. Wprowadzenie do locales 9.7.4. Aktywacja wsparcia locale 9.7.5. Uaktywnienie określonego locale. 9.7.6. Format daty ISO 8601 9.7.7. Przykład dla US (ISO-8859-2) 9.7.8. Przykład dla Francji, z walutą Euro (ISO-8859-15) 9.7.9. Przykład wielojęzykowego systemu X window 9.7.10. Alternatywne metody wejścia X 9.7.11. Emulatory terminali X 9.7.12. Obsługa UTF-8 w emulatorach terminali X 9.7.13. Przykład UTF-8 w terminalu framebuffer 9.7.14. Poza locales 10. Konfiguracja sieci 10.1. Podstawy sieciowe 10.2. Zaawansowana konfiguracja sieci 10.2.1. Zaawansowana konfiguracja sieci -- `ifconfig' i `route' 10.2.2. Zaawansowana konfiguracja sieci -- `ip' 10.2.3. Konfiguracja interfejsu Wi-Fi 10.2.4. Konfiguracja interfejsu PPP 10.3. Przydzielanie nazwy komputerowi 10.3.1. Nazwa komputera 10.3.2. Nazwa pocztowa (mailname) 10.4. Usługa nazw (DNS) 10.4.1. Resolver 10.4.2. Zarządzanie informacjami o serwerach nazw -- `resolvconf' 10.4.3. Buforowanie rozwiązanych nazw -- `dnsmasq' 10.4.4. Buforowanie rozwiązanych nazw -- `bind' 10.4.5. Udostępnianie DNS -- `bind' 10.5. Konfiguracja interfejsów sieciowych z wykorzystaniem DHCP 10.6. Konfiguracja sieci wyższego poziomu w systemie Debian 10.6.1. Konfiguracja interfejsu ze statycznym adresem IP 10.6.2. Konfiguracja interfejsu z użyciem DHCP 10.6.3. Konfiguracja interfejsu bezprzewodowego Wi-Fi 10.6.4. Konfiguracja interfejsu PPP 10.6.5. Konfiguracja interfejsu PPPoE 10.6.6. Konfiguracja wielu interfejsów Ethernet 10.6.7. Konfigurowanie interfejsów wirtualnych 10.7. _Re_konfiguracja sieci 10.8. Magiczna rekonfiguracja sieci 10.8.1. guessnet 10.8.2. ifupdown-roam 10.8.3. laptop-net 10.9. Wywoływanie rekonfiguracji sieci 10.9.1. Wywoływanie konfiguracji sieci podczas uruchamiania 10.9.2. Wywoływanie konfiguracji sieci -- `hotplug' 10.9.3. Wywoływanie konfiguracji sieci -- `ifplugd' 10.9.4. Wywoływanie konfiguracji sieci -- `waproamd' 10.9.5. Konfiguracja sieci i PCMCIA 10.10. Konfiguracja usług sieciowych 10.11. Rozwiązywanie problemów związanych z siecią 10.12. Budowanie bramy sieciowej 10.12.1. Konfiguracja netfiltra 10.12.2. Zarządzanie wieloma połączeniami z siecią 11. Edytory 11.1. Popularne edytory 11.2. Edytory awaryjne 11.3. Emacs i Vim 11.3.1. Wskazówki do Vima 11.3.2. Wskazówki do Emacsa 11.3.3. Uruchamianie edytora 11.3.4. Podsumowanie poleceń edytorów (Emacs, Vim) 11.3.5. Konfiguracja Vima 11.3.6. Ctags 11.3.7. Konwersja ekranu z podświetlaniem składni do kodu HTML 11.3.8. Rozdzielanie ekranu w `vimie' 12. Systemy kontroli wersji 12.1. Concurrent Versions System (CVS) 12.1.1. Instalacja serwera CVS 12.1.2. Przykładowe sesje CVS 12.1.3. Rozwiązywanie problemów z CVS 12.1.4. Polecenia CVS 12.2. Subversion 12.2.1. Instalacja serwera Subversion 12.2.2. Przenoszenie repozytorium CVS do Subversion 12.2.3. Przykłady użycia Subversion 13. Programowanie 13.1. Gdzie zacząć? 13.2. Powłoka 13.2.1. Bash -- interaktywna powłoka zgodna z _GNU_ 13.2.2. Powłoki zgodne z POSIX 13.2.3. Parametry powłoki 13.2.4. Przekierowywanie powłoki 13.2.5. Polecenia warunkowe powłoki 13.2.6. Przetwarzanie linii poleceń 13.3. Awk 13.4. Perl 13.5. Python 13.6. Make 13.7. C 13.7.1. Prosty program w C (`gcc') 13.7.2. Odpluskwianie 13.7.3. Flex -- lepszy Lex 13.7.4. Bison -- lepszy Yacc 13.7.5. Autoconf 13.8. Przygotowanie dokumentu 13.8.1. Skład tekstu `roff' 13.8.2. SGML 13.8.3. TeX/LaTeX 13.8.4. Literat-programista 13.9. Pakietowanie 13.9.1. Pakietowanie pojedyńczego pliku binarnego 13.9.2. Pakietowanie z użyciem narzędzi 14. GnuPG 14.1. Instalacja GnuPG 14.2. Używanie GnuPG 14.3. Utrzymywanie GnuPG 14.4. Używanie GnuPG z innymi programami 14.4.1. Używanie GnuPG z Muttem 14.4.2. Używanie GnuPG z Vimem 15. Rozwiązywanie problemów 15.1. Zasoby 15.2. Znajdowanie znaczenia słowa 15.3. Sprawdzanie popularności pakietu Debiana 15.4. System śledzenia błędów Debiana 15.5. Listy dyskusyjne 15.6. Internet Relay Chat (IRC) 15.7. Wyszukiwarki 15.8. Strony w sieci A. Dodatek A.1. Autorzy A.2. Gwarancje A.3. Pomoc A.4. Format dokumentu A.5. Labirynt Debiana A.6. Cytaty o Debianie ------------------------------------------------------------------------------- 1. Wstęp -------- Celem Debian Reference (http://qref.sourceforge.net/) jest dostarczenie szerokiego przeglądu systemu Debian w postaci _instrukcji poinstalacyjnej_. Docelowym czytelnikiem jest osoba, która jest skłonna do czytania skryptów powłoki systemowej (ang. shell). Oczekuję od czytelnika posiadania podstawowych umiejętności poruszania się w systemach uniksopodobnych. Podjąłem świadomą decyzję _nie wyjaśniania_ wszystkiego w szczegółach, jeśli są one do odnalezienia na stronach _podręcznika systemowego_, stronach systemu pomocy _info_ lub w dokumentach _Jak to zrobić_ (HOWTO). Zamiast szczegółowych wyjaśnień, starałem się raczej udzielić praktycznych porad dostarczając _dokładnych zestawów poleceń_ w głównym tekście lub umieszczonych w katalogu http://www.debian.org/doc/manuals/debian-reference/examples/ _plikach z przykładami_. Musisz zrozumieć zawartość przykładów zanim wykorzystasz je w prawdziwym systemie. Musisz również pamiętać, że w Twoim systemie mogą występować niewielkie różnice w tych poleceniach. Wiele zamieszczonych informacji składa się z przypomnień lub odsyłaczy do pozycji z listy Rozdział 15.1, `Zasoby'. Jest to częściowo spowodowane tym, że ten dokument to _krótkie wprowadzenie_. _Krótkie i proste_ (KISS=Keep it short and simple) to moja główna zasada. W sytuacji zagrożenia dla systemu, po pomoc udaj się natychmiast do rozdziału Rozdział 6.3, `Polecenia zapewniające przetrwanie w Debianie'. 1.1. Oficjalny dokument ----------------------- Najnowszy oficjalny dokument znajduje się w archiwum Debiana, w pakiecie `debian-reference-en' oraz pod adresem http://www.debian.org/doc/manuals/debian-reference/. Natomiast najnowszą wersję rozwojową możesz znaleźć pod adresem http://qref.sourceforge.net/Debian/. Strona domowa projektu to http://qref.sourceforge.net/. Możesz tam znaleźć ten dokument w wersji tekstowej, HTML, PDF, SGML oraz PostScript. 1.2. Konwencje w dokumencie --------------------------- Dokument o nazwie: ,,Debian Reference'' zawiera informacje przedstawione w postaci krótkich poleceń powłoki systemowej Bash. Użyto następujących konwencji: # polecenie wykonane z konta administratora $ polecenie wykonane z konta użytkownika Jeśli chcesz dowiedzieć się więcej o powłoce systemowej Bash, zerknij do Rozdział 13.2.1, `Bash -- interaktywna powłoka zgodna z _GNU_'. Odsyłam również do: * _Podręcznika systemowego_: bash(1). * strony _GNU TEXINFO_: `info libc'. * _książki_: _The C Programming Language_. * _strony_: http://www.debian.org/doc/manuals/debian-reference/. * dostępnego w systemie _pliku_: `/usr/share/doc/Debian/reference/'. W dokumencie używane są skróty _LDP_, _DDP_ i oznaczają: * _LDP_: Linux Documentation Project (Projekt Dokumentacji Linuksa) (http://www.tldp.org/) * _DDP_: Debian Documentation Project (Projekt Dokumentacji Debiana) (http://www.debian.org/doc/) Przedstawiono tutaj tylko odwołania do LDP w postaci odsyłaczy URL, ale mogą być one pozyskane jako pakiet i zainstalowane do `/usr/share/doc/HOWTO/'. Zobacz także Rozdział 15.1, `Zasoby'. 1.3. Przykładowe skrypty ------------------------ Przykładowe skrypty są dostępne w podkatalogach z przykładami (http://www.debian.org/doc/manuals/debian-reference/examples/) zainstalowanych w `/usr/share/doc/Debian/reference/'; początkowy znak dla ukrytych plików to : ,,.''. W nazwach plików został on przerobiony na podkreślenie: ,,_''. Dodatkowe rozszerzenia są dodawane w przypadku kilku alternatywnych wersji skryptów. 1.4. Podstawowe ustawienia -------------------------- Jeśli system został zainstalowany z minimalnym zestawem pakietów, upewnij się, że wykonane zostało polecenie: # aptitude install mc less ssh vim kernel-package \ manpages-dev doc-debian doc-linux-text \ debian-policy developers-reference maint-guide \ apt-howto harden-doc debian-reference \ libpam-doc glibc-doc samba-doc exim4-doc-html 1.5. Podstawowe informacje o dystrybucjach Debiana -------------------------------------------------- Debian występuje w 3 ,,smakach'': * stabilny (`stable'): Dobry do używania na serwerze produkcyjnym. Nudny w przypadku stacji roboczej (SR). Zobacz Rozdział 2.1.3, `Dystrybucja `stabilna''. * testowy (`testing'): Niezłe wyjście na stację roboczą. Zobacz Rozdział 2.1.4, `Dystrybucja `testowa''. * niestabilny (`unstable'): Nigdy nie wykorzystuj go ,,na ślepo''. Zobacz Rozdział 2.1.5, `Dystrybucja `niestabilna''. Zasubskrybuj przynajmniej kluczową listę `debian-devel-announce@lists.debian.org' informującą o uaktualnieniach Debiana. W marcu 2002 roku te trzy wersje odpowiadały kodowym nazwom: Potato (jakość produkcyjna), Woody (testy, bardzo stabilna, gdyż nadchodziło kolejne wydanie) oraz Sid (testy alfa). W sierpniu 2002, już po wydaniu wersji Woody, odpowiednie wersje (stabilna, testowa, niestabilna) oznaczają: Woody (jakość produkcyjna), Sarge (testy, będzie w takim stanie jeszcze przez jakiś czas) oraz Sid (jak zwykle testy alfa). Gdy pakiety z wersji `niestabilnej' nie mają zgłoszonych żadnych krytycznych błędów (RC) po tygodniu, są automatycznie przenoszone do wersji `testowej'. Zobacz: Rozdział 2.1, `Archiwa Debiana'. Są dwa sposoby na używanie najnowszych wersji oprogramowania. * Rozdział 6.2, `Podstawy zarządzania pakietami Debiana' (głównie na stacje robocze) * Rozdział 6.4.10, `Przeniesienie pakietu do systemu `stabilnego'' (głównie na serwery) Używanie wersji `testowej' Debiana niesie ze sobą zagrożenie w postaci wolnego pojawiania się uaktualnień związanych z bezpieczeństwem. Zachowaj więc ostrożność. Jeśli mieszasz smaki Debiana, używając części `testowej' lub `niestabilnej' w wydaniu `stabilnym', możesz nieumyślnie zainstalować kluczowe pakiety w wersji, która może zawierać błędy. Również zachowaj ostrożność. Używanie `testowych' lub `niestabilnych' wersji pociąga za sobą zwiększone ryzyko natknięcia się na istotny błąd. Nad ryzykiem tym można zapanować instalując dodatkowo wersję stabilną lub korzystając z programu ,,`chroot''' (opisano to w Rozdział 8.6.34, ``chroot''. Ostatni sposób umożliwia uruchamianie różnych smaków równocześnie, na różnych konsolach. Po wyjaśnieniu kilku elementarnych sposobów dystrybucji Debiana w Część 2, `Debian -- Podstawy', zaprezentuję kilka podstawowych informacji ułatwiających posługiwanie się najnowszym oprogramowaniem oraz wykorzystywanie wersji `testowej' i `niestabilnej'. Niecierpliwi powinni natychmiast zajrzeć do Rozdział 6.3, `Polecenia zapewniające przetrwanie w Debianie'. Miłego uaktualniania! ------------------------------------------------------------------------------- 2. Debian -- Podstawy --------------------- Ten rozdział dostarcza podstawowych informacji o systemie Debian dla osób nie będących deweloperami. Sprawdzone i oficjalne wiadomości należy czerpać z: * Debian Policy Manual * Debian Developer's Reference * Debian New Maintainers' Guide wymienionych w Rozdział 15.1, `Zasoby'. Jeżeli szukasz mniej szczegółowych ,,jak-to-zrobić'' (,,how-to''), przejdź bezpośrednio do Część 6, `Zarządzanie pakietami Debiana' lub innych zasobów. Niniejszy rozdział zawiera dokumenty wzięte z ,,Debian FAQ'', poddane gruntownej reorganizacji dla ułatwienia startu początkującemu administratorowi systemu Debian. 2.1. Archiwa Debiana -------------------- 2.1.1. Struktura katalogów -------------------------- Pakiety z oprogramowaniem systemu Debian dostępne są poprzez FTP lub HTTP z katalogów znajdujących się na serwerze lustrzanym Debiana (http://www.debian.org/mirror/). Na każdym z takich serwerów w katalogu `debian' można znaleźć następujące podkatalogi: `dists/': Ten katalog zawiera ,,dystrybucje'', a niegdyś był to kanoniczny sposób uzyskiwania dostępu do aktualnych pakietów w stabilnych i niestabilnych wydaniach Debiana. Wciąż można tam znaleźć trochę starych pakietów, pliki `Contents-*.gz', i pliki `Packages.gz'. `pool/': Nowe miejsce umieszczenia pakietów należących do wszystkich końcowych i testowych wydań Debiana. `tools/': DOSowe programy użytkowe, umożliwiające tworzenie dyskietek startowych, partycjonowanie dysków, kompresję i dekompresję plików oraz uruchomienie Linuksa. `doc/': Podstawowa dokumentacja Debiana, np. FAQ, instrukcje dotyczące zgłaszania błędów, itp. `indices/': Pliki Maintainers i override. `project/': przeważnie materiały dla deweloperów takie, jak: `project/experimental/': Pakiety i narzędzia, które jeszcze nie zostały ukończone i znajdują się w fazie alfa. Nie należy ich używać ponieważ mogą się okazać niebezpieczne i szkodliwe nawet dla najbardziej doświadczonych. `project/orphaned/': Pakiety osierocone przez dotychczasowych opiekunów i wykreślone z dystrybucji. 2.1.2. Dystrybucje Debiana -------------------------- W katalogu `dists' normalnie znajdują się informacje o trzech dystrybucjach Debiana. Katalogi z nimi (i same dystrybucje) noszą nazwy `stable' (dystrybucja stabilna), `testing' (dystrybucja testowa) i `unstable' (dystrybucja niestabilna). Czasami też występuje tam dystrybucja `frozen' (,,zamrożona''). Katalog każdej dystrybucji stanowi symboliczne dowiązanie do rzeczywistego katalogu o odpowiednim kryptonimie w katalogu `dists'. 2.1.3. Dystrybucja `stabilna' ----------------------------- Dane pakietów należących do dystrybucji `stabilnej', Debian Sarge (3.1r0), są zapisywane do katalogu `stable' (dowiązanie symboliczne do `Sarge/'): * `stable/main/': Ten katalog zawiera pakiety oficjalnie uznawane za najbardziej aktualne wydanie systemu Debian. Wszystkie z tych pakietów są zgodne z Wytycznymi Debiana dotyczącymi Wolnego Oprogramowania (http://www.debian.org/social_contract#guidelines) (dokument dostępny również jako `/usr/share/doc/debian/social-contract.txt' po zainstalowaniu pakietu `debian-doc') i można ich swobodnie używać, a także rozpowszechniać. * `stable/non-free/': Ten katalog zawiera informacje o pakietach, których rozpowszechnianie zostało ograniczone przez wymagania stawiane dystrybutorowi, które mówią o zwróceniu szczególnej uwagi, na kwestie praw autorskich danego programu. Na przykład, licencje niektórych pakietów zabraniają komercyjnego rozpowszechniania. Inne znowuż mogą być redystrybuowane, ale stanowią shareware, a nie wolne oprogramowanie. Zanim włączy się którykolwiek z tych pakietów do jakiejś redystrybucji (np. na CD-ROMie), należy przestudiować jego licencję i prawdopodobnie przeprowadzić odpowiednie negocjacje. * `stable/contrib/': Ten katalog zawiera informacje o pakietach wolnych w rozumieniu DFSG (Debian Free Software Guidelines) i podlegających _swobodnemu rozpowszechnianiu_, ale w jakiś sposób zależnych od pakietu, który swobodnemu rozpowszechnianiu _nie podlega_ i z tej przyczyny jest dostępny w sekcji non-free. Wyżej wymienione katalogi zawierają informacje o pakietach. Same pakiety zaś mieszczą się w katalogu `pool' (Rozdział 2.1.10, `Katalog `pool''). Aktualny stan błędów w dystrybucji `stabilnej' podaje strona WWW Problemy ze stabilną dystrybucją (http://ftp-master.debian.org/testing/stable_probs.html) (po angielsku) . 2.1.4. Dystrybucja `testowa' ---------------------------- Informacja o pakietach zawartych w dystrybucji `testowej', czyli Debian Etch, jest zapisywana w katalogu `testing' (dowiązanie symboliczne do `Etch/') po tym, jak przejdą testowanie wstępne w dystrybucji `niestabilnej'. Pakiety, których dotyczą informacje zapisane w katalogu `testing', są umieszczane w katalogu `pool' (Rozdział 2.1.10, `Katalog `pool''). Oczywiście, w katalogu `testing' istnieją również podkatalogi `main', `contrib' oraz `non-free', pełniące takie same funkcje, jak ich odpowiedniki w `stable'. Pakiety w dystrybucji `testowej' muszą działać na wszystkich architekturach, na których zostaną zbudowane i nie mogą posiadać zależności uniemożliwiających instalację; muszą mieć również mniej błędów o priorytecie release-critical (o znaczeniu krytycznym dla wydania), niż wersje znajdujące się w `unstable'. W ten sposób można mieć nadzieję, że dystrybucja `testowa' zawsze jest dystrybucją bliską wydania. Więcej informacji o mechanizmach testowania znajduje się na http://www.debian.org/devel/testing (po angielsku). Najświeższe informacje o stanie dystrybucji `testowej' zawierają następujące strony WWW: * update excuses (wymówki aktualizacyjne) (http://ftp-master.debian.org/testing/update_excuses.html) * testing problems (problemy w dystrybucji testowej) (http://ftp-master.debian.org/testing/testing_probs.html) * release-critical bugs (błędy o znaczeniu krytycznym dla wydania) (http://bugs.debian.org/release-critical/) * base system bugs (błędy w systemie podstawowym) (http://bugs.qa.debian.org/cgi-bin/base.cgi) * bugs in standard and task packages (błędy w pakietach kategorii standard i task) (http://bugs.qa.debian.org/cgi-bin/standard.cgi) * other bugs and bug-squashing party notes (inne błędy i uwagi z sesji tępienia pluskiew) (http://bugs.qa.debian.org/) 2.1.5. Dystrybucja `niestabilna' -------------------------------- Informacje o pakietach wchodzących w skład dystrybucji `niestabilnej', zawsze nazywanej ,,Sid'', są zapisywane do katalogu `unstable' (dowiązanie symboliczne do `sid/') po umieszczeniu tych pakietów w archiwum Debiana i pozostają tu, aż zostaną przeniesione do `testing/'. Odpowiadające wpisom pakiety umieszcza się w katalogu `pool' (Rozdział 2.1.10, `Katalog `pool''). Również istnieją tu podkatalogi `main', `contrib' i `non-free', spełniające te same zadania, co w katalogu `stable/'. Dystrybucja `niestabilna' jest obrazem systemu w najnowszym stadium jego rozwoju. Nic nie stoi na przeszkodzie w używaniu i testowaniu tych pakietów, trzeba jednak uważać, bo mogą być jeszcze nie w pełni dopracowane. Zaletą korzystania z dystrybucji `niestabilnej' jest to, że jest się zawsze ,,na czasie'' ze wszystkimi nowinkami w projekcie Debian, ale jeżeli coś nawali, to licz na siebie, a nie na pomoc. Na stronie WWW Problemy z dystrybucją niestabilną (http://ftp-master.debian.org/testing/unstable_probs.html) (po angielsku) można się zapoznać z aktualnym stanem błędów w dystrybucji `niestabilnej'. 2.1.6. Dystrybucja `frozen' (`zamrożona') ----------------------------------------- Gdy dystrybucja `testowa' osiągnie wystarczającą dojrzałość, zostaje zamrożona, co oznacza, że nie przyjmuje się do niej już żadnego nowego oprogramowania z wyjątkiem koniecznych poprawek (bugfixes). W katalogu `dists/' tworzy się nowy podkatalog dla dystrybucji testing, dowiązany do nowego kryptonimu. Dystrybucja zamrożona przechodzi przez kilkumiesięczny okres próbny składający się na przemian z aktualizacji i z okresów głębokiego zamrożenia nazywanych ,,cyklami testowymi''. Utrzymujemy rejestr błędów w dystrybucji zamrożonej, które mogą opóźnić wydanie pakietu lub doprowadzić do wstrzymania wydania całej dystrybucji. Gdy liczba błędów spadnie do maksymalnie akceptowalnej wartości, dystrybucja zamrożona staje się dystrybucją stabilną (stable), zostaje wydana, a dotychczasowe wydanie stabilne staje się przestarzałe (obsolete) i zostaje przeniesione do archiwum. 2.1.7. Kryptonimy dystrybucji Debiana ------------------------------------- Nazwy rzeczywistych podkatalogów w katalogu `dists', na przykład `Sarge' i `Etch', są tylko ,,kryptonimami''. Kiedy dystrybucja systemu Debian znajduje się jeszcze w etapie rozwojowym, nie posiada numeru wersji, a zamiast niego kryptonim. Kryptonimy zastosowano w celu ułatwienia tworzenia archiwów lustrzanych (mirroring) dystrybucji systemu Debian (gdyby rzeczywisty katalog taki, jak `unstable' nagle zmienił swoją nazwę na `stable/', niejeden musiałby niepotrzebnie pobierać ponownie masę oprogramowania). Aktualnie, `stable/' jest dowiązaniem symbolicznym do `Sarge/', a `testing/' dowiązaniem do `Etch/'. Oznacza to, że `Sarge' jest aktualną dystrybucją stabilną, a `Etch' testową. `unstable/' jest już na zawsze dowiązaniem symbolicznym do `sid/', ponieważ Sid jest zawsze dystrybucją niestabilną. 2.1.8. Kryptonimy używane w przeszłości --------------------------------------- Inne kryptonimy, których już wcześniej używano, to: ,,Buzz'' dla wydania 1.1, ,,Rex'' dla wydania 1.2, ,,Bo'' dla wydania 1.3.x, ,,Hamm'' dla wydania 2.0, ,,Slink'' dla wydania 2.1, ,,Potato'' dla wydania 2.2, ,,Woody'' dla wydania 3.0 oraz ,,Sarge'' dla wydania 3.1. 2.1.9. Źródło kryptonimów ------------------------- Jak dotychczas wybierano postaci z filmu _Toy Story_ produkcji Pixar. * _Buzz_ (Buzz Lightyear) był kosmonautą, * _Rex_ był tyranozaurem, * _Bo_ (Bo Peep) była dziewczynką, która opiekowała się owieczką, * _Hamm_ była świnką-skarbonką, * _Slink_ (Slinky Dog) był psem-zabawką, * _Potato_ był oczywiście Panem Ziemniakiem, * _Woody_ był kowbojem, * _Sarge_ był żołnierzem z zielonego plastiku, * _Etch_ (Etch-a-Sketch) był tablicą, * _Sid_ był chłopcem psującym zabawki. 2.1.10. Katalog `pool' ---------------------- Dawniej pakiety przechowywano w podkatalogu katalogu `dists', którego nazwa odpowiadała dystrybucji, w skład której wchodziły. Okazało się jednak, że wywoływało to różne problemy, jak np. duże obciążenie serwerów lustrzanych, gdy dokonywano większych zmian. Obecnie pakiety znajdują się w dużej ,,puli'' (,,pool''), której struktura jest utworzona na podstawie nazw pakietów źródłowych. Dla ułatwienia zarządzania czymś takim, pula - pool jest podzielona według sekcji (`main', `contrib' i `non-free') i według pierwszej litery nazwy pakietu źródłowego. Katalogi te zawierają pewną liczbę plików: pakiety binarne dla każdej architektury (platformy sprzętowej) oraz pakiety źródłowe, z których te pierwsze zostały wygenerowane. Miejsce, gdzie znajduje się jakiś pakiet, można określić wykonując polecenie `apt-cache showsrc ' i znajdując w jego wyjściu wiersz zaczynający się od ,,Directory:''. Na przykład pakiety serwera http `apache' znajdują się w `pool/main/a/apache/'. Pakietów `lib*' jest bardzo dużo, więc są traktowane szczególnie: na przykład pakiety `libpaper' są przechowywane w katalogu `pool/main/libp/libpaper/'. Podkatalogi katalogu `dists' są w dalszym ciągu używane do przechowywania plików indeksowych używanych przez programy w rodzaju `apt'. Również, w czasie pisania niniejszego dokumentu starsze dystrybucje nie były przestawione na używanie katalogu pool, więc można zobaczyć takie nazwy dystrybucji, jak `potato' czy `woody' w wierszach zaczynających się od ,,Directory:'' (przytoczone powyżej polecenie apt-cache). Nie jest to powód do zmartwień, ponieważ nowy `apt' i prawdopodobnie również starszy `dpkg-ftp' (zobacz Rozdział 2.3.1, `Sposoby aktualizacji systemu Debian') radzą sobie z taką strukturą bez problemów. Więcej informacji można znaleźć w RFC: implementation of package pools (http://lists.debian.org/debian-devel-announce/2000/debian-devel-announce-200010/msg00007.html) (po angielsku). 2.1.11. Nota historyczna o dystrybucji Sid ------------------------------------------ Kiedy dzisiejszy Sid jeszcze nie istniał, organizacja sieciowych archiwów Debiana miała jedną dużą wadę: kiedy dokładano nową architekturę do bieżącej dystrybucji `unstable', pakiety zrobione dla niej mogły być wydane dopiero wtedy, gdy ta dystrybucja stawała się nową dystrybucją `stable'. Dla wielu architektur nie dochodziło do tego i trzeba było przenosić odpowiadające im katalogi, gdy dochodziło do wydania dystrybucji. Było to niepraktyczne, ponieważ przenoszenie katalogów silnie obciążało łącza. Administratorzy archiwów sieciowych przez kilka lat obchodzili ten problem, umieszczając binaria dla architektur jeszcze nie wydanych w specjalnym katalogu o nazwie `sid'. Dla architektur jeszcze nie wydanych, tworzono w chwili wydania dowiązanie z aktualnego katalogu `stable' do `sid' i od tej pory tworzono je w drzewie `unstable', jak zwykle. Takie rozwiązanie było trochę mylące dla użytkowników. Z nadejściem katalogu ,,pool'' (zobacz Rozdział 2.1.10, `Katalog `pool'') w trakcie powstawania dystrybucji Woody, zaczęto zapisywać pakiety binarne w lokalizacji kanonicznej w tymże katalogu, niezależnie od dystrybucji, więc wydanie dystrybucji przestało być związane z poddawaniem serwerów lustrzanych dużym obciążeniom (natomiast mamy do czynienia z dość sporymi, rozłożonymi w czasie obciążeniami w trakcie całego procesu rozwijania dystrybucji). 2.1.12. Pakiety umieszczone w `incoming/' ----------------------------------------- Pakiety umieszczane w archiwum trafiają najpierw do http://incoming.debian.org/, po sprawdzeniu autentyczności pochodzenia od jednego z deweloperów (w wypadku tzw. Non-Maintainer Upload -- NMU -- pakiety trafiają do podkatalogu `DELAYED'). Raz dziennie pakiety przenosi się z `incoming/' do `unstable/'. W nagłych wypadkach można instalować pakiety z `incoming/', zanim jeszcze trafią do `unstable'. 2.1.13. Odzyskiwanie starszego pakietu -------------------------------------- Podczas gdy najnowsze dystrybucje Debiana trzyma się w podkatalogach katalogu `debian', na każdym z serwerów wymienionych na Stronie serwerów lustrzanych Debiana (http://www.debian.org/mirror/), archiwa starszych dystrybucji (np. Slink) znajdują się na http://archive.debian.org/ lub w podkatalogach katalogu `debian-archive' na każdym serwerze lustrzanym Debiana. Starsze pakiety z `testing' i `unstable' można znaleźć na http://snapshot.debian.net/. 2.1.14. Podział na architektury ------------------------------- W obrębie każdego z głównych drzew katalogów (`dists/stable/main', `dists/stable/contrib', `dists/stable/non-free', `dists/unstable/main/', itd.), informacja o pakietach binarnych znajduje się w podkatalogach o nazwach wskazujących na platformę sprzętową (architekturę), dla jakiej zostały skompilowane. * `binary-all/', dla pakietów niezależnych od architektury (dotyczy to np. skryptów Perla lub czystej dokumentacji). * `binary-/', dla pakietów przeznaczonych dla konkretnej architektury. Warto zauważyć, że pakiety binarne dla dystrybucji `testing' i `unstable' nie są już przechowywane w tych katalogach, ale w katalogu `pool'. Pliki indeksowe (`Packages' i `Packages.gz') jednak, dla zachowania kompatybilności z wcześniejszymi rozwiązaniami, w dalszym ciągu przebywają tam, gdzie były. Aby poznać faktyczny zestaw wspieranych platform sprzętowych, należy zapoznać się z Informacjami Wydawniczymi dla danej dystrybucji. Można je odnaleźć na stronach zajmujących się Uwagami Wydawniczymi dla stable (http://www.debian.org/releases/stable/releasenotes) i testing (http://www.debian.org/releases/testing/releasenotes). 2.1.15. Kod źródłowy -------------------- Debian posiada również kod źródłowy każdego ze swoich składników. Co więcej, warunki licencji większości programów w systemie zawierają _wymóg_ dystrybucji kodu źródłowego wraz z programem, lub przynajmniej zadeklarowania gotowości dostarczenia kodu źródłowego wraz z programem. Normalnie kod źródłowy jest rozpowszechniany za pośrednictwem katalogów `source', istniejących równolegle do wszystkich katalogów charakterystycznych dla poszczególnych architektur, a obecnie w katalogu `pool' directory (zobacz Rozdział 2.1.10, `Katalog `pool''). Aby pobrać z archiwum kod źródłowy bez konieczności zaznajamiania się ze strukturą archiwum Debiana należy wykonać polecenie podobne do tego: `apt-get source '. Niektóre pakiety, na przykład `pine', są dostępne wyłącznie w postaci źródeł wskutek ograniczeń licencyjnych. (Niedawno pojawił się pakiet `pine-tracker' ułatwiający instalację Pine). Procedury opisane w Rozdział 6.4.10, `Przeniesienie pakietu do systemu `stabilnego'' i Rozdział 13.9, `Pakietowanie' opisują sposoby tworzenia pakietów samemu. Dla pakietów z katalogów `contrib' i `non-free', które oficjalnie nie stanowią części systemu Debian, kod źródłowy może być niedostępny. 2.2. System zarządzania pakietami w Debianie -------------------------------------------- 2.2.1. Przegląd pakietów Debiana -------------------------------- W ogólności pakiety zawierają wszystkie pliki niezbędne do zaimplementowania zestawu odpowiednich poleceń lub właściwości. Są dwa typy pakietów Debiana: * _Pakiety binarne_, zawierające pliki wykonywalne, pliki konfiguracyjne, strony podręcznika systemowego `man' lub `info', informacje o prawach autorskich i pozostałą dokumentację. Są one rozpowszechniane w charakterystycznym dla Debiana formacie archiwum (zobacz Rozdział 2.2.2, `Format pakietów Debiana'); zwykle można je odróżnić od innych plików po tym, że ich nazwa kończy się na `.deb'. [1] Pakiety binarne można rozpakowywać z pomocą programu `dpkg'; ze szczegółami można się zapoznać czytając stronę podręcznika systemowego poświęconą dpkg. * _Pakiety źródłowe_, składające się z pliku `.dsc' opisującego pakiet źródłowy (włącznie z nazwami plików składowych pakietu), pliku `.orig.tar.gz' zawierającego oryginalny, niezmodyfikowany kod źródłowy spakowany programem tar i skompresowany programem gzip oraz zwykle pliku `.diff.gz' zawierającego charakterystyczne dla Debiana zmiany w stosunku do oryginalnego źródła. Do pakowania i rozpakowywania archiwów źródłowych Debiana używa się programu użytkowego `dpkg-source'; szczegóły są dostępne po zapoznaniu się z poświęconą mu stroną podręcznika systemowego `man'. Instalacja oprogramowania przez system pakietów posługuje się pojęciem ,,zależności'' (,,dependencies''), troskliwie określonych przez opiekunów poszczególnych pakietów. Te zależności są wyszczególnione w pliku `control' wchodzącym w skład każdego pakietu. Na przykład, pakiet zawierający kompilator GNU C (`gcc') jest zależny od zawierającego konsolidator (linker) i asembler pakietu `binutils'. Jeżeli użytkownik usiłuje zainstalować `gcc' nie zainstalowawszy uprzednio `binutils', system zarządzania pakietami (dpkg) drukuje komunikat mówiący, że trzeba zainstalować `binutils', a następnie zatrzymuje instalację `gcc' (uparty użytkownik może jednak zmienić to zachowanie; zobacz dpkg(8)). Z dodatkowymi szczegółami można zapoznać się w Rozdział 2.2.8, `Zależności między pakietami'. Zawartych w Debianie narzędzi obsługujących pakiety można używać do: * manipulowania i zarządzania pakietami lub ich częściami składowymi, * ułatwienia użytkownikowi podziału na części pakietów, które trzeba umieścić na nośnikach o ograniczonej wielkości (np. na dyskietkach), * pomocy deweloperom w konstruowaniu archiwów pakietów, oraz * pomocy użytkownikom w instalacji pakietów przechowywanych na sieciowych serwerach z archiwami Debiana. [1] Projekt `debian-installer' wprowadza pakiety o nazwach kończących się na `.udeb'. W skrócie, jest to format micro-`.deb', który niekoniecznie zgadza się dokładnie z polityką Debiana, nie posiada zawartości takiej jak dokumentacja i jest wykorzystywany wyłącznie przez `debian-installer', nowe instalator Debiana, tworzony dla wydania Sarge. Format plików `.deb' oraz `.udeb' jest identyczny. Program `udpkg' używany do obsługi pakietów `.udeb' posiada ograniczone możliwości w stosunku do standardowego `dpkg' i obsługuje mniej zależności pomiędzy pakietami. Różnica w nazwie wynika z tego, że osoby utrzymujące pakiety Debiana w formacie `.deb' nie były by zadowolone z pojawienia się pakietów nie spełniających założeń. Wybrano więc inną nazwę w celu podkreślenia tych różnic oraz zabezpieczenia przed sytuacją, w której użytkownicy mohą próbować instalować takie pakiety w działającym systemie. Pakiety `.udeb' są używane na startowym dysku umieszczonym w pamięci wyłącznie podczas podstawowej instalacji, w celu utworzenia bardzo okrojonego systemu. 2.2.2. Format pakietów Debiana ------------------------------ ,,Pakiet'' Debiana (zwany też archiwum Debiana - nie mylić z umieszczoną na serwerze całą dystrybucją!) zawiera pliki wykonywalne, biblioteki oraz dokumentację związaną z konkretnym programem lub zestawem w jakiś sposób powiązanych ze sobą programów. Z reguły nazwa pakietu Debiana kończy się sufiksem `.deb'. Budowę wewnętrzną pakietów binarnych w tym formacie opisuje podręcznik systemowy deb(5). Z uwagi na możliwość zachodzenia zmian w specyfikacji formatu (z jednego wydania systemu Debian na kolejne jego wydanie), przy manipulacji plikami `.deb' należy zawsze korzystać z dpkg-deb(1). Wszystkie pakiety Debiana (Sarge i wcześniejsze dystrybucje), można obrabiać używając standardowych poleceń systemu Unix: `ar', i `tar', nawet, gdy polecenia `dpkg' są niedostępne. 2.2.3. Zasady nadawania nazw pakietom Debiana --------------------------------------------- Nazwy plików zawierających pakiety w Debianie przestrzegają następujących zasad: _-.deb gdzie stanowi nazwę pakietu. Dla sprawdzenia: mając dany plik `.deb' można określić nazwę zawartego w nim pakietu w jeden z następujących sposobów: * przejrzeć plik ,,Packages'' w katalogu, w którym jest przechowywany na jednym z serwerów Debiana. Plik ten zawiera sekcje opisujące każdy pakiet. Pierwszy wiersz każdej sekcji zawiera oficjalną nazwę pakietu (po ,,Package: ''). * użyć polecenia `dpkg --info .deb' (gdzie i są odpowiednio wersją i rewizją pakietu ). Polecenie wyświetla wśród innych rzeczy nazwę pakietu zawartego w pliku poddanym sprawdzeniu. Składnik jest numerem wersji, nadanym przez programistę zajmującego się danym programem/pakietem poza systemem Debian. Numery wersji nie są ustalane przez żadne normy, dlatego też mogą one mieć najrozmaitsze formaty, jak np. ,,19990513'' czy ,,1.3.8pre1''. Składnik jest numerem rewizji w Debianie i jest nadawany przez opiekuna danego pakietu lub przez indywidualnego użytkownika, jeśli ten zechce zbudować pakiet samodzielnie. Numer ten odpowiada poziomowi rewizji pakietu w systemie; z tego względu nowy poziom rewizji zwykle oznacza zmiany w plikach opisujących budowę i instalację pakietu: `debian/rules' (Debian makefile), `debian/control' (Debian control file), skrypcie instalacyjnym i deinstalacyjnym `debian/p*', lub plikach konfiguracyjnych związanych z pakietem. 2.2.4. Ochrona lokalnych plików konfiguracyjnych ------------------------------------------------ Mechanizm ,,conffiles'' istniejący w Debianie pozwala na otoczenie ochroną plików konfiguracyjnych w systemie. Pliki te, zazwyczaj umieszczone w katalogu `/etc', są wymienione w plikach o nazwach kończących się na `conffiles' wchodzących w skład systemu pakietów. Mechanizm ten gwarantuje, że systemowe pliki konfiguracyjne nie będą nadpisywane podczas instalacji nowej wersji pakietu. Jeśli możliwa jest konfiguracja systemu bez dokonywania zmian w plikach należących do różnych pakietów, dobrym pomysłem jest powstrzymanie się od ich modyfikacji nawet jeśli są to pliki ,,conffiles''. Ułatwi to i przyspieszy instalację nowych wersji pakietów. Aby dowiedzieć się, jakie dokładnie pliki zostaną zachowane podczas instalacji nowej wersji (upgrade'u) pakietu, należy uruchomić polecenie: dpkg --status i szukać ,,Conffiles:''. Szczegółów na temat zawartości plików `conffiles' dostarcza dokument Debian Policy Manual w rozdziale 11.7 (zobacz Rozdział 15.1, `Zasoby'). 2.2.5. Skrypty instalacyjne i deinstalacyjne -------------------------------------------- Są to skrypty automatycznie uruchamiane przed instalacją i po instalacji pakietu. Wraz z plikiem o nazwie `control' wchodzą w skład sekcji ,,control'' każdego pakietu w Debianie. Są to: preinst Ten skrypt jest wykonywany zanim pakiet zostanie rozpakowany z pliku `.deb'. Wiele skryptów ,,preinst'' zatrzymuje działanie usług świadczonych przez pakiety, których nową wersję właśnie instalujemy, aż do czasu zakończenia procesu instalacji lub aktualizacji (tzn. do chwili bezbłędnego wykonania skryptu ,,postinst''). postinst Ten skrypt z zasady wykonuje wszelkie operacje konfiguracyjne wymagane do prawidłowej pracy pakietu po jego rozpakowaniu z pliku `.deb'. Skrypty ,,postinst'' często wymagają wprowadzenia pewnych informacji przez użytkownika i/lub ostrzegają go, że w wypadku akceptacji wartości domyślnych powinien pamiętać o późniejszej rekonfiguracji pakietu w miarę potrzeb. Wiele ze skryptów ,,postinst'' wykonuje następnie wszelkie polecenia konieczne do uruchomienia lub ponownego uruchomienia danej usługi po instalacji lub aktualizacji pakietu. prerm Z reguły, skrypt ten zatrzymuje wszystkie demony związane z pakietem, a jest wykonywany przed usunięciem plików, które zawierał ten pakiet. postrm Ten skrypt z reguły modyfikuje dowiązania lub inne pliki związane z pakietem i/lub usuwa pliki przezeń utworzone (zobacz również Rozdział 2.2.7, `Pakiety wirtualne'). Aktualnie wszystkie pliki sterujące pakietu (te z sekcji ,,control'') można znaleźć w katalogu `/var/lib/dpkg/info'. Pliki związane z pakietem `foo' mają nazwy zaczynające się od ,,foo'' i kończące na ,,preinst'', ,,postinst'', itd. Plik `foo.list' w tym katalogu wymienia wszystkie pliki zainstalowane podczas instalacji pakietu `foo'. (Położenie tych plików jest wewnętrzną sprawą programu `dpkg' i może być zmienione). 2.2.6. Priorytety pakietów -------------------------- Każdemu pakietowi w Debianie opiekunowie dystrybucji przypisali pewien _priorytet_, mający spełniać pomocnicze funkcje względem systemu zarządzania pakietami. Istnieją następujące rodzaje priorytetów: * Pakiety _Wymagane_ (_Required_), są konieczne do właściwego działania systemu. W ich skład wchodzą wszystkie narzędzia konieczne do naprawy uszkodzeń systemu. Nie wolno ich usuwać, bo system może ulec totalnej zapaści, która uniemożliwi nawet użycie `dpkg' do próby jego odtworzenia. Systemy zawierające wyłacznie pakiety o priorytecie Required najprawdopodobniej nie nadają się do wielu rzeczy, ale posiadają funkcjonalność wystarczającą do ich uruchomienia i instalacji dodatkowego oprogramowania. * Pakiety _Ważne_ (_Important_), powinny być zainstalowane na każdym systemie uniksopodobnym. Inne pakiety, bez których system nie będzie dobrze działał, lub nie będzie użyteczny, będą posiadać również ten priorytet. _Nie należą_ do nich Emacs, X11, TeX czy inne duże aplikacje. Pakiety o priorytecie _Important_ tworzą zaledwie gołą infrastrukturę. * Pakiety _Standardowe_ (_Standard_). Stanowią standard na każdym systemie linuksowym, tworząc nieduży, ale niezbyt ograniczony system pracujący w trybie tekstowym. Pakiety o tym priorytecie zainstalują się domyślnie, jeżeli użytkownik nie wybierze nic ponadto. Grupa _Standard_ zawiera niewiele dużych aplikacji, ale zawiera Emacs (jest on bardziej elementem infrastruktury, niż aplikacją) i rozsądny wybór z TeX-a i LaTeX-a (to, czego można używać bez X). * Pakiety _Opcjonalne_ (_Optional_) są pakietami, których instalacja może się okazać rozsądnym wyborem nawet wtedy, gdy się nie zna ich na wskroś i kiedy nie ma się jakichś szczególnych wymagań. W skład tej grupy wchodzą X11, pełna dystrybucja TeX-a i mnóstwo aplikacji. * Pakiety _Ekstra_ (_Extra_) są w konflikcie z innymi pakietami o wyższym priorytecie, mają małą użyteczność dla nieobeznanych z nimi, albo mają szczególne wymagania, które nie pozwalają im wejść do grupy pakietów Opcjonalnych. Zwróć uwagę na różnice pomiędzy "Priority: required", "Section: base" i "Essential: yes" w opisie pakietu. "Section: base" oznacza, że ten pakiet jest instalowany w nowym systemie przed czymkolwiek innym. Większość pakietów z "Section: base" posiada ""Priority: required" lub przynajmniej "Priority: important" i wiele z nich jest oznaczona jako "Essential: yes". "Essential: yes" oznacza, że aby taki pakiet usunąć należy użyć dodatkowych parametrów do polecenia tak by wymusić to usuwanie korzystając z `dpkg'. Na przykład `libc6', `mawk' i `makedev' posiadają w ustawieniach "Priority: required" i "Section: base" ale nie "Essential: yes". 2.2.7. Pakiety wirtualne ------------------------ Pakiet wirtualny nosi nazwę odnoszącą się do dowolnego z grupy pakietów, posiadających zbliżoną funkcjonalność. Na przykład zarówno `tin' jak i `trn' są klientami grup dyskusyjnych i każdy z nich powinien spełniać wymagania innego programu, wymagającego czytnika news do działania. O obu z nich mówi się więc, że dostarczają ,,wirtualny pakiet'' o nazwie `news-reader'. Podobnie, `exim' i `sendmail' są programami transportującymi pocztę (mail transport agent). Mówi się więc o nich, że dostarczają wirtualny pakiet o nazwie `mail-transport-agent'. Jeżeli jeden z nich zostanie zainstalowany, każdy program zależący od instalacji mail transport agent zostanie usatysfakcjonowany dzięki istnieniu tego pakietu wirtualnego. Debian posiada również mechanizm umożliwiający administratorowi wyznaczenie preferowanego pakietu w razie, gdy kilka zainstalowanych pakietów dostarcza ten sam ,,pakiet wirtualny''. Odpowiednim poleceniem jest `update-alternatives', które opisano w Rozdział 6.5.3, `Alternatywne polecenia'. 2.2.8. Zależności między pakietami ---------------------------------- W systemie zarządzania pakietami w Debianie istnieje kategoria ,,zależności'' między pakietami zaprojektowanych tak, aby w prosty sposób, (za pomocą pojedynczej flagi) ukazać poziom niezależności funkcjonowania programu A od istnienia w danym systemie programu B: * Pakiet A _zależy_ (_depends_ on) od Pakietu B, jeżeli B musi być bezwarunkowo zainstalowany, aby można było uruchomić A. W niektórych przypadkach A nie tylko zależy od B, ale od jego określonej wersji. W takich przypadkach zależność wersji jest dolną granicą, co należy rozumieć, że A zależy od dowolnej wersji B nowszej od wersji podanej. * Pakiet A _zaleca_ (_recommends_) Pakiet B, jeżeli opiekun pakietu jest zdania, że większość użytkowników nie zechciałaby skorzystać z A bez posiadania możliwości oferowanych przez B. * Pakiet A _sugeruje_ (_suggests_) Pakiet B, jeżeli B zawiera pliki mające związek z funkcjonalnością A (zwykle zwiększające ją). * Package A _jest w konflikcie_ (_conflicts_) z Pakietem B wtedy, kiedy A nie będzie działać, jeżeli B jest zainstalowany w systemie. Konflikty zachodzą przeważnie wtedy, gdy A zawiera pliki, które mają pod jakimś względem przewagę nad plikami należącymi do B. Stan ,,conflicts'' często występuje wspólnie z ,,replaces''. * Pakiet A _zastępuje_ (_replaces_) Pakiet B wtedy, gdy pliki zainstalowane przez B ulegają usunięciu i (w niektórych wypadkach) nadpisaniu przez pliki należące do A. * Pakiet A _dostarcza_ (_provides_) Pakiet B wtedy, gdy wszystkie pliki i cała funkcjonalność pakietu B zawierają się w A. Daje to użytkownikom mniejszych dysków możliwość zainstalowania tylko tej części pakietu A, której naprawdę potrzebują. Bardziej szczegółowe informacje o wykorzystaniu każdego z powyższych pojęć zawierają dokumenty _Packaging Manual_ i _Policy Manual_. Dobrze wiedzieć, że `dselect' umożliwia bardziej subtelną kontrolę nad pakietami _zalecanymi_ i _sugerowanymi_, niż `apt-get', który po prostu pobiera wszystkie pakiety oznaczone _zależy_ a zostawia w spokoju _rekomendowane_ i _sugerowane_. W nowoczesnym wydaniu obydwa programy są ,,nakładką'' na APT. 2.2.9. Znaczenie ,,pre-depends'' -------------------------------- Pojęcie ,,zależność wstępna'' (,,pre-depend'') stanowi szczególny rodzaj zależności. W wypadku zwyczajnego pakietu `dpkg' rozpakuje plik pakietu (plik `.deb') niezależnie od tego, czy pliki, od których dany pakiet zależy, są już w systemie. Samo rozpakowanie polega na tym, że `dpkg' wyciąga z pliku archiwum pliki przeznaczone do instalacji w systemie użytkownika i umieszcza je we właściwych miejscach w tym systemie. Jeżeli pakiet właśnie instalowany _zależy_ od obecności w systemie użytkownika jakichś innych pakietów, `dpkg' odmówi dokończenia instalacji (co przejawiłoby się wykonaniem akcji ,,configure'') aż do czasu zainstalowania tych pakietów. Istnieje jednak trochę pakietów, których `dpkg' nie będzie chciał nawet rozpakować, dopóki nie zostaną spełnione pewne zależności. Mówimy, że takie pakiety ,,pre-depend'' (zależą wstępnie) od obecności w systemie jakichś innych pakietów. Mechanizm ten został wprowadzony w projekcie Debian w celu ułatwienia bezpiecznej instalacji nowych wersji pakietów w dobie przejścia z formatu `a.out' na `ELF', gdy nawet _kolejność_ rozpakowywania pakietów była krytyczna. Są też inne sytuacje związane z dużymi aktualizacjami systemu, w których omawiany mechanizm okazuje się użyteczny, np. dla pakietów o priorytecie ,,Wymagane'' zależnych od libc. Bardziej szczegółowe informacje można znaleźć w dokumencie Packaging Manual. 2.2.10. Status pakietu ---------------------- Status pakietu może przybierać formę: ,,nieznany'' (,,unknown''), ,,zainstalować'' (,,install''), ,,usunąć częściowo'' (,,remove''), ,,usunąć całkowicie'' (,,purge'') lub ,,zatrzymać'' (,,hold''). Te znaczniki pokazują, co użytkownik chciałby uczynić z danym pakietem (przez dokonanie wyboru w sekcji ,,Select'' programu `dselect' lub przez bezpośrednie wywołanie `dpkg'). Ich znaczenie jest następujące: * _unknown_ - użytkownik nigdy nie zdradził, czy w ogóle chce tego pakietu * _install_ - użytkownik chce, aby pakiet (lub jego nowsza wersja) został zainstalowany. * _remove_ - użytkownik chce, aby pakiet został usunięty, ale nie chce usuwać jego plików konfiguracyjnych. * _purge_ - użytkownik chce całkowitego usunięcia pakietu, z plikami konfiguracyjnymi włącznie. * _hold_ - użytkownik nie chce, aby pakiet był ruszany, tzn. chce zachować bieżącą wersję pakietu w bieżącym stanie, wszystko jedno jakim. 2.2.11. Zapobieganie instalacji nowych wersji pakietów ------------------------------------------------------ Są dwa mechanizmy chroniące pakiety przed instalacją nowej wersji, jeden z nich oparty jest na `dpkg', a drugi od dystrybucji Woody, na `APT'. Wykorzystując ten pierwszy z nich, należy najpierw wyeksportować listę zawierającą nazwy zainstalowanych pakietów i status każdego z nich: dpkg --get-selections \* > Następnie należy dokonać edycji powstałego pliku `', zmieniając odpowiednio wiersz zawierający nazwę pakietu, który chcemy chronić (np. `libc6'), z czegoś takiego: libc6 install na coś takiego: libc6 hold Plik należy zapisać na dysku i wprowadzić go do bazy danych `dpkg' wykonując polecenie: dpkg --set-selections < Jeżeli dobrze znamy nazwę pakietu, który chcemy chronić, możemy po prostu wykonać: echo libc6 hold | dpkg --set-selections Dla każdego potraktowanego w ten sposób pakietu oznacza to, że będzie on chroniony przed zainstalowaniem swojej nowszej wersji. Taki sam wynik można uzyskać korzystając z programu `dselect'. Wystarczy w tym wypadku wejść do sekcji [S]elect, odnaleźć pakiet, który chcemy chronić przed zmianą i nacisnąć klawisz ,,='' lub ,,H''. Zmiana statusu będzie obowiązywać od chwili opuszczenia sekcji [S]elect. Wiodący w dystrybucji Woody, system APT posiada nowy, alternatywny mechanizm ochrony pakietów podczas ich pobierania z repozytorium, oparty na `Pin-Priority'. Więcej szczegółów na ten temat dostarczy apt_preferences(5), wraz z http://www.debian.org/doc/manuals/apt-howto/ lub pakietem `apt-howto'; Rozdział 6.2.8, `Przegląd pliku `/etc/apt/preferences'' również zawiera krótkie wyjaśnienie. 2.2.12. Pakiety źródłowe ------------------------ Pakiety źródłowe są przechowywane w katalogu o nazwie `source', można je pobierać klasycznymi metodami, można też użyć polecenia apt-get source do ich pobrania (o konfiguracji programu APT do tej operacji szerzej traktuje podręcznik systemowy: apt-get(8)). 2.2.13. Tworzenie pakietów binarnych ze źródłowych -------------------------------------------------- Aby skompilować pliki źródłowe dla pakietu o nazwie `', będzie trzeba użyć wszystkich, z następujących plików: `.dsc', `.tar.gz' oraz `.gz'. (ciekawa rzecz: dla rodzimych pakietów Debiana nie ma plików `.diff.gz'). Jeśli pobraliśmy już wszystkie potrzebne pliki i mamy zainstalowany pakiet `dpkg-dev', polecenie $ dpkg-source -x .dsc rozpakuje pakiet do katalogu o nazwie `'. Aby utworzyć pakiet binarny, należy wydać następujące polecenie (tutaj podane w wersji dla zwykłego użytkownika): $ cd foo-version $ su -c "apt-get update ; apt-get install fakeroot" $ dpkg-buildpackage -rfakeroot -us -uc Następnie, $ su -c "dpkg -i ../.deb" aby zainstalować świeżo utworzony pakiet. Więcej informacji - Rozdział 6.4.10, `Przeniesienie pakietu do systemu `stabilnego''. 2.2.14. Tworzenie nowych pakietów Debiana ----------------------------------------- Szczegółowych informacji dotyczących tworzenia nowych pakietów dostarczy lektura _New Maintainers' Guide_, dostępnego jako pakiet `maint-guide', lub pod adresem http://www.debian.org/doc/manuals/maint-guide/. 2.3. Aktualizacja systemu Debian -------------------------------- Jednym ze strategicznych celów Debiana jest dostarczenie spójnych metod umożliwiających bezpieczną instalację nowego oprogramowania; dokładamy starań, aby proces instalacji nowego wydania na poprzednim przebiegał jak najbardziej gładko. Pakiety będą informować użytkownika o ważnych zdarzeniach podczas instalacji, a często będą proponować rozwiązanie problemu. Należy przeczytać Uwagi Wydawnicze (Release Notes), dokument opisujący szczegóły instalacji nowej wersji (upgrade'u) poszczególnych dystrybucji, dostarczany na każdej płytce z systemem Debian i dostępny na stronach WWW pod adresem http://www.debian.org/releases/stable/releasenotes lub http://www.debian.org/releases/testing/releasenotes. Praktyczny poradnik traktujący o instalacji nowej dystrybucji na poprzednią jest zawarty w Część 6, `Zarządzanie pakietami Debiana'. Ten rozdział opisuje podstawowe szczegóły. 2.3.1. Sposoby aktualizacji systemu Debian ------------------------------------------ Zawsze można użyć anonimowego FTP lub programu `wget', aby dostać się do sieciowego archiwum Debiana, przeszukać katalogi, znaleźć żądany plik, pobrać go i wreszcie zainstalować przy pomocy `dpkg' (`dpkg' instaluje nowe pakiety na właściwym miejscu, również na działającym systemie). Czasami jednak nowa wersja jednego pakietu wymaga instalacji nowej wersji innego pakietu, co może prowadzić do uniemożliwienia instalacji żądanego pakietu do czasu zainstalowania tego drugiego, wymaganego. Dla wielu osób takie ręczne podejście jest zbyt czasochłonne, ze względu na fakt, że Debian tak szybko ewoluuje - co tydzień dochodzi tuzin lub więcej nowych pakietów. Tuż przed dużymi wydaniami ta liczba jeszcze rośnie. Żeby sobie dać radę z taką lawiną, wiele osób preferuje używanie zautomatyzowanego oprogramowania. Do tego celu powstało kilka wyspecjalizowanych narzędzi do zarządzania pakietami. 2.3.2. Przegląd narzędzi do zarządzania pakietami ------------------------------------------------- System zarządzania pakietami w Debianie posiada dwa cele: manipulacja samymi pakietami oraz pobieranie plików wraz z pakietami z archiwum pakietów. Pierwsze zadanie jest wykonywane przez `dpkg', drugie - przez APT i `dselect' 2.3.3. `dpkg' ------------- Jest to główny program do manipulacji plikami z pakietami. Pełny opis można znaleźć w dpkg(8). `dpkg' występuje w towarzystwie kilku prostych programów pomocniczych: * `dpkg-deb': Manipulacja plikami `.deb'. dpkg-deb(1) * `dpkg-ftp': Starszy program do pobierania plików z pakietami. dpkg-ftp(1) * `dpkg-mountable': Starszy program do pobierania plików z pakietami. dpkg-mountable(1) * `dpkg-split': Dzieli duży pakiet na mniejsze pliki. dpkg-split(1) `dpkg-ftp' i `dpkg-mountable' zostały zastąpione przez system APT. 2.3.4. APT ---------- APT (skrót od Advanced Packaging Tool - Zaawansowane Narzędzie Pakietujące) jest zaawansowanym interfejsem do debianowego systemu zarządzania pakietami składającym się z kilku programów, których nazwy z reguły zaczynają się od ,,apt-''. `apt-get', `apt-cache' i `apt-cdrom' są działającymi w środowisku znakowym narzędziami do obsługi pakietów. Są również używane jako ,,back end'' (program wykonujący właściwą pracę pod osłoną interfejsu ułatwiającego użytkownikowi obsługę) dla innych narzędzi takich, jak `dselect' i `aptitude'. Więcej informacji można uzyskać, instalując pakiet `apt' i czytając apt-get(8), apt-cache(8), apt-cdrom(8), apt.conf(5), sources.list(5), apt_preferences(5) (Woody) oraz `/usr/share/doc/apt/guide.html/index.html'. Innym źródłem informacji może być również APT HOWTO (http://www.debian.org/doc/manuals/apt-howto/), dostępny po zainstalowaniu pakietu `apt-howto' jako `/usr/share/doc/Debian/apt-howto/'. `apt-get upgrade' i `apt-get dist-upgrade' pobierają tylko pakiety wymienione w polach ,,Depends:'' i ignorują wszystkie pakiety wymienione w polach ,,Recommends:'' i ,,Suggests:''. Jeżeli się tego nie lubi, używa się `dselect'. 2.3.5. `dselect' ---------------- `dselect' jest zaopatrzonym w menu, interfejsem systemu zarządzania pakietami w Debianie. Jest szczególnie użyteczny przy okazji pierwszych instalacji i większych aktualizacji. Zobacz Rozdział 6.2.3, ``dselect''. Więcej informacji zawiera dokument `/usr/share/doc/install-doc/dselect-beginner.en.html' z pakietu `install-doc' lub dselect Documentation for Beginners (Dokumentacja dselect dla początkujących) (http://www.debian.org/releases/woody/i386/dselect-beginner). 2.3.6. Aktualizacja działającego systemu ---------------------------------------- Kernel i system plików używane w Debianie umożliwiają zastępowanie jednych plików drugimi nawet wtedy, gdy są one właśnie używane. Dostarczamy również program o nazwie `start-stop-daemon', używany do uruchamiania demonów (pracujących w tle programów użytkowych) przy starcie systemu i do ich zatrzymywania podczas zmiany trybu pracy kernela (np. z trybu wieloużytkownikowego na jednoużytkownikowy lub na ,,halt''). Tego samego programu używają skrypty instalacyjne, gdy instalowany jest nowy pakiet zawierający demony - do ich zatrzymywania i uruchamiania w miarę potrzeb. Nawiasem mówiąc, Debian nie wymaga, aby system poddawany aktualizacji pracował w trybie jednoużytkownikowym. 2.3.7. Pobrane i chwilowo zapisane na dysku pliki `.deb' -------------------------------------------------------- Jeżeli ręcznie pobrałeś pliki pakietów na dysk (co nie jest absolutnie konieczne, wystarczy zapoznać się z wyżej zamieszczonym opisem `dpkg-ftp' lub APT), to po ich zainstalowaniu możesz usunąć ze swojego systemu pliki `.deb'. W wypadku użycia programu APT, pakiety są zapisywane w katalogu `/var/cache/apt/archives/'. Można je skasować po zainstalowaniu (`apt-get clean') albo skopiować do katalogu `/var/cache/apt/archives/' na innej maszynie, aby nie ściągać ich kolejny raz przy powtórnych instalacjach. 2.3.8. Rejestracja zmian w pakietach ------------------------------------ `dpkg' rejestruje pakiety, które rozpakowano, skonfigurowano, usunięto częściowo lub całkowicie, ale (przynajmniej obecnie) nie przechowuje rejestru tego, co się działo na konsoli w czasie poddawania pakietów tym działaniom. Najprostszym sposobem obejścia tego problemu jest uruchamianie sesji `dpkg', `dselect', `apt-get' itd. przy pomocy programu `script' (script(1)). 2.4. Proces ładowania systemu w Debianie ---------------------------------------- 2.4.1. Program `init' --------------------- Jak wszystkie Uniksy, Debian ładuje się do pamięci wykonując program `init'. W pliku konfiguracyjnym programu `init' (`/etc/inittab') jest zapisane, że w pierwszej kolejności ma być wykonany skrypt `/etc/init.d/rcS'. Uruchamia on wszystkie skrypty znajdujące się w katalogu `/etc/rcS.d/' poprzez nowe podprocesy lub ich kopie, zależnie od rozszerzenia nazwy pliku, wykonując inicjalizację systemu, w skład której wchodzi sprawdzanie i montowanie systemów plików, ładowanie modułów, uruchamianie usług sieciowych, ustawianie zegara i in. Następnie, dla kompatybilności z innymi systemami, uruchamia skrypty umieszczone w katalogu `/etc/rc.boot/' (z wyjątkiem tych, których nazwy zawierają ,,.''). Skrypty umieszczone w tym katalogu są zwykle zarezerwowane do wyłącznego użytku administratora i używanie ich w pakietach nie jest pochwalane. Więcej informacji można znaleźć w Podręczniku Polityki Debiana w Rozdział 9.1, `Inicjalizacja systemu' i System run levels and init.d scripts (http://www.debian.org/doc/debian-policy/ch-opersys#s-sysvinit). 2.4.2. Poziomy startu (Runlevels) --------------------------------- Po załadowaniu systemu, `init' wykonuje wszystkie skrypty startowe w katalogu określonym przez domyślny poziom startu (default runlevel, wpis `id' w pliku `/etc/inittab'). Jak większość Uniksów kompatybilnych z System V, Linux ma 7 poziomów startu: * 0 (zatrzymanie systemu), * 1 (tryb jednoużytkownikowy), * 2 do 5 (różne tryby wieloużytkownikowe) oraz * 6 (restart czyli przeładowanie systemu). W Debianie ustawia się `id=2', co oznacza, że domyślny poziom startu po wejściu w tryb wieloużytkownikowy wynosi 2, a uruchomieniu podlegają skrypty znajdujące się w katalogu `/etc/rc2.d/'. W rzeczywistości skrypty w każdym z katalogów `/etc/rc.d/' są tylko symbolicznymi dowiązaniami (symlinkami) do skryptów w `/etc/init.d/'. Ich _nazwy_ natomiast dobiera się tak, aby odzwierciedlały _sposób_, w jaki zostaną uruchomione skrypty znajdujące się w `/etc/init.d/'. W szczególności, przed wejściem na którykolwiek poziom startu uruchomione zostają wszystkie skrypty o nazwach zaczynających się na ,,K''; są to skrypty wyłączające usługi. Następnie uruchomione zostają skrypty o nazwach zaczynających się na ,,S'', które są skryptami uruchamiającymi usługi. Dwucyfrowa liczba występująca po ,,K'' lub ,,S'' określa kolejność, w jakiej skrypty zostaną uruchomione. Skrypty z mniejszymi liczbami są uruchamiane w pierwszej kolejności. To wszystko działa, ponieważ skrypty w `/etc/init.d/' pobierają argument, którego wartością może być ,,start'', ,,stop'', ,,reload'', ,,restart'' lub ,,force-reload'' i wykonują zadanie określone przez ten właśnie argument. Skryptów tych można używać również po załadowaniu systemu, sterując w ten sposób różnymi procesami. Na przykład, (z argumentem ,,reload'') polecenie # /etc/init.d/exim4 reload wysyła demonowi programu exim4 polecenie powtórnego wczytania pliku konfiguracyjnego. 2.4.3. Modyfikacje procesu ładowania ------------------------------------ Debian nie korzysta z pochodzącego z BSD katalogu `rc.local' w celu dostosowywania procesu ładowania do jakichś szczególnych życzeń użytkownika; zamiast tego oferuje następujący mechanizm. Załóżmy, że system powinien wykonać skrypt `foo' przy starcie lub podczas wchodzenia na któryś z poziomów startu. Administrator powinien wtedy: 1. Umieścić skrypt `foo' w katalogu `/etc/init.d/'. 2. Uruchomić występujące w Debianie polecenie `update-rc.d' z odpowiednimi argumentami, ustawiając w ten sposób dowiązania między wymienionymi w wierszu poleceń plikami w katalogach `rc.d' a `/etc/init.d/foo', gdzie jest liczbą od 0 do 6 odpowiadającą jednemu z poziomów startu (runlevel) Systemu V. 3. Przeładować system. Polecenie `update-rc.d' ustawi dowiązania między plikami w katalogach `rc.d' a skryptem w `/etc/init.d/'. Nazwa każdego z dowiązań będzie się zaczynać od litery ,,K'' lub ,,S'', po której wystąpi liczba oraz nazwa skryptu. Gdy system osiągnie poziom startu , skrypty z `/etc/init.d/' posiadające w katalogu `/etc/rc.d/' dowiązania o nazwach zaczynających się na ,,K'' są wykonywane z argumentem `stop', następnie są wykonywane skrypty, nazwy odniesień do których zaczynają się na ,,S'', przyjmując za argument `start'. Można, na przykład, spowodować uruchomienie skryptu `foo' w toku sekwencji startowej umieszczając go w `/etc/init.d/' i instalując dowiązania poleceniem `update-rc.d foo defaults 19'. Argument `defaults' odnosi się do domyślnych poziomów startu (od 2 do 5). Argument `19' gwarantuje, że `foo' zostanie uruchomiony przed którymkolwiek skryptem zawierającym liczbę 20 lub większą. 2.5. Wsparcie dla różnorodności ------------------------------- Debian oferuje wiele sposobów spełniania życzeń administratora systemu bez groźby uszkodzenia systemu. * `dpkg-divert', zobacz Rozdział 6.5.1, `Polecenie `dpkg-divert''. * `equivs', zobacz Rozdział 6.5.2, `Pakiet `equivs''. * `update-alternatives', zobacz Rozdział 6.5.3, `Alternatywne polecenia'. * `make-kpkg' może zadowolić wymagania stawiane przez wiele bootloaderów. Zobacz make-kpkg(1) i Rozdział 7.1.1, `Standardowa metoda Debiana'. Wszystkie pliki w podkatalogach katalogu `/usr/local/' należą do administratora systemu i Debian ich nawet nie tknie. Większość (lub wszystkie) plików w podkatalogach `/etc' to pliki konfiguracyjne i Debian nie nadpisze ich w trakcie instalacji nowszych wersji pakietów, chyba, że administrator wyraźnie sobie tego zażyczy. 2.6. Internacjonalizacja ------------------------ System Debian jest zinternacjonalizowany: obsługuje wyświetlanie i wprowadzanie znaków w wielu językach, tak na konsoli tekstowej, jak i w Xach. Wiele dokumentów, stron podręcznika systemowego `man' i komunikatów systemu przetłumaczono i tłumaczy się na coraz większą liczbę języków. W trakcie instalacji, Debian zachęca użytkownika do wybrania języka instalacji (czasem nawet lokalnego dialektu). Jeżeli zainstalowany przez Ciebie system nie obsługuje wszystkich właściwości językowych, których potrzebujesz, lub jeżeli chcesz zmienić język lub zainstalować inną klawiaturę, która obsługiwałaby Twój język, zapoznaj się z Rozdział 9.7, `Lokalizacja'. 2.7. Debian i kernel -------------------- Zobacz Część 7, `Jądro systemu Linux w Debianie'. 2.7.1. Kompilacja jądra ze źródeł innych, niż debianowe ------------------------------------------------------- Trzeba zrozumieć obowiązujące w Debianie zasady postępowania odnośnie plików nagłówkowych. Biblioteki C w Debianie buduje się z wykorzystaniem najnowszych _stabilnych_ wydań plików nagłówkowych _jądra_ (_kernel_) (Na przykład, Debian-1.2 używał plików nagłówkowych jądra w wersji 5.4.13). Taka praktyka jest w kontraście ze wszystkimi pakietami zawierającymi pliki źródłowe jądra, które wykorzystują również nowsze wersje plików nagłówkowych. Pliki nagłówkowe jądra rozpowszechniane z jego źródłami są umieszczone w katalogu `/usr/include/linux/include/'. W razie potrzeby kompilacji programu wymagającego plików nagłówkowych kernela w wersji nowszej, niż zawarte w pakiecie `libc6-dev', trzeba do linii poleceń w trakcie kompilacji dodać `-I/usr/src/linux/include/'. Coś takiego w pewnym momencie przydarzyło się na przykład pakietowi demona automountera (`amd'). Gdy nowsze jądro zmieniło trochę funkcji obsługujących NFS, `amd' musiał zostać o tym powiadomiony, co wymagało dołączenia najnowszej wersji plików nagłówkowych jądra. 2.7.2. Narzędzia do tworzenia jądra ----------------------------------- Użytkowników, którzy chcą (albo muszą) utworzyć własne pakiety kernela, zachęcamy do instalacji pakietu `kernel-package'. Zawiera on skrypt umożliwiający zbudowanie pakietu zawierającego jądro, umożliwiając w ten sposób utworzenie Debianowego pakietu zawierającego już skompilowane jądro przez wydanie polecenia # make-kpkg kernel_image w katalogu `/usr/src/linux/'. Bardziej szczegółowych informacji udostępnia polecenie # make-kpkg --help oraz strona podręcznika systemowego make-kpkg(1) i Część 7, `Jądro systemu Linux w Debianie'. Użytkownicy chcący skompilować najnowszy kernel (albo po prostu dowolny, wymarzony) muszą samodzielnie pobrać kod źródłowy ze swojego ulubionego archiwum sieciowego, o ile nie jest dostępny pakiet kernel-source-, gdzie oznacza wersję kernela. Skrypt startowy `initrd' wymaga specjalnej łaty na kernel o nazwie `initrd'; zobacz http://bugs.debian.org/149236. Szczegółową instrukcję użytkowania pakietu `kernel-package' można znaleźć w pliku `/usr/doc/kernel-package/README.gz'. 2.7.3. Specjalne wyposażenie do obsługi modułów jądra ----------------------------------------------------- Pakiet `modconf' zawiera skrypt `/usr/sbin/modconf', którego można używać w celu wprowadzania własnych modyfikacji do konfiguracji modułów. Skrypt ten wyświetla menu, wypytując użytkownika o szczegóły dotyczące ładowanych sterowników urządzeń w jego systemie. Na podstawie udzielonych odpowiedzi przeprowadzana jest modyfikacja pliku `/etc/modules.conf' (wyszczególniającego aliasy i inne argumenty, których należy użyć w połączeniu z różnymi modułami), w powiązaniu z plikami w `/etc/modutils/' i plikiem `/etc/modules' (zawierającym spis modułów, które trzeba załadować przy starcie systemu). Podobnie jak źródła kernela zostały wyposażone w plik `Configure.help', ułatwiający konfigurację kerneli własnej produkcji, tak i pakiet `modconf' daje do dyspozycji serię plików pomocy (w `/usr/share/modconf/'), dostarczających szczegółowych informacji na temat odpowiednich argumentów dla każdego modułu. Przykłady można znaleźć w Rozdział 7.2, `Zmodularyzowane jądro 2.4'. 2.7.4. Usuwanie starego pakietu z jądrem ---------------------------------------- Skrypt `kernel-image-.prerm' sprawdza, czy kernel, który jest aktualnie załadowany, nie jest tym samym, który usiłujemy odinstalować. Można więc niechciane pakiety kerneli usuwać używając polecenia # dpkg --purge --force-remove-essential kernel-image- (Oczywiście, w miejsce trzeba wpisać wersję i podwersję usuwanego kernela). ------------------------------------------------------------------------------- 3. Wskazówki dotyczące instalacji Debiana ----------------------------------------- Oficjalna dokumentacja znajduje się na http://www.debian.org/releases/stable/, i http://www.debian.org/releases/stable/installmanual. Natomiast wersje rozwojowe na http://www.debian.org/releases/testing/, i http://www.debian.org/releases/testing/installmanual (ciągle nad tym pracujemy). Pomimo, że ten rozdział został napisany podczas gdy używano instalatora Potato, większość zawartości została zaktualizowana do instalatora z Woodiego, ale są one dość podobne. Ponieważ Sarge będzie używał zupełnie nowego instalatora, używaj tego rozdziału jako wprowadzenie. 3.1. Główne wskazówki dotyczące instalacji systemu Linux -------------------------------------------------------- Nie zapomnij sprawdzić http://www.debian.org/CD/netinst/ jeśli szukasz skromniejszego obrazu CD instalatora systemu Debian. Używanie wersji `testing' lub `unstable' Debiana zwiększa ryzyko poważnych błędów. Ryzyko może zostać ograniczone poprzez używanie wielorozruchowego schematu z bardziej stabilną wersją, lub stosując `chroot' tak jak jest to opisane w Rozdział 8.6.34, ``chroot''. Ten drugi sposób pozwoli na używanie różnych wersji Debiana jednocześnie na różnych konsolach. 3.1.1. Podstawy zgodności sprzętowych ------------------------------------- Linux współpracuje z większością sprzętu PC i może być zainstalowany prawie na każdej maszynie. Dla mnie było to równie łatwe jak instalacja Windowsa 95/98/Me. Lista wspieranego sprzętu stale się powiększa. Jeśli masz laptopa, sprawdź Linux on Laptops (http://www.linux-laptop.net/) w celu uzyskania wskazówek dotyczących modelu i marki. Moja rekomendacja dla sprzętu PC to: * SCSI zamiast IDE do pracy, IDE/ATAPI HD do użytku prywatnego. * IDE/ATAPI CD-ROM (lub CD-RW). * PCI zamiast ISA, zwłaszcza dla kart sieciowych (NIC). * Użyć układu NIC. Dobre są Tulip dla PCI, NE2000 dla ISA. * Unikać PCMCIA (notebook) przy pierwszej instalacji. * Żadnej myszki, klawiatury itp. na USB, chyba, że lubisz wyzwania :) Jeśli masz wolny komputer to dobrym pomysłem jest podłączenie dysku do szybszej maszyny na czas instalacji. 3.1.2. Określanie informacji o sprzęcie i układach płyty głównej. ----------------------------------------------------------------- Podczas instalacji będziesz musiał wybrać rodzaj swojego sprzętu lub układ płyty głównej. Czasami nie jest łatwo znaleźć takie informacje. Proponuję wówczas: 1. Rozkręć swój komputer i zajrzyj do środka. 2. Spisz numery większych układów na karcie graficznej i sieciowej, chip blisko portu szeregowego i IDE. 3. Spisz nazwy kart PCI i ISA, patrząc na ich tylną stronę. 3.1.3. Określanie informacji o sprzęcie za pomocą Debiana; ---------------------------------------------------------- Następujące polecenia powinny Cię naprowadzić na rodzaj sprzętu i jego konfigurację. $ lspci -v |pager $ pager /proc/pci $ pager /proc/interrupts $ pager /proc/ioports $ pager /proc/bus/usb/devices Polecenia te mogą być wydawane podczas instalacji. W celu włączenia konsoli wciśnij Alt-F2. Typowa lista przerwań: * IRQ0: timer output (8254) * IRQ1: kontroler klawiatury * IRQ2: kaskadowe połączenie z IRQ8--IRQ15 w PC-AT * IRQ3: drugi port szeregowy (io-port=0x2F8) (`/dev/ttyS1') * IRQ4: drugi port szeregowy (io-port=0x3F8) (`/dev/ttyS0') * IRQ5: wolne (bylo to przerwanie HD w komputerach klasy XT) * IRQ6: kontroler stacji dyskietek (io-port=0x3F0) (`/dev/fd0', `/dev/fd1') * IRQ7: port równoległy (io-port=0x378) (`/dev/lp0') * IRQ8: rtc * IRQ9: przerwanie programowe (int 0x0A), przekierowanie do IRQ2 * IRQ10: wolne * IRQ11: wolne * IRQ12: mysz PS/2 * IRQ13: wolne (był kiedyś koprocesor 80287) * IRQ14: pierwszy kontroler IDE (`/dev/hda', `/dev/hdb') * IRQ15: drugi kontroler IDE (`/dev/hdc', `/dev/hdd') Urządzenia podłączone do portów USB są wyszczególnione w `/proc/bus/usb/devices' jako `Cls=': * Cls=00 : nieużywane * Cls=01 : Audio (głośniki itp.) * Cls=02 : Communication (MODEM, NIC, ...) * Cls=03 : HID (klawiatura, mysz, joystick itp) * Cls=07 : Printer (drukarka) * Cls=08 : Mass storage (pamięć masowa: FDD, napęd CD/DVD, HDD, Flash, ...) * Cls=09 : Hub (USB hub) * Cls=255 : specyficzny dla dostawcy Jeśli klasa urządzenia jest różna od 255 to system je obsłuży. 3.1.4. Określanie informacji o sprzęcie za pomocą innego systemu operacyjnego: ---------------------------------------------------------------------------- Informacje o sprzęcie można również uzyskać, używając innego systemu operacyjnego. Zainstaluj inną komercyjną dystrybucję Linuksa. Wykrywanie sprzętu jest w nich jak na razie dużo lepsze niż w Debianie. Ta sytuacja powinna się jednak zmienić wraz z `debian-installer' wprowadzonym w dystrybucji Sarge. Zainstaluj Windows. Konfiguracja sprzętowa może być ustalona poprzez kliknięcie prawym klawiszem myszy na ikonę 'Mój komputer' w celu otworzenia właściwości, a następnie 'Menedżera urządzeń'. Spisz wszystkie informacje takie jak IRQ, I/O adresy portów i DMA. Niektóre stare karty ISA muszą być instalowane pod DOSem. 3.1.5. Mity o Lilo ------------------ ,,Lilo jest ograniczone do 1024 cylindrów''. NIEPRAWDA ! Nowsze `lilo' używane po Debianie Potato posiada wsparcie dla lba32. Jeśli BIOS na Twojej płycie głównej obsługuje lba32 to `lilo' powinno być w stanie ładować spoza 1024 cylindra. Tylko upewnij się, że istnieje wpis ,,lba32'' w pliku `lilo.conf' jeśli posiadasz stary odpowiednik. Zobacz `/usr/share/doc/lilo/Manual.txt.gz' 3.1.6. GRUB ----------- Nowy program rozruchowy `grub' z projektu GNU Hurd może być zainstalowany na Debianie Woody: # apt-get update # apt-get install grub-doc # mc /usr/share/doc/grub-doc/html/ ... przeczytaj zawartość # apt-get install grub # pager /usr/share/doc/grub/README.Debian.gz ... to też :) By zmienić menu GRUB wyedytuj `/boot/grub/menu.lst'. Zobacz Rozdział 8.1.6, `Ustawianie parametrów uruchomieniowych GRUB', żeby się dowiedzieć jak to zrobić, ponieważ program ten różni się w konfiguracji od `lilo'. 3.1.7. Wybór zestawu dyskietek startowych ----------------------------------------- Dla Potato i zwykłej instalacji dla domowego komputera lubię używać zestawu dyskietek IDEPCI. Dla Woodiego preferuję zestaw dyskietek bf2.4. Obie używają pakietu `boot-floppies' do tworzenia dyskietek startowych. Jeśli posiadasz kartę sieciową PCMCIA, będziesz musiał użyć standardowego zestawu dyskietek (większa ilość, ale wszystkie moduły sterowników są dostępne) i skonfigurować kartę podczas ustawiania PCMCIA; nie próbuj konfigurować karty podczas standardowej konfiguracji sieci. Dla specyficznych systemów może wystąpić potrzeba stworzenia własnej dyskietki ratunkowej. Można tego dokonać podmieniając obraz jądra o nazwie ,,linux'' na standardowej dyskietce ratunkowej Debiana, na inny skompilowany wcześniej na innej maszynie. Szczegóły są opisane w pliku `readme.txt', który znajduje się na wspomnianej dyskietce. Dyskietka ratunkowa korzysta z systemu plików MS-DOS, tak więc można użyć dowolnego systemu operacyjnego by ją odczytać i zmodyfikować. To powinno uprościć życie ludziom posiadającym specyficzne karty sieciowe itp. Dla Sarge zalecane jest używanie `debian-installer' i/lub `pgi' do tworzenia dyskietek rozruchowych. 3.1.8. Instalacja ----------------- Stosuj się do oficjalnych instrukcji przedstawionych na http://www.debian.org/releases/stable/installmanual lub http://www.debian.org/releases/testing/installmanual (ciągle nad tym pracujemy). Jeśli instalujesz system używając `boot-floppies' w `testowym' wydaniu Debiana możesz być zmuszony do włączenia konsoli wciskając Alt-F2 i ręcznej edycji pliku `/etc/sources.list' w celu zmiany ,,stable'' na ,,testing'' by określić źródła APT. Zamierzam umieścić `lilo' na partycji `/dev/hda3', podczas instalowania `mbr' na dysku `/dev/hda'. To zmniejszy ryzyko nadpisania informacji startowych. Podczas instalacji wybieram: * MD5 passwords ,,tak'' * shadow passwords ,,tak'' * Instalacja ,,advanced'' (dselect **) i wybieram * Wyłączyć emacs (jeśli zaznaczony), nvi, tex, telnet, talk(d); * Załączyć mc, vim oraz nano-tiny lub elvis-tiny. Zobacz Rozdział 6.2.3, ``dselect''. Nawet jeśli jesteś przyzwyczajony do Emacsa unikaj go teraz i korzystaj z nano podczas instalacji. Na razie nie instaluj dużych pakietów takich jak TeX (miało to miejsce w Potato). Zobacz Rozdział 11.2, `Edytory awaryjne' by dowiedzieć się o instalacji nano-tiny lub elvis-tiny. * Na wszelkie pytania podczas konfiguracji pakietów odpowiadam ,,y''. * `exim': wybieram 2 dla maszyn ponieważ wysyłam pocztę poprzez serwer SMTP mojego dostawcy Internetu. Więcej informacji na temat dselect znajdziesz tu - Rozdział 6.2.3, ``dselect''. 3.1.9. Nazwy hostów i adresy IP używane w sieci LAN --------------------------------------------------- Przykład konfiguracji sieci LAN (C podsieć: 192.168.1.0/24): Internet | +--- Zewnętrzny ISP zapewnia usługę POP (dostęp poprzez fetchmail) | Punkt dostępowy zapewnia usługi DHCP i SMTP | : Modem kablowy (Dialup) | : Bramka sieciowa, zewnętrzny interfejs: eth0 (numer IP przydzielony przez DHCP) używa starego notebooka PC (IBM Thinkpad, 486 DX2 50 MHz, 20MB RAM) uruchomione jądro Linux 2.4 z obsługą systemu plików ext3. uruchomiony pakiet ,,ipmasq'' (z poprawkami NAT i firewall) uruchomiony pakiet ,,dhcp-client'' ustawiony dla eth0 (podmienia ustawienia DNS) uruchomiony pakiet ,,dhcp'' skonfigurowany dla eth1 uruchomiony ,,exim'' jako smarthost (tryb 2) uruchomiony ,,fetchmail'' z długimi odstępami czasu (fallback) uruchomiony ,,bind'' jako buforujący serwer nazw z sieci do Internetu jako autorytatywny serwer nazw dla sieci wewnętrznej uruchomione ,,ssh'' na portach 22 i 8080 (możliwość połączenia skądkolwiek) uruchomiony ,,squid'' jako buforujący serwer dla archiwów Debiana (APT) Bramka sieciowa, wewnętrzny interfejs: eth1 (IP = 192.168.1.1, stały) | +--- LAN Switch (100base T) ---+ | | Kilka klientów ze stałymi IP Kilka klientów DHCP (IP = 192.168.1.2-127, stałe) (IP = 192.168.1.128-200, dynamiczne) Zobacz Część 10, `Konfiguracja sieci' oraz Rozdział 10.12, `Budowanie bramy sieciowej' by uzyskać więcej szczegółów na temat konfiguracji sieci oraz bramki sieciowej. 3.1.10. Konta użytkowników -------------------------- By mieć poczucie spójności na różnych maszynach, na początku zakładam kilka takich samych kont. Zawsze pierwsze konto które zakładam nosi nazwę ,,admin'' lub podobną i kieruję na nie wszystkie listy roota. Konto to przydzielam do grupy `adm' (zobacz Rozdział 9.2.2, `,,Dlaczego GNU `su' nie obsługuje grupy `wheel''''), która pozwala na przyznanie wielu przywilejów administratora poprzez `su' za pomocą PAM lub polecenia `sudo'. Szczegóły znajdziesz w Rozdział 4.1.3, `Dodawanie konta użytkownika'. 3.1.11. Tworzenie systemów plików --------------------------------- 3.1.11.1. Partycje twardego dysku --------------------------------- Wolę zakładać osobne partycje dla poszczególnych katalogów z drzewa ,,/'' by uniknąć utraty danych w przypadku awarii systemu itp. / == (/ + /boot + /bin + /sbin) == 50MB+ /tmp == 100MB+ /var == 100MB+ /home == 100MB+ /usr == 700MB+ z Xami /usr/local == 100MB Rozmiar katalogu `/usr' zależy od miejsca jakie zajmują aplikacje i dokumentacja X Window. `/usr' może mieć rozmiar 300MB jeśli ktoś używa tylko trybu tekstowego, ale 2GB--3GB nie jest niczym szczególnym podczas korzystania z wielu aplikacji Gnome. Gdy katalog `/usr' będzie zajmował zbyt dużo miejsca można przenieść pliki z `/usr/share/' na inną partycje. Przy jądrach 2.4 katalog root może potrzebować ponad 200MB Obecny stan mojej maszyny wygląda następująco (wydruk uzyskasz wprowadzając polecenie `df -h'): System plików rozm. użyte dost. %uż. zamont. na /dev/hda3 300M 106M 179M 38% / /dev/hda7 100M 12M 82M 13% /home /dev/hda8 596M 53M 513M 10% /var /dev/hda6 100M 834k 94M 1% /var/lib/cvs /dev/hda9 596M 222M 343M 40% /usr /dev/hda10 596M 130M 436M 23% /var/cache/apt/archives /dev/hda11 1.5G 204M 1.2G 14% /var/spool/squid (Duży obszar zarezerwowany dla `/var/spool/squid' przeznaczony jest na serwer pośredniczący dla pobierania pakietów.) Wprowadzając polecenie `fdisk -l' uzyskujemy informacje o wszystkich partycjach na twardym dysku: # fdisk -l /dev/hda # komentarz /dev/hda1 1 41 309928+ 6 FAT16 # DOS /dev/hda2 42 84 325080 83 Linux # (nie używana) /dev/hda3 * 85 126 317520 83 Linux # Główna /dev/hda4 127 629 3802680 5 Extended /dev/hda5 127 143 128488+ 82 Linux swap /dev/hda6 144 157 105808+ 83 Linux /dev/hda7 158 171 105808+ 83 Linux /dev/hda8 172 253 619888+ 83 Linux /dev/hda9 254 335 619888+ 83 Linux /dev/hda10 336 417 619888+ 83 Linux /dev/hda11 418 629 1602688+ 83 Linux Istnieje kilka nieużywanych partycji. Są one założone z myślą o innych systemach operacyjnych, bądź przenoszeniu danych z obciążonych części dysku. 3.1.11.2. Montowanie systemów plików. ------------------------------------- Poprawne montowanie powyższych systemów plików jest realizowane następującym plikiem `/etc/fstab': # /etc/fstab: statyczna informacja o systemach plików. # # (system plikow) (punkt montowania) (typ) (opcje) (dump) (pass) /dev/hda3 / ext2 defaults,errors=remount-ro 0 1 /dev/hda5 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto defaults,user,noauto 0 0 /dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0 # # trzymaj partycje osobno /dev/hda7 /home ext2 defaults 0 2 /dev/hda8 /var ext2 defaults 0 2 /dev/hda6 /var/lib/cvs ext2 defaults 0 2 # noatime przyspieszy odczyt plików /dev/hda9 /usr ext2 defaults,noatime 0 2 /dev/hda10 /var/cache/apt/archives ext2 defaults 0 2 # bardzo duża partycja dla serwera pośredniczacego (proxy) /dev/hda11 /var/spool/squid ext2 rw 0 2 # zapasowa partycja rozruchowa DOS /dev/hda1 /mnt/dos vfat rw,noauto 0 0 # zapasowa partycja rozruchowa Linux (nie zrobiona) /dev/hda2 /mnt/linux ext2 rw,noauto 0 0 # # punkty montowań nfs mickey:/ /mnt/mickey nfs ro,noauto,intr 0 0 goofy:/ /mnt/goofy nfs ro,noauto,intr 0 0 # minnie:/ /mnt/minnie smbfs ro,soft,intr,credentials={filename} 0 2 Przy NFS, używam opcji `noauto,intr' w połączeniu z domyślną opcją `hard'. Tym sposobem, istnieje możliwość wciskając kombinację Ctrl-C, uratowania się z sytuacji gdy nie mamy połączenia i proces montowania zawiesi się. W przypadku maszyny z systemem Windows podłączonej poprzez Sambę (smbfs), opcje `rw,auto,soft,intr' powinny być odpowiednie. Zobacz Rozdział 3.5, `Konfiguracja Samby'. Dla stacji dyskietek użycie opcji `noauto,rw,sync,user,exec' zapobiega uszkodzeniu plików przy przypadkowym wyjęciu dyskietki przed jej odmontowaniem. Dzieje się to jednak kosztem wolniejszego zapisu. 3.1.11.3. Montowanie autofs --------------------------- Wskazówki do automatycznego montowania: * Załaduj moduł `vfat' by `/etc/auto.misc' zawierało `-fstype=auto': # modprobe vfat # przed próbą dostępu do dyskietki ... lub by zautomatyzować tę czynność, # echo "vfat" >> /etc/modules ... następnie uruchom ponownie system. * Ustaw `/etc/auto.misc' następująco: floppy -fstype=auto,sync,nodev,nosuid,gid=100,umask=000 :/dev/fd0 ... gdzie gid=100 to ,,users''. * Stwórz dowiązania `cdrom' i `floppy' w `/home/', które wskazywać będą na `/var/autofs/misc/cdrom' i `/var/autofs/misc/floppy'. * Przydziel użytkownika do grupy ,,users''. 3.1.11.4. Montowanie NFS ------------------------ Zewnętrzny serwer Linux NFS (goofy) znajduje się za ścianą ogniową (bramką sieciową). Zasady bezpieczeństwa w mojej sieci w stosunku do niego są mniej restrykcyjne ponieważ jestem jego jedynym użytkownikiem. By umożliwić dostęp do NFS, trzeba po jego stronie dodać do `/etc/exports' następujące wpisy: # /etc/exports: the access control list for filesystems which may be # exported to NFS clients. See exports(5). / (rw,no_root_squash) Chcąc uruchomić serwer NFS potrzebne są powyższe wpisy oraz oczywiście instalacja i uruchomienie klienta i serwer NFS. Dla uproszczenia zazwyczaj tworzę pojedynczą partycję o rozmiarze 2GB na eksperymentalne instalacje Linuksa. Opcjonalnie współdzielę pomiędzy tymi instalacjami partycję wymiany oraz `/tmp'. Schematy zawierające wiele partycji są również przydatne w takich instalacjach. Jeśli natomiast potrzeba nam prostego systemu w trybie konsoli, w zupełności powinno wystarczyć 500MB. 3.1.12. Wytyczne dotyczące pamięci DRAM --------------------------------------- Bezwzględne wytyczne dotyczące DRAM. 4MB: Absolutne minimum by jądro Linuksa mogło funkcjonować. 16MB: Minimum dla rozsądnej pracy w konsoli. 32MB: Minimum dla prostego systemu X. 64MB: Minimum dla systemu X z GNOME/KDE. 128MB: Komfortowa praca w systemie X z GNOME/KDE. 256MB (lub więcej): Dlaczego nie jeśli jesteś w stanie je zdobyć? DRAM jest tani. Możesz podczas rozruchu systemu użyć opcji `mem=4m' (lub w lilo `append="mem=4m"') by sprawdzić jak zachowa się system z 4MB pamięci operacyjnej. Jeśli posiadasz stary BIOS i więcej niż 64MB pamięci to również musisz użyć odpowiedniego parametru w lilo. 3.1.13. Przestrzeń wymiany -------------------------- Używam następujących wytycznych dla przestrzeni wymiany: * Każda partycja wymiany jest < 128MB (jeśli używasz jąder 2.0 ), < 2GB (dla nowszych jąder) * Całość = albo (1 do 2 razy rozmiar zainstalowanego ramu) albo (128MB do 2GB) jako punkt wyjścia * Rozdziel je na osobne napędy i zamontuj wszystkie z opcjami `sw,pri=1' w `/etc/fstab'. Powoduje to, że jądro obsługuje przestrzeń wymiany jako paskowany RAID co gwarantuje maksymalną wydajność. * Jeśli to możliwe używaj centralnej części dysku do stworzenia partycji wymiany. Nawet jeśli nie potrzebujesz, to i tak pożądane jest ustawienie partycji wymiany (128MB) po to by system zwolnił zanim zawiesi się z powodu programu z wyciekiem pamięci. 3.2. Konfiguracja Basha ----------------------- Modyfikuję skrypty startowe powłoki znajdujące się w systemie tak by spełniały moje zachcianki: /etc/bash.bashrc Zastępuję własnym /etc/profile Pozostawiam bez zmian(\w -> \W) /etc/skel/.bashrc Zastępuję własnym /etc/skel/.profile Zastępuję własnym /etc/skel/.bash_profile Zastępuje własnym ~/.bashrc Zastępuję własnym dla każdego konta ~/.profile Zastępuję własnym dla każdego konta ~/.bash_profile Zastępuję własnym dla każdego konta Zobacz szczegóły moich przykładowych skryptów (http://www.debian.org/doc/manuals/debian-reference/examples/). Lubię mieć przejrzysty system więc ustawiam `umask' na 002 lub 022. `PATH' jest ustawiany poprzez następujące pliki konfiguracyjne w tej kolejności: /etc/login.defs - zanim powłoka ustawi zmienną PATH /etc/profile (może wywoływać /etc/bash.bashrc) ~/.bash_profile (może wywoływać ~/.bashrc) 3.3. Konfiguracja myszy ----------------------- 3.3.1. Myszy PS/2 ----------------- W przypadku płyty głównej ATX i myszy podłączonej przez PS/2, przepływ sygnału powinien być następujący: mysz -> /dev/psaux -> gpm -> /dev/gpmdata = /dev/mouse -> X W tym przypadku utworzone zostało dowiązanie symboliczne `/dev/mouse' wskazujące na `/dev/gpmdata' po to by niektóre narzędzia konfiguracyjne były szczęśliwe i by rekonfiguracja była prostsza. (Jeśli na przykład zrezygnujesz z używania `gpm' wystarczy, że po jego usunięciu zmienisz dowiązanie symboliczne `/dev/mouse' tak by wskazywało na `/dev/psaux'). Taki przepływ sygnału pozwala na wyłączenie klawiatury oraz myszki oraz po ponownym ich podłączeniu uruchamiając `gpm' umożliwia jeszcze raz je zainicjalizować. Serwer X pozostanie uruchomiony! Protokół sygnału przepływającego pomiędzy wyjściem `gpm' a wejściem X może być zaimplementowany na dwa sposoby. Albo jako ,,ms3'' (używa protokołu dla szeregowych 3 przyciskowych myszek Microsoft) albo jako ,,raw'' (używa tego samego protokołu co podłączona myszka). Wybór ten determinuje późniejszy wybór protokołu używanego w konfiguracji X. By zademonstrować konfigurację, za przykład posłuży mi 3-przyciskowa mysz firmy Logitech (tradycyjna mysz stylu Unix) podłączana do portu PS/2. Jeśli twoja karta graficzna nie jest wspierana przez nowy X4 i musisz używać starego X3 (niektóre 64 bitowe karty ATI), skonfiguruj `/etc/X11/XF86Config' zamiast `/etc/X11/XF86Config-4' w następujący sposób podczas instalacji pakietów X3. 3.3.1.1. Wariant ms3 -------------------- /etc/gpm.conf | /etc/X11/XF86Config-4 =========================+====================================== device=/dev/psaux | Section "InputDevice" responsiveness= | Identifier "Configured Mouse" repeat_type=ms3 | Driver "mouse" type=autops2 | Option "CorePointer" append="" | Option "Device" "/dev/mouse" sample_rate= | Option "Protocol" "IntelliMouse" | EndSection Jeśli używasz takiego podejścia, konfiguracja myszy odbywa się poprzez edycję `gpm.conf', natomiast konfiguracja X zostaje niezmieniona. Zobacz przykłady moich skryptów konfiguracyjnych (http://www.debian.org/doc/manuals/debian-reference/examples/). 3.3.1.2. Wariant raw -------------------- /etc/gpm.conf | /etc/X11/XF86Config-4 =========================+====================================== device=/dev/psaux | Section "InputDevice" responsiveness= | Identifier "Configured Mouse" repeat_type=raw | Driver "mouse" type=autops2 | Option "CorePointer" append="" | Option "Device" "/dev/mouse" sample_rate= | Option "Protocol" "MouseManPlusPS/2" | EndSection Jeśli używasz takiego podejścia, konfiguracja myszy odbywa się poprzez edycję `gpm.conf' oraz konfigurację Xów. 3.3.1.3. Jak dodać inną myszkę ------------------------------ Urządzenie `gpm' typu `autops2' powinno rozpoznać większość myszek PS/2 dostępnych na rynku. Niestety nie zawsze działa i nie jest dostępne w poprzednikach wersji Woody. Spróbuj w takich przypadkach użyć `ps2' lub `imps2' w pliku `gpm.conf' zamiast `autops2'. By dowiedzieć się więcej o typach myszy `gpm' wpisz :`gpm -t help'. Zobacz gpm(8). Jeśli używasz 2-przyciskowej myszy PS/2, ustaw protokół X włączając opcje `Emulate3Buttons'. Różnice między protokołami 2-przyciskowej i 3-przyciskowej myszy są automatycznie rozpoznawane i ustawiane przez `gpm' po naciśnięciu środkowego przycisku. Dla protokołu X z Rozdział 3.3.1.2, `Wariant raw' lub bez `gpm' użyj: * `IntelliMouse': szeregowy port myszy (`gpm' repeater with ,,ms3'') * `PS/2': port myszy PS/2 (zawsze to testuj na początku) * `IMPS/2': inny port PS/2 (2, 3, lub mysz z kółkiem, lepiej) * `MouseManPlusPS/2': port myszy Logitech PS/2 * `...' Zobacz więcej na Mouse Support in XFree86 (http://www.xfree86.org/current/mouse.html). Typowe myszy Microsoft z kółkiem najlepiej pracują z: /etc/gpm.conf | /etc/X11/XF86Config-4 =========================+====================================== device=/dev/psaux | Section "InputDevice" responsiveness= | Identifier "Configured Mouse" repeat_type=raw | Driver "mouse" type=autops2 | Option "CorePointer" append="" | Option "Device" "/dev/mouse" sample_rate= | Option "Protocol" "IMPS/2" | Option "Buttons" "5" | Option "ZAxisMapping" "4 5" | EndSection Dla nowszych laptopów Toshiba włączenie `gpm' przed PCMCIA w skryptach inicjalizujących System-V może pomóc przy zapobieganiu zawieszenia systemu. Dziwne, ale to prawda. 3.3.2. Mysz na USB ------------------ Upewnij się, że masz wkompilowane w jądro lub jako moduły wszystkie niezbędne funkcje: * W części "Input core support": * "Input core support" (CONFIG_INPUT, `input.o'), * "Mouse support" (CONFIG_INPUT_MOUSEDEV, `mousedev.o'), * W części "USB support": * "Support for USB" (CONFIG_USB, `usbcore.o'), * "Preliminary USB device filesystem" (CONFIG_USB_DEVICEFS), * "UHCI" lub "OHCI" (CONFIG_USB_UHCI || CONFIG_USB_UHCI_ALT || CONFIG_USB_OHCI, `usb-uhci.o' || `uhci.o' || `usb-ohci.o'), * "USB Human Interface Device (full HID) support" (CONFIG_USB_HID, `hid.o') i * "HID input layer support" (CONFIG_USB_HIDINPUT) Małymi literami wymienione są nazwy modułów. Jeśli używasz devfs to stwórz wpis w `/dev/input/mice' zawierający major 13 i minor 63 w następujący sposób: # cd /dev # mkdir input # mknod input/mice c 13 63 Dla typowej myszki z kółkiem na _USB_ konfiguracja powinna wyglądać następująco: /etc/gpm.conf | /etc/X11/XF86Config-4 =========================+====================================== device=/dev/input/mice | Section "InputDevice" responsiveness= | Identifier "Generic Mouse" repeat_type=raw | Driver "mouse" type=autops2 | Option "SendCoreEvents" "true" append="" | Option "Device" "/dev/input/mice" sample_rate= | Option "Protocol" "IMPS/2" | Option "Buttons" "5" | Option "ZAxisMapping" "4 5" | EndSection By dowiedzieć się więcej odwiedź Linux USB Project (http://www.linux-usb.org/) 3.3.3. Touchpad --------------- Pomimo, że touchpad w laptopach emuluje standardowo 2-przyciskową mysz PS/2, pakiet `tpconfig' pozwala na pełną kontrolę nad urządzeniem. Przykładowo ustawienie `OPTIONS="--tapmode=0"' w `/etc/default/tpconfig' wyłączy zachowanie ,,click by tap''. Ustaw `/etc/gpm.conf' następująco, by używać jednocześnie touchpada i myszy na porcie USB pod konsolą: device=/dev/psaux responsiveness= repeat_type=ms3 type=autops2 append="-M -m /dev/input/mice -t autops2" sample_rate= 3.4. Konfiguracja NFS --------------------- Konfiguracja NFS odbywa się poprzez przez ustawienie `/etc/exports'. apt-get install nfs-kernel-server # echo "/ *.nazwa-domeny-dla-lokalnych(rw,no_root_squash,nohide)" \ >> /etc/exports Szczegóły znajdziesz w moich przykładowych skryptach (http://www.debian.org/doc/manuals/debian-reference/examples/). 3.5. Konfiguracja Samby ----------------------- Szczegółowe informacje: * http://www.samba.org/ * pakiet `samba-doc' Ustawienie serwera Samba w trybie ,,share'' jest dużo prostsze ponieważ tworzy współdzielone napędy typu WindowsForWorkgroups. Ale tryb ,,user'' jest preferowaną metodą. Samba może zostać skonfigurowana poprzez `debconf' lub `vi': # dpkg-reconfigure --priority= samba # w Woody # vi /etc/samba/smb.conf Szczegóły znajdziesz w moich przykładowych skryptach (http://www.debian.org/doc/manuals/debian-reference/examples/). Dodawanie nowego użytkownika do pliku `smbpasswd' może być wykonane poprzez `smbpasswd': $ su -c "smbpasswd -a username" Pamiętaj o użyciu zaszyfrowanych haseł dla optymalnej zgodności. Ustaw `os level' zgodnie z następującymi odpowiednikami systemu (im większa liczba, tym większy priorytet jako serwer) 0: Samba ze swobodną pozycją (nigdy nie będzie przeglądarką nadrzędną) 1: WfW 3.1, Win95, Win98, Win/Me? 16: Win NT WS 3.51 17: Win NT WS 4.0 32: Win NT SVR 3.51 33: Win NT SVR 4.0 255: Samba z potężną mocą Upewnij się, że użytkownicy są członkami grupy do której przynależy katalog umożliwiający współdzielony dostęp, oraz że ścieżka do tego katalogu posiada odpowiednio ustawione uprawnienia bitu wykonywalności. 3.6. Konfiguracja drukarki -------------------------- Tradycyjną metodą jest `lpr'/`lpd'. Istnieje nowy system drukowania CUPS(TM) (Common UNIX Printing System). Inną możliwością jest PDQ. Zobacz Linux Printing HOWTO (http://www.tldp.org/HOWTO/Printing-HOWTO.html) w celu uzyskania dodatkowych informacji. 3.6.1. `lpr'/`lpd' ------------------ Dla programów kolejkujących typu `lpr'/`lpd' (`lpr', `lprng' i `gnulpr') podłączonych do drukarek PostScript lub tekstowych ustaw `/etc/printcap' następująco (podstawy): |:\ :sd=/var/spool/lpd/:\ :mx#0:\ :sh:\ :lp=/dev/lp0: Znaczenie powyższych linii: * Nagłówek: -- nazwa kolejki, = alias * mx#0 -- maksymalny rozmiar pliku nieograniczony * sh -- wstrzymywanie drukowania sekwencji nagłówków stron * lp=/dev/lp0 -- lokalne urządzenie drukujące, lub port@komputer dla zdalnych To dobra konfiguracja jeśli posiadasz drukarkę PostScript. Jest to również dobre ustawienie do drukowania z maszyny Windows poprzez Sambę, dla każdej drukarki obsługiwanej przez Windows (nie jest obsługiwana komunikacja dwukierunkowa). Musisz wybrać odpowiednie ustawienia drukarki na maszynie z Windows. Jeśli nie masz drukarki PostScript powinieneś ustawić filtrowanie za pomocą `gs'. Istnieje wiele narzędzi automatycznie konfigurujących `/etc/printcap'. Każda z tych kombinacji jest właściwa: * `gnulpr', (`lpr-ppd') i `printtool' --- Właśnie tego używam. * `lpr' i `apsfilter' * `lpr' i `magicfilter' * `lprng' i `lprngtool' * `lprng' i `apsfilter' * `lprng' i `magicfilter' W przypadku uruchamiania narzędzia konfiguracyjnego wykorzystującego graficzny interfejs użytkownika, jak na przykład `printtool', zobacz najpierw Rozdział 9.4.12, `Zdobywanie uprawnień administratora w X' aby dowiedzieć się jak uzyskać przywileje administratora. Kolejki wydruku utworzone przez `printtool' używają programu `gs' i występują jako drukarki PostScript. Dlatego, gdy z nich korzystasz, używaj sterowników PostScriptowych. W systemie Windows ,,Apple LaserWriter'' jest standardowym przykładem takiej drukarki.. 3.6.2. CUPS(TM) --------------- Zainstaluj Common UNIX Printing System (lub CUPS(TM)): # apt-get install cupsys cupsys-bsd cupsys-client cupsys-driver-gimpprint # apt-get install foomatic-db-engine foomatic-db-hpijs # apt-get install foomatic-filters-ppds foomatic-gui Następnie skonfiguruj system używając przeglądarki internetowej: $ http://localhost:631 Przykład w jaki sposób dodać drukarkę do listy dostępnych: * na głównej stronie kliknij ,,Printers'', a następnie ,,Add Printer'', * wpisz użytkownika ,,root'' i podaj jego hasło, * postępuj według instrukcji by dodać drukarkę * wróć do strony ,,Printers'' i kliknij ,,Configure Printer'', następnie * ustaw rozmiar papieru, rozdzielczość i inne parametry. Więcej informacji znajdziesz na http://localhost:631/documentation.html i http://www.cups.org/cups-help.html. 3.7. Inne wskazówki instalacyjne -------------------------------- 3.7.1. Doinstaluj jeszcze trochę pakietów po wstępnej instalacji ---------------------------------------------------------------- Jeśli wszystko przebiegło bez problemów to posiadasz już mały, funkcjonalny system Debian. Czas na instalację większych pakietów. * Uruchom `tasksel'. Zobacz Rozdział 6.2.1, `Instalowanie _zadań_ programem `tasksel' lub `aptitude''. Możesz wybrać następujące elementy jeśli są Ci potrzebne: * End-user -- X window system * Development -- C i C++ * Development -- Python * Development -- Tcl/Tk * Miscellaneous -- środowisko TeX/LaTeX * Dla innych wolę używać `tasksel' jako przewodnika po komponentach wyszczególnionych w i instalować je programem `dselect'. * Uruchom `dselect'. Pierwszą rzeczą jaką możesz zrobić jest wybór Twojego ulubionego edytora i innych programów, które są Ci potrzebne. Możesz zainstalować wiele odmian Emacsa na raz. Zobacz Rozdział 6.2.3, ``dselect'' i Rozdział 11.1, `Popularne edytory'. Możesz również zastąpić niektóre domyślne pakiety takimi z większymi możliwościami. * ... * ... Zazwyczaj edytuję `/etc/inittab' w celu łatwego wyłączania komputera. ... # Co zrobić gdy wciśnięte są klawisze CTRL-ALT-DEL ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now ... 3.7.2. Moduły ------------- Moduły dla sterowników urządzeń są konfigurowane podczas podstawowej instalacji. `modconf' oferuje możliwość konfiguracji modułów przy pomocy systemu menu. Jest on bardzo użyteczny, gdy jakieś moduły zostały opuszczone podczas instalacji nowego jądra. Nazwy wszystkich wstępnie ładowanych modułów są wyszczególnione w pliku `/etc/modules'. Używam również `lsmod' i `depmod' by sterować nimi ręcznie. Dla jądra 2.4 dodaj wpis w pliku `/etc/modules' pozwalający obsłużyć IP masquerading (FTP, itp.). Zobacz Rozdział 7.2, `Zmodularyzowane jądro 2.4', a dokładniej Rozdział 7.2.3, `Obsługa sieci'. 3.7.3. Podstawy instalacji CD-RW -------------------------------- Wyedytuj następujące pliki: /etc/lilo.conf (dodaj append="hdc=ide-scsi ignore=hdc", uruchom lilo w celu aktywacji) /dev/cdrom (symlink # cd /dev; ln -sf scd0 cdrom) /etc/modules (dodaj "ide-scsi" i "sg". Jeśli będzie to konieczne to również "sr".) Zobacz Rozdział 9.3, `Nagrywarki CD' by dowiedzieć się więcej. 3.7.4. Automatyczne wyłączanie komputera oraz komputery z większą ilością pamięci ---------------------------------------------------------------------------- Zmodyfikuj `/etc/lilo.conf' wg instrukcji poniżej aby uwzględnić obsługę większego rozmiaru pamięci (dla jąder 2.2) oraz automatycznego wyłączania (dla APM): append="mem=128M apm=on apm=power-off noapic" Teraz uruchom `lilo' aby zainstalować te ustawienia. `apm=power-off' jest wymagane dla jąder z obsługą wielu procesorów, a `noapic' jest potrzebne by unikać kłopotów z moim wadliwym sprzętem. Tego samego można dokonać wpisując podane opcje bezpośrednio podczas ukazania się znaku zachęty programu uruchomieniowego. Zobacz Rozdział 8.1.5, `Inne triki stosowane podczas startu systemu'. Jeśli APM jest kompilowany jako moduł, jak to ma miejsce w domyślnym jądrze Debiana 2.4, uruchom `insmod apm power_off=1' po wystartowaniu systemu lub wpisz odpowiednie opcje do `/etc/modules', na przykład tak: # echo "apm p