Gentoo, często zadawane pytania

Daniel Robbins  Autor
Colin Morey  Korekta
John P. Davis  Redaktor
Eric Stockbridge  Redaktor
Stoyan Zhekov  Redaktor
Carl Anderson  Redaktor
Jorge Paulo  Redaktor
Sven Vermeulen  Redaktor
Benny Chuang  Redaktor
Jonathan Smith  Redaktor
Joshua Saddler  Redaktor
Mateusz Kotyrba  Tłumaczenie

Zaktualizowano 25 października 2008

1.  Pytania

Wprowadzenie

Odpowiedzi na wiele z tych pytań można znaleźć w oficjalnej dokumentacji Gentoo. Ten dokument jest po prostu zbiorem częstych pytań. Więcej informacji na poruszone tu tematy można zdobyć na odpowiednich stronach man i w pozostałej części oficjalnej dokumentacji. Tam również można znaleźć odpowiedzi na pytania, które nie są zawarte w tym dokumencie.

Zaczynamy

Instalacja

Zarządzanie pakietami

Użytkowanie

Obsługa

Rozwój

Zasoby

2.  Zaczynamy

Jak wymawia się wyraz Gentoo i co on oznacza?

Gentoo wymawia się jako "dżentu". Naukową nazwą pingwina Gentoo jest Pygoscelis papua. Nazwa Gentoo została nadana pingwinowi przez mieszkańców Falklandów.

Co wyróżnia Gentoo?

Gentoo używa wzorowanego na tym z BSD zbioru pakietów, który nazywa się Portage. Nasz system zarządzania pakietami zapewnia dużą elastyczność podczas instalacji oraz korzystania z programów w Gentoo. Pozwala na łatwy wybór opcji kompilacji (za pomocą flag USE), dobrą obsługę zależności, wyświetla podsumowania przed instalacją, a także pozwala na bezpieczną instalację i usuwanie oprogramowania (za pomocą sandbox), zawiera zestaw profili systemowych i ochronę plików konfiguracyjnych. Wszystkie cechy Portage zostały opisane w osobnym rozdziale Podręcznika.

W Gentoo można zbudować cały system ze źródeł używając własnych optymalizacji. Posiada się całkowitą kontrolę wyboru pakietów do instalacji. Gentoo pozwala na dokonanie wielu własnych wyborów, można je zainstalować według własnych upodobań, dlatego jest nazywane metadystrybucją.

Gentoo jest szybko rozwijającą się dystrybucją. Poprawki do pakietów są bardzo szybko dodawane do głównego drzewa, dokumentacja jest aktualizowana codziennie, bardzo często do Portage dodawane są nowe funkcje. Oficjalne wydania Gentoo są publikowane dwa razy do roku.

3.  Instalacja

System jest niestabilny przy optymalizacjach "-O9 -ffast-math -fomit-frame-pointer". Dlaczego?

Nie ma potrzeby używania opcji wyższych niż -O3, ponieważ obecne wersje GCC tego nie wspierają. Bardzo agresywne optymalizacje czasami powodują uproszczenie składanego kodu tak, że nie pełni on już takiej roli jaką powinien.

Przed zgłoszeniem błędu, należy spróbować kompilacji z następującymi ustawieniami CFLAGS: -O2 -march=<architektura>.

Jak zmienić hasło użytkownika root (lub dowolnego innego)?

Należy użyć polecenia passwd, aby zmienić hasło zalogowanego użytkownika. Jako root można zmienić hasło dowolnego użytkownika wykonując passwd nazwa_użytkownika. Aby dowiedzieć się więcej o dodatkowych opcjach i ustawieniach, należy zajrzeć do man passwd.

Jak dodać użytkownika?

Polecenie adduser nazwa_użytkownika doda użytkownika o nazwie "nazwa_użytkownika". Jednakże ta metoda nie daje użytkownikowi wielu praw, które zapewne chciałby uzyskać, więc lepsze jest następujące polecenie:

Listing 3.1: Używanie useradd

# useradd -m -G users,audio,wheel nazwa_użytkownika

Doda ono użytkownika o nazwie "nazwa_użytkownika". Opcja audio dodaje go do grupy audio i zezwala na dostęp do urządzeń dźwiękowych. Opcja wheel dodaje użytkownika do grupy wheel, która pozwala użytkownikowi wykonać polecenie su, które z kolei pozwala uzyskać przywileje użytkownika root.

Dlaczego nie można wejść na roota za pomocą polecenia su?

Z powodów bezpieczeństwa użytkownicy mogą wykonać polecenie su tylko jeśli należą do grupy wheel. Aby dodać nazwa_użytkownika do grupy wheel, wykonujemy następujące polecenie jako root:

Listing 3.2: Dodawanie użytkownika do grupy wheel

# gpasswd -a nazwa_użytkownika wheel

Jak zaktualizować Gentoo do najnowszego wydania bez instalowania go od nowa?

W rzeczywistości nie ma żadnej różnicy pomiędzy różnymi wydaniami gdy zostaną one zainstalowane i zaktualizowane. Wykonanie polecenia emerge --sync && emerge -uDN world spowoduje aktualizację systemu do "najnowszego Gentoo". Różnice pomiędzy pojedynczymi wydaniami leżą w nośniku instalacyjnym oraz fabrycznie kompilowanych pakietach. Należy zajrzeć do tekstu o aktualizacji Gentoo po więcej informacji o profilach i ich znaczeniu przy aktualizacji.

Jądro nie ładuje się (właściwie), co należy zrobić?

Nie trzeba powtarzać całej instalacji, ale zbadanie jądra oraz wszystkich powiązanych z nim kroków jest konieczne. Przypuśćmy, że mamy zainstalowane Gentoo na /dev/hda1 (/boot) i /dev/hda3 (/) z /dev/hda2 będącą partycją swap:

Listing 3.3: Ponowna konfiguracja jądra

Należy załadować system z płyty instalacyjnej i poczekać aż uzyskamy znak zachęty.
Po pierwsze montujemy wszystkie partycje:
# mount /dev/hda3 /mnt/gentoo
# mount /dev/hda1 /mnt/gentoo/boot
# swapon /dev/hda2
# mount -t proc none /mnt/gentoo/proc
Potem przechodzimy do środowiska chroot i konfigurujemy jądro:
# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile
# cd /usr/src/linux
# make menuconfig
Włączamy (wyłączamy) wszystko co błędnie włączyliśmy (wyłączyliśmy) 
podczas poprzedniej próby. Następnie wychodzimy i kompilujemy jądro:
# make && make modules_install
Kopiujemy plik bzImage, zastępując poprzedni:
# cp arch/i386/boot/bzImage /boot/<nazwa_jądra>
Jeśli używamy LILO, uruchamiamy ponownie lilo -- użytkownicy GRUB-a powinni to pominąć:
# /sbin/lilo
Wychodzimy ze środowiska chroot i uruchamiamy system ponownie.
# exit
# umount /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo
# reboot

Jeśli, z drugiej strony, problem leży po stronie konfiguracji bootloadera, wtedy należy podążyć według tego samego schematu, ale zamiast konfiguracji i kompilacji jądra, powinniśmy ponownie skonfigurować bootloader (ponowna kompilacja nie jest konieczna).

Proxy wymaga uwierzytelniania, co należy zrobić?

Aby Portage automatycznie łączył się przez proxy, które wymaga uwierzytelniania, należy zdefiniować go w /etc/make.conf:

Listing 3.4: /etc/make.conf

http_proxy="http://nazwa_użytkownika:hasło@maszyna_proxy.org:numer_portu"
ftp_proxy="ftp://nazwa_użytkownika:hasło@maszyna_proxy.org:numer_portu"
RSYNC_PROXY="rsync://nazwa_użytkownika:hasło@maszyna_proxy.serwer:numer_portu"

Jak nagrać plik ISO na płytę?

Należy nagrywać plik w trybie RAW. To oznacza, że nie wystarczy tylko przenieść plik na płytę CD, ale trzeba zinterpretować plik jako całą płytę CD.

Istnieje wiele dostępnych narzędzi nagrywających płyty CD. Opiszemy tu najpopularniejsze:

Którego CD lub pliku "stage" powinno się użyć dla danego CPU?

Najpierw należy dowiedzieć się jaki to procesor. Przypuśćmy, że jest to Pentium-M. Dokładne informacje o procesorze można pobrać ze strony internetowej jego producenta, jednakże Google jest równie dobre.

Jeśli nie jesteśmy pewni, wtedy należy użyć "niższego" CD lub pliku "stage", na przykład i686 lub zwykłego x86 (lub równoważny naszej architekturze). To zapewni, że system będzie pracował, ale może nie być tak szybki jak przy innych optymalizacjach.

Warto zauważyć, że istnieje dużo więcej opcji niż wtedy gdy budujemy system na gotowych plikach binarnych zbudowanych przez Gentoo. W tym tekście ze stron gcc znajdują się dokładne informacje o tym jak ustawić -march.

Po ponownym uruchomieniu nie działa sieć. Co jest źle?

Po pierwsze należy sprawdzić czy karta sieciowa jest prawidłowo rozpoznawana przez jądro. Wykonujemy ifconfig -a i szukamy eth0 lub wlan0 (w przypadku bezprzewodowej karty sieciowej). Możemy być zmuszeni do załadowania specjalnych modułów, aby jądro mogło poprawnie rozpoznać kartę sieciową. Jeśli w tym rzecz, wtedy należy się upewnić, że te moduły jądra znajdują się w /etc/modules.autoload.d/kernel-2.6 (lub kernel-2.4 jeśli nadal używamy jądra 2.4).

Jeśli zapomnieliśmy włączyć wsparcie dla naszej karty sieciowej w jądrze, to należy ponownie skonfigurować jądro.

Jeśli jądro rozpoznaje poprawnie kartę sieciową, ale ustawiliśmy konfigurację sieciową, aby używała DHCP, wtedy najprawdopodobniej zapomnieliśmy wykonać emerge dhcpcd. Aby zainstalować ten pakiet należy ponownie uruchomić system za pomocą płyty instalacyjnej.

Informacje na temat ratowania systemu za pomocą płyty instalacyjnej są dostępne tu.

Kiedy uruchamiam Windows z GRUB-a lub LILO pojawia się tylko czarny ekran. Co robić?

Jest to częsty problem. Windows odmawia uruchomienia się, gdy nie jest zainstalowany na pierwszym twardym dysku w systemie i pojawia się tylko czarny ekran. Aby sobie poradzić z tym problemem trzeba będzie za pomocą pewnych zmian w konfiguracji oszukać Windows tak, aby myślał, że został zainstalowany na pierwszym twardym dysku. W poniższych przykładach prezentujemy konfigurację w sytuacji gdy Gentoo jest zainstalowane na hda (pierwszym twardym dysku), a Windows na hdb (czyli drugim dysku).

Listing 3.5: Przykładowy wpis dla Windows w grub.conf

title Windows XP
    map (hd1) (hd0)
    map (hd0) (hd1)
    rootnoverify (hd1,0)
    chainloader +1

Listing 3.6: Przykładowy wpis dla Windows w lilo.conf

other=/dev/hdb1
    label=WindowsXP
    table=/dev/hdb
    map-drive = 0x80
    to = 0x81
    map-drive = 0x81
    to = 0x80

Dzięki temu Windows uwierzy, że został zainstalowany na pierwszym twardym dysku i uruchomi się bez problemów. Więcej szczegółów można znaleźć w dokumentacji GRUB-a i w man lilo.conf, w zależności od używanego programu ładującego.

W jaki sposób zainstalować Gentoo używając stage 1 lub stage 2?

Podręcznik Gentoo opisuje jedynie instalację z użyciem stage 3. Jednak wraz z Gentoo cały czas dostarczane są archiwa ze stage 1 i stage 2. Spowodowane jest to tym, że zespół wydający zaczyna od stage 1, aby uzyskać stage 3. Jednak używanie wyżej wymienionych rozwiązań nie jest polecane użytkownikom. Równie dobrze mogą oni użyć stage 3 do zbudowania swojego systemu. Będziemy potrzebowali do tego połączenia z internetem.

Boostrap to budowanie narzędzi kluczowych (biblioteki C i kompilatora) dla naszego systemu, po którym będziemy mogli przystąpić do instalacji podstawowych pakietów systemu. Aby to zrobić, będziemy korzystać z instalacji przy pomocy stage 3. Przed przejściem do działu Konfiguracja jądra, należy zmodyfikować skrypt bootstrap.sh, aby dopasować go do naszych potrzeb. Po modyfikacji, należy go uruchomić:

Listing 3.7: Bootstrapowanie systemu

# cd /usr/portage/scripts
# vi bootstrap.sh

# ./bootstrap.sh

Następnie należy przebudować wszystkie podstawowe składniki systemu:

Listing 3.8: Przebudowa głównych składników systemu

# emerge -e system

Po zakończeniu kompilacji można przejść do rozdziału Konfiguracja jądra Podręcznika Gentoo i kontynuować instalację od tego momentu. Niestety po wykorzystaniu tych poleceń nie można korzystać już z GRP.

4.  Zarządzanie pakietami

W jakiej postaci przechowywane są pakiety?

Pakiety nie są "przechowywane" per se. Zamiast tego Gentoo dostarcza zbiór skryptów, które posiadają informacje o zależnościach, pobierają kod źródłowy i kompilują pakiet specjalnie dostosowany do naszych potrzeb. Generalnie rzecz biorąc pliki binarne budujemy tylko dla nowych wydań i obrazów. Gentoo Ebuild HOWTO omawia szczegółowo zawartość skryptu ebuild.

Dla pełnych wydań ISO, tworzymy pełen zestaw pakietów binarnych w postaci .tbz2, który jest zgodny z .tar.bz2 z dołączonymi metainformacjami na końcu pliku. Mogą one być użyte do szybkiej i wydajnej instalacji działających (jednakże nie w pełni zoptymalizowanych) wersji pakietów.

Jest możliwe tworzenie plików RPM (plików Redhat package manager) za pomocą Portage, ale w chwili obecnej nie jest możliwa instalacja pakietu z już istniejącego pliku RPM.

Czy można samodzielnie przeprowadzić krok ./configure?

Tak, lecz jest to dość skomplikowane i dlatego nie jest to zalecane. Ponieważ ta metoda wymaga dobrego zrozumienia poleceń oraz wnętrza Portage, zamiast tego radzimy po prostu poprawić ebuild i dodać go do nakładki na Portage (overlaya) Jest to dużo prostsze w obsłudze i zwykle prostsze. Szczegółowe informacje znajdują się w Ebuild HOWTO.

Jak używać emerge za zaporą ogniową?

Należy zajrzeć do odpowiedzi na pytania o proxy, rsync i ręczne ściąganie plików źródłowych.

Co zrobić gdy rsync nie działa?

Jeśli jesteśmy za zaporą ogniową, która zabrania ruch rsync, wtedy możemy użyć polecenia emerge-webrsync, które pobierze i zainstaluje obraz Portage poprzez zwykły protokół HTTP. Należy przeczytać część o proxy tego dokumentu, aby uzyskać informacje o ściąganiu plików źródłowych i obrazów Portage przez proxy.

Czy można ściągnąć źródła na innym komputerze (np. z szybszym łączem), a później dodać je do systemu?

Tak. Należy wykonać emerge --pretend pakiet, aby zobaczyć które programy zostaną zainstalowane. Aby dowiedzieć się jak nazywają się źródła i skąd je pobrać należy wykonać polecenie emerge -fp pakiet. Następnie ściągamy źródła i przenosimy je na dowolnym nośniku do domu. Kopiujemy pobrane pliki do katalogu /usr/portage/distfiles/ po czym wykonujemy emerge pakiet. Cały proces jest dość męczący, ale czasem nie ma innego wyjścia.

Źródła pakietów są przechowywane w katalogu /usr/portage/distfiles. Czy ich usunięcie jest bezpieczne?

Usunięcie tych plików nie ma żadnego negatywnego wpływu na codzienną wydajność. Jednakże zachowanie najnowszych wersji plików może być bardzo pożyteczne, gdyż często wiele ebuildów może być zależne właśnie od danego oprogramowania. Jeśli usunęliśmy dane archiwum, to przy próbie aktualizacji pakietu zależnego od tego usuniętego, będzie konieczne ponowne ściągnięcie go z Internetu.

Aby zapanować nad tym co znajduje się w katalogu /usr/portage/distfiles/ oraz paru innych lokalizacjach możemy użyć narzędzia eclean z pakietu app-portage/gentoolkit. Więcej informacji na temat samego programu znajdziemy na stronie manuala po wydaniu komendy man eclean.

Co zawiera katalog /var/tmp/portage? Czy usunięcie plików i katalogów w /var/tmp/portage jest bezpieczne?

Podczas kompilacji Gentoo zachowuje źródła pakietu w /var/tmp/portage. Te pliki zwykle są usuwane po udanej kompilacji, ale czasem kompilacja zawodzi. Można bezpiecznie wyczyścić całą zawartość tego katalogu jeśli nie jest uruchomione polecenie emerge. Dla pewności należy zawsze wykonać pgrep emerge przed czyszczeniem tego katalogu.

5.  Użytkowanie

Jak ustawić międzynarodowy układ klawiatury?

Edytujemy zmienną KEYMAP w /etc/conf.d/keymaps. Czasem, aby działały dodatkowe znaki na klawiaturze, trzeba również ustawić zmienne CONSOLETRANSLATION i CONSOLEFONT w pliku /etc/conf.d/consolefont. Więcej informacji o lokalizacji Gentoo można znaleźć w tekście zatytułowanym Lokalizacja Gentoo Linux.

Listing 5.1: Ponowne uruchamianie keymaps

# /etc/init.d/keymaps restart
# /etc/init.d/consolefont restart

Rozwiązywanie nazw DNS działa tylko dla użytkownika root

/etc/resolv.conf ma złe uprawnienia; zmieniamy to za pomocą polecenia chmod:

Listing 5.2: Zmiana uprawnień dla /etc/resolv.conf

# chmod 0644 /etc/resolv.conf

Dlaczego użytkownik nie może mieć własnego pliku crontab?

Należy dodać danego użytkownika do grupy cron.

Jak włączyć numlock podczas ładowania systemu?

Jeśli pracujemy w wierszu poleceń, wystarczy tylko wykonać rc-update add numlock default &&/etc/init.d/numlock start.

Każde środowisko graficzne zawiera inne narzędzia dla tego typu zadań. Informacje o tych programach znajdują się w dokumentacji tych środowisk.

Jak wyczyścić terminal po wylogowniu się?

Aby wyczyścić terminal dodajemy clear do skryptu ~/.bash_logout:

Listing 5.3: Czyszczenie terminala podczas wylogowywania się

$ echo clear >> ~/.bash_logout

Jeśli chcemy, aby się to działo automatycznie po dodaniu nowego użytkownika, wykonujemy to samo dla /etc/skel/.bash_logout:

Listing 5.4: Domyślne dla wszystkich czyszczenie terminala podczas wylogowywania się

# echo clear >> /etc/skel/.bash_logout

6.  Obsługa

ReiserFS i uszkodzenie systemu plików -- jak to naprawić, itd.

Jeśli partycja ReiserFS jest uszkodzona, należy załadować system za pomocą płyty instalacyjnej Gentoo i uruchomić reiserfsck --rebuild-tree na uszkodzonej partycji. To powinno ponownie uczynić system plików spójnym, jednakże z powodu uszkodzenia niektóre pliki lub katalogi mogą zostać utracone.

7.  Rozwój

Gdzie zgłaszać błędy?

Należy użyć naszej Bugzilli lub odwiedzić kanał #gentoo na IRC-u.

Jak często wypuszczane są nowe wydania?

Pakiety w Gentoo aktualizowane są zaraz po tym jak autorzy wydadzą nową wersję programu. Po informacje kiedy samo Gentoo tworzy nowe wydania plików "stage", profili lub obrazy ISO, należy udać się na stronę projektu Release Engineering. Nowe wydania są także ogłaszane na liście dyskusyjnej gentoo-announce. Więcej informacji na ten temat jest w odpowiedzi na pytanie dotyczące aktualizacji.

Głośnik systemowy brzęczy jak szalony. Jak wyłączyć dźwięki w konsoli?

Brzęczenie konsoli może być wyłączone za pomocą setterm w następujący sposób:

Listing 7.1: Używanie setterm

# setterm -blength 0

Aby wyłączyć brzęczenie na konsoli podczas ładowania systemu, należy umieścić powyższe polecenie w /etc/conf.d/local.start. Jednakże to tylko wyłącza brzęczenie dla aktywnego terminala. Aby wyłączyć brzęczenie dla innych terminali wtedy należy przenieść wyjście tego polecenia do konkretnego terminala, na przykład w ten sposób:

Listing 7.2: Używanie setterm (bis)

# setterm -blength 0 >/dev/vc/1

Należy zastąpić /dev/vc/1 żądanym terminalem na którym mają być wyłączone dźwięki.

8.  Zasoby

Gdzie można znaleźć bardziej szczegółowe informacje o Gentoo Linux?

Cała oficjalna dokumentacja Gentoo znajduje się na stronie http://www.gentoo.org/doc/pl/.

Czy można kupić płytę CD z Gentoo Linux?

Płyty instalacyjne dla wszystkich wspieranych architektur są dostępne w Gentoo Store. Zakup płyty CD w naszym sklepie to dobry sposób na wsparcie dalszego rozwoju Gentoo.

Można również kupić nasze płyty CD u różnych sprzedawców wypisanych na stronie Pobieranie Gentoo.

Gdzie szukać odpowiedzi na pytania, których nie ma w tym FAQ?

Dobrym krokiem jest przejrzenie dokumentacji. Jeśli to nie pomoże, przeglądamy listy dyskusyjne Gentoo Linux w Google. Aby przeszukiwać listy dyskusyjne Gentoo, po prostu wystarczy wpisać "lists.gentoo.org tratata", aby wyszukać "tratata". Zapraszamy również na kanał #gentoo w sieci IRC.