Gentoo Logo

1.  Chrootowanie

Kopiowanie informacji o serwerach DNS

Pozostaje nam do zrobienia jedna rzecz zanim przejdziemy do nowego środowiska. Należy skopiować informacje o serwerach DNS do /etc/resolv.conf. Musimy tego dokonać, aby mieć pewność, że po przejściu do nowego środowiska sieć nadal będzie działała.

Listing 1.1: Kopiowanie informacji o serwerach DNS

(Opcja "-L" jest potrzebna, aby nie kopiować linków symbolicznych)
# cp -L /etc/resolv.conf /mnt/gentoo/etc/

Montowanie systemów plików /proc oraz /dev

Zamontujmy system plików /proc w /mnt/gentoo/proc. Pozwalamy tym samym naszej instalacji na korzystanie z informacji zawartych w jądrze w trakcie używania środowiska chroot. Następnie należy zamontować system plików /dev.

Listing 1.1: Montowanie /proc i /dev

# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev

Przechodzenie do nowego środowiska

Teraz, gdy wszystkie partycje zostały zamontowane i środowisko bazowe jest zainstalowane, czas przejść do naszej nowej instalacji poprzez chrootowanie. Oznacza to, że przechodzimy z obecnego środowiska instalacyjnego (płyta instalacyjna lub inne medium) do naszego zainstalowanego systemu (znajdującego się na zamontowanych partycjach).

Chrootowanie wykonuje się w trzech krokach. Zaczynamy od zmiany katalogu z root / (na medium instalacyjnym) na /mnt/gentoo (na naszej partycji) używając chroot. Następnie tworzymy nowe środowisko używając env-update, które tworzy zmienne środowiskowe. Ostatecznie wprowadzamy te zmienne do pamięci używając source.

Listing 1.1: Chrootowanie do nowego środowiska

# chroot /mnt/gentoo /bin/bash
# env-update
>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"

Gratulacje! Znajdujemy się teraz we własnym środowisku Gentoo Linux. Oczywiście daleko jeszcze do końca, dlatego też instalacja ma jeszcze kilka sekcji do wykonania. :-)

1.  Konfiguracja Portage

Aktualizacja drzewa Portage

Należy teraz zaktualizować drzewo portage do najnowszej wersji. Wykona to za nas emerge --sync.

Listing 1.1: Aktualizacja drzewa Portage

# emerge --sync
(Jeżeli używa się powolnego terminala jak jakiś framebuffer lub
konsoli seryjnej można dodać opcję --quiet w celu przyśpieszenia tego
procesu)
# emerge --sync --quiet

Jeżeli znajdujemy się za firewallem, blokującym ruch rsync, możemy wykorzystać emerge-webrsync, który pobierze i zainstaluje dla nas obraz portage.

Jeżeli pokaże się nam ostrzeżenie, że dostępna jest nowa wersja Portage, należy aktualizować ją przy pomocy komendy emerge --oneshot portage.

Wybór właściwego profilu

Tutaj mała definicja będzie zupełnie na miejscu.

Profil to blok przeznaczony do budowy każdego systemu Gentoo. Nie tylko precyzuje domyślne wartości dla CHOST, CFLAGS oraz innych ważnych zmiennych, ale również ukierunkowuje system na określony zasięg wersji pakietów.Dbają o to deweloperzy Gentoo.

Wcześniej profil taki praktycznie nie był ruszany przez zwykłego użytkownika. Jednakże są sytuacje, w których będziemy musieli zdecydować o zmianie profilu.

Od wersji 2006.0 profile dla systemów MIPS zostały odświeżone. Profile ustawiają różne opcje takie jak flagi USE, co ma skutek na to jakie patche będą dostępne z różnymi, ważnymi dla systemu, pakietami (szczególnie gcc oraz mips-sources).

Z powyższych powodów należy zadbać o wybór właściwego profilu dla naszego systemu. Dla Gentoo/MIPS 2007.0 dostępne są następujące profile:

System Profile Userland Status/Notes
Cobalt Qube/RaQ default-linux/mips/2007.0/cobalt/o32 32-bit Linuxthreads Zalecany
" default-linux/mips/2007.0/cobalt/o32/nptl 32-bit NPTL W fazie testów (1)
       
Generic Big Endian
Zawierający SGI Indy, Indigo2 (R4x00), Challenge S oraz O2
default-linux/mips/2007.0/generic-be/o32 32-bit Linuxthreads Zalecany
" default-linux/mips/2007.0/generic-be/o32/nptl 32-bit NPTL W fazie testów (1)
" default-linux/mips/2007.0/generic-be/n32 N32 Linuxthreads Wysoce eksperymentalny (2)
" default-linux/mips/2007.0/generic-be/n32/nptl N32 NPTL Wysoce eksperymentalny (1) (2)
" default-linux/mips/2007.0/generic-be/n64 N64 Linuxthreads Nie wspierany (3)
" default-linux/mips/2007.0/generic-be/n64/nptl N64 NPTL Nie wspierany (1) (3)
       
SGI Origin 200/2000 default-linux/mips/2007.0/ip27/o32 32-bit Linuxthreads Zalecany
" default-linux/mips/2007.0/ip27/o32/nptl 32-bit NPTL W fazie testów (1)
" default-linux/mips/2007.0/ip27/n32 N32 Linuxthreads Wysoce eksperymentalny (2)
" default-linux/mips/2007.0/ip27/n32/nptl N32 NPTL Wysoce eksperymentalny (1) (2)
       
SGI Indigo2 Impact R10000 default-linux/mips/2007.0/ip28/o32 32-bit Linuxthreads Zalecany
" default-linux/mips/2007.0/ip28/o32/nptl 32-bit NPTL W fazie testów (1)
" default-linux/mips/2007.0/ip28/n32 N32 Linuxthreads Wysoce eksperymentalny (2)
" default-linux/mips/2007.0/ip28/n32/nptl N32 NPTL Wysoce eksperymentalny (1) (2)
       
SGI Octane/Octane2 default-linux/mips/2007.0/ip30/o32 32-bit Linuxthreads Zalecany
" default-linux/mips/2007.0/ip30/o32/nptl 32-bit NPTL W fazie testów (1)
" default-linux/mips/2007.0/ip30/n32 N32 Linuxthreads Wysoce eksperymentalny (2)
" default-linux/mips/2007.0/ip30/n32/nptl N32 NPTL Wysoce eksperymentalny (1) (2)

Ważne: (1) NPTL jest w fazie testów na MIPS obecnie, ponieważ wymaga gcc-4.1 oraz glibc-2.4. Uważa się, że NPTL jest już bezpieczne i można z niego korzystać, również planuje się wykorzystanie w przyszłych wydaniach. Odważni użytkownicy mogą wypróbować te profile i zdać raport na temat otrzymanych błędów oraz sugestii.

Ostrzeżenie: (2) Przestrzeń n32 poza jądrem jest wysoce eksperymentalna, wiele aplikacji ma problemy z tym ABI i dlatego jest praktycznie pewne, że sprawi problemy związane ze stabilnością w pewnym momencie. Są wykonywane prace nad poprawą tej sytuacji, jednakże nie jest zapewniane wsparcie w trakcie korzystania z tego profilu, chyba że mamy zamiar pomóc uporać się z problemami poprzez dodawanie patchy.

Ostrzeżenie: (3) Przestrzeń n64 poza jądrem jest jest całkowicie nie wspierana na wszystkich systemach. Obecnie nie ma dostępnych stage wspierających n64 i nie zostanie to zmienione w najbliższej przyszłości.

Można sprawdzić z jakiego profilu korzysta się obecnie przy użyciu poniższej komendy:

Listing 1.1: Verifying system profile

# ls -FGg /etc/make.profile
lrwxrwxrwx  1 48 Apr  8 18:51 /etc/make.profile -> ../usr/portage/profiles/${profile}

Po przejrzeniu powyższych profili i zdecydowaniu, który odpowiada nam najbardziej, należy dostosować symlink make.profile. Domyślnie profile trzymane są w /usr/portage/profiles, więc jeżeli drzewo portage zostało przeniesione w inne miejsce (nie zalecane), należy odpowiednio zmodyfikować poniższe komendy.

Listing 1.1: Setting the profile

(Kasowanie symlinka do starego profilu)
# rm -f /etc/make.profile

(Tworzenie symlinka wskazującego na nasz nowy profil)
(Na przykład takiego użyto by na Indy lub O2)
# ln -s /usr/portage/profiles/default-linux/mips/2007.0/generic-be/o32

Uwaga: Wskazówka dla nie obeznanych z Bourne Again Shell... Po częściowym wpisaniu nazwy pliku lub komendy można wcisnąć klawisz TAB, uzupełni to automatycznie polecenie/nazwę pliku aż do ostatniego wspólnego znaku. Na przykład wpisanie /usr/portage/profiles/def<TAB>, bash automatycznie dopełni default-. Naciśnięcie TAB kilka razy wyświetli dostępne opcje, default-linux, default-darwin oraz default-bsd. Warto spróbować, jest to sporym ułatwieniem w trakcie korzystania z linii poleceń.

Konfiguracja zmiennej USE

USE jest jedną z najpotężniejszych zmiennych, zapewnianych przez Gentoo jego użytkownikom. Kilka programów może być skompilowanych z opcjonalnym wsparciem dla konkretnych pozycji. Dla przykładu niektóre aplikacje mogą być skompilowane ze wsparciem gtk lub wsparciem qt. Inne mogą być skompilowane ze wsparciem dla SSl. Niektóre programy mogą nawet być skompilowane ze wsparciem dla dla framebuffera (svgalib) zamiast wsparcia dla X11 (serwer X).

W większości dystrybucji pakiety kompilowane są ze wsparciem jak największej ilości flag, zwiększając tym samym rozmiary programów przy starcie, nie wspominając o ogromnej liczbie zależności. W Gentoo można zdecydować z jakimi opcjami paczka ma być kompilowana. Tutaj zaczyna się zabawa z USE.

W zmiennej USE definiujemy słowa kluczowe, które są mapowane do opcji kompilowania. Na przykład ssl wkompiluje wsparcie dla ssl w programach, które takiego wsparcia wymagają. -X usunie wsparcie dla serwera X (należy zwrócić uwagę na znak minus na początku). gnome gtk -kde -qt4 skompiluje programy ze wsparciem dla gnome (oraz gtk), lecz bez wsparcia dla kde (oraz qt), sprawiając, że nasz system pędzie w pełni skierowany na GNOME.

Domyślne ustawienia USE są umieszczone w plikach make.defaults naszego profilu. Pliki te znajdziemy w katalogu, na który wskazuje /etc/make.profile. Domyślnym ustawieniem USE jest suma wszystkich USE we wszystkich plikach z katalogu make.defaults. Wszystkie flagi umieszczane w /etc/make.conf są porównywane z domyślnymi ustawieniami. Jeżeli dodamy coś do USE jest to dodawane do listy domyślnej. Jeżeli usuniemy ustawienie z USE (umieszczając przed flagą znak minus) jest ono usuwane również z listy domyślnej (jeżeli znajdowało się w ogóle na tej liście). Nigdy nie należy wprowadzać zmian w katalogu /etc/make.profile; będą one nadpisywane przy aktualizacji Portage!

Pełny opis USE można znaleźć w drugiej części podręcznika Gentoo, (USE flags). Pełny opis dostępnych flag USE można znaleźć w systemie, w /usr/portage/profiles/use.desc.

Listing 1.1: Wyświetlanie dostępnych flag USE

# less /usr/portage/profiles/use.desc
(You can scroll using your arrow keys, exit by pressing 'q')

Jako przykład pokażemy ustawienia USE dla systemu z KDE, DVD, ALSA oraz wsparciem dla nagrywania CD:

Listing 1.1: Otwieranie /etc/make.conf

# nano -w /etc/make.conf

Listing 1.1: Ustawienie USE

USE="-gtk -gnome qt4 kde dvd alsa cdr"

Opcjonalnie: lokalizacja GLIBC

Najprawdopodobniej używana jest jedna lub dwie lokalizacje na naszym systemie. Można wyszczególnić potrzebne lokalizacje w pliku /etc/locale.gen.

Listing 1.1: Otwieranie /etc/locale.gen

# nano -w /etc/locale.gen

Dzięki poniższym lokalizacjom nasz system będzie zaopatrzony w angielski (Stany Zjednoczone) oraz niemiecki (Niemcy)

Listing 1.1: Wyszczególnij swoje lokalizacje

en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15

Kolejnym krokiem jest wykonanie locale-gen. Wygeneruje to wszystkie lokalizacje dodane przez nas do pliku /etc/locale.gen.

Przejdźmy do (Konfiguracji jądra).

Zaktualizowano 7 czerwca 2010

Oryginalna wersja tego dokumentu została po raz ostatni zaktualizowana 22 sierpnia 2011. Jeśli chcesz pomóc w aktualizacji tego dokumentu do najnowszej wersji, skontaktuj się z Łukaszem Damentko, koordynatorem polskiego projektu tłumaczeń dokumentacji Gentoo.

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.