|
1.
Instalowanie tarballa stage
Ustawienie poprawnej daty i czasu
Na samym początku całego procesu instalacji należy sprawdzić datę/czas i
ewentualnie je zaktualizować. Niezsychronizowany zegar może być przyczyną
dziwnych błędów w przyszłości!
Aby zweryfikować aktualną datę/czas, uruchamiamy date:
Listing 1.1: Sprawdzenie daty/czasu |
# date
nie sie 21 01:56:26 UTC 2005
|
Jeżeli wyświetlane data i czas są złe, musimy je uaktualnić poleceniem date
MMDDggmmRRRR (Miesiąc, Dzień, godzina, minuta,
i Rok). Na tym etapie powinniśmy korzystać z czasu UTC. W późniejszym
czasie będziemy mogli zdefiniować naszą strefę czasową. Na przykład, aby
ustawić datę 29 marca 2005 roku, 16:21:
Listing 1.1: Ustawienie daty/czasu UTC |
# date 032916212005
|
Podejmowanie decyzji
W następnym kroku należy wykonać instalację wybranego tarballa stage3.
Można go pobrać z Internetu lub, jeśli działamy z którejś płyty Gentoo
Universal CD, przekopiować z CD. Polecenie uname -m pozwala na
zdecydowanie jaki plik stage jest potrzebny.
Płyty Minimal CD i LiveCD nie zawierają żadnych plików stage3.
1.
Domyślnie: Użycie stage z Internetu
Pobieranie tarballa stage
Na początku przechodzimy do punktu montowania systemu plików Gentoo
(zwykle jest to /mnt/gentoo):
Listing 1.1: Przechodzenie do punktu montowania systemu plików Gentoo |
# cd /mnt/gentoo
|
W zależności od medium instalacyjnego mamy do dyspozycji kilka narzędzi, za
pomocą których możemy pobrać plik stage. Jeżeli mamy program links
możemy wejść bezpośrednio na listę serwerów
lustrzanych Gentoo i wybrać serwer, który znajduje się najbliżej.
Jeżeli nie mamy programu links, musimy skorzystać z przeglądarki
lynx do tego celu. Aby używać serwera proxy musimy również
wyeksportować zmienne http_proxy i ftp_proxy:
Listing 1.1: Ustawienie informacji o proxy dla lynxa |
# export http_proxy="http://proxy.server.com:port"
# export ftp_proxy="http://proxy.server.com:port"
|
W dalszej części zakładamy, że do swojej dyspozycji mamy przeglądarkę
links.
Przechodzimy do katalogu ${release-dir}. Powinniśmy
tam zobaczyć wszystkie dostępne pliki stage, dla naszej architektury (mogą one
znajdować się w podkatalogach). Wybieramy jeden i wciskamy klawisz D,
aby ściągnąć plik. Kiedy ściągniemy plik, wciskamy Q, aby
wyjść z przeglądarki.
Listing 1.1: Przeglądanie listy serwerów lustrzanych za pomocą links |
# links http://www.gentoo.org/main/en/mirrors.xml
# links -http-proxy serwer.proxy.com:8080 http://www.gentoo.org/main/en/mirrors.xml
|
Wybranie pliku stage3 jest konieczne, nie wspieramy już instalacji za pomocą
stage 1 i 2.
Jeśli chcemy zweryfikować poprawność pobranych archiwów stage, musimy porównać
wynik polecenia md5sum z sumami MD5 udostępnianymi na serwerze.
Listing 1.1: Sprawdzanie integralności archiwum stage |
# md5sum -c ${stage3}.DIGESTS
${stage3}: OK
|
Rozpakowywanie tarballa Stage
Wypakowujemy pobrany plik stage przy pomocy programu tar:
Listing 1.1: Wypakowanie stage |
# tar xvjpf stage3-*.tar.bz2
|
Należy użyć dokładnie tych samych przełączników (xvjpf). Opcja x
oznacza wypakuj, v to wyświetl, aby widzieć co się dzieje
podczas wypakowywania (ok, to jest opcjonalne), j służy do
dekompresji archiwum bzip2, p to zachowuj uprawnienia,
natomiast f podkreśla, że chcemy rozpakować to, co czytamy z pliku, a nie
ze standardowego wejścia.
Gdy stage jest już zainstalowany, pora przejść do Instalacji Portage.
1.
Instalacja Portage
Wypakowanie snapshota Portage
W tym rozdziale omówimy proces instalacji snapshota Portage, kolekcji plików,
które informują Portage jakie programy można zainstalować, które profile są
dostępne itp.
Ściąganie i instalowanie snapshota Portage
Przechodzimy do miejsca gdzie zamontowaliśmy system plików (zwykle
/mnt/gentoo):
Listing 1.1: Przechodzenie do punktu montowania Gentoo |
# cd /mnt/gentoo
|
Uruchamiamy links (lub lynx) i przechodzimy do listy mirrorów Gentoo. Wybieramy jeden z
serwerów, najlepiej jak najbliższy naszej lokalizacji i przechodzimy do
katalogu snapshots/. Ściągamy najnowszy snapshot Portage
(portage-latest.tar.bz2) poprzez jego wybranie i naciśnięcie
klawisza D.
Listing 1.1: Przeglądanie listy mirrorów Gentoo |
# links http://www.gentoo.org/main/en/mirrors.xml
|
Teraz wychodzimy z przeglądarki naciskając klawisz Q. Plik znajduje się
w katalogu /mnt/gentoo.
Jeśli chcemy sprawdzić poprawność ściągniętego pliku, należy użyć md5sum
i porównać sumę kontrolną pliku z podaną na serwerze lustrzanym.
Listing 1.1: Sprawdzanie poprawności pliku |
# md5sum -c portage-latest.tar.bz2.md5sum
portage-latest.tar.bz2: OK
|
W następnym kroku wypakujemy snapshot Portage. Należy użyć dokładnie tych samych
poleceń; ostatnia opcja to duża litera C, nie małe c.
Listing 1.1: Wypakowywanie snapshota Portage |
# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
|
1.
Konfigurowanie opcji kompilacji
Wprowadzenie
Jest wiele możliwych do skonfigurowania zmiennych wpływających na zachowanie
Gentoo. Możemy je wprowadzać jako zmienne środowiskowe (poprzez export),
ale wtedy nie zostaną zapisane na stałe. Zamiast tego Portage do zachowywania
konfiguracji używa pliku konfiguracyjnego /etc/make.conf. Pora
wziąć się za jego edycję.
Uwaga:
Opatrzona komentarzami lista wszystkich możliwych zmiennych znajduje się
w pliku /mnt/gentoo/usr/share/portage/config/make.conf.example. Do
szczęśliwego ukończenia instalacji wystarczy wyedytowanie tylko kilku z nich,
tych, których listę przedstawiamy poniżej.
|
Uruchamiamy ulubiony edytor (w przykładach używamy nano),
którym wprowadzimy omawiane nieco dalej opcje optymalizacji.
Listing 1.1: Edytowanie /etc/make.conf |
# nano -w /mnt/gentoo/etc/make.conf
|
Plik make.conf.example ma charakterystyczną strukturę: linie z
komentarzem rozpoczynają się od znaku "#", linie zawierające zmienne używają
składni ZMIENNA="zawartość". Takiej samej składni używa także plik
/etc/make.conf. Kilka z tych zmiennych zostało przedyskutowanych
poniżej.
CFLAGS i CXXFLAGS
Zmienne CFLAGS i CXXFLAGS definiują flagi optymalizujące
używane odpowiednio przez kompilator gcc C i C++. Choć generalnie
określamy ich wartości tutaj, maksimum wydajności osiągniemy dopasowując
je do każdego programu z osobna. Jest tak dlatego, że programy znacząco
różnią się między sobą.
W make.conf należy zdefiniować flagi optymalizacji co do
których jesteśmy przekonani, że w głównej mierze poprawią czas reakcji
systemu. Nie przypisujemy pod tę zmienną ustawień eksperymentalnych; przesada
w optymalizacji może spowodować, że programy zaczną źle funkcjonować
(nagle przerywać działanie lub nawet gorzej, wcale nie działać).
Nie będziemy tłumaczyć znaczenia wszystkich możliwych opcji optymalizacji.
Wszystkie są wymienione w Podręczniku
Online GNU lub stronę info gcc (info gcc -- działa tylko na
systemach linuksowych). Plik make.conf.example sam zawiera dużo
informacji i przykładów - należy go uważnie przeczytać.
Pierwszym ustawieniem jakim się tu zajmiemy jest flaga -march= lub
-mtune=, która określa docelową architekturę. Możliwe jej wartości są
opisane jako komentarze w make.conf.example.
Drugim jest flaga -O (to jest duże O, nie zero), która określa
klasę optymalizacji gcc. Dostępne klasy to s (optymalizacja
rozmiaru), 0 (brak optymalizacji), 1, 2 lub 3 -
coraz silniej optymalizujące (każda z nich używa tych samych flag, co
poprzednia oraz dodaje własne). Zalecanym ustawieniem jest -O2.
Ustawienie flagi -O3 globalnie, dla całego systemu może powodować
problemy dlatego zalecanym jest ustawieni flagi -O2.
Inne popularne flagi optymalizujące to -pipe (gcc używa potoków zamiast
plików tymczasowych w komunikacji między różnymi etapami kompilacji). Flaga ta
nie ma wpływu na generowany kod, jednak powoduje zwiększenie zużycia pamięci.
Na komputerach z małą ilość pamięci może spowodować to zabicie procesu gcc. W
takim przypadku należy zrezygnować z tej flagi.
Dodatkowo możemy użyć flagi -fomit-frame-pointer (w rejestrach nie będą
przechowywane wskaźniki ramki dla funkcji, które ich nie wymagają). Używanie
flagi -fomit-frame-pointer może powodować poważne problemy podczas
debugowania kodu!
Podczas definiowania CFLAGS i CXXFLAGS można łączyć kilka
flag optymalizacji. Domyślne wartości znajdujące się w pliku stage3 powinny być
wystarczające. Poniższe wartości są jedynie przykładem:
Listing 1.1: Definiowanie zmiennych CFLAGS i CXXFLAGS |
CFLAGS="${CFLAGS}"
CXXFLAGS="${CFLAGS}"
|
Uwaga:
Więcej informacji na temat różnych opcji kompilatora można znaleźć w Podręczniku Optymalizacji.
|
MAKEOPTS
Za pomocą MAKEOPTS definiujemy jak wiele równoległych kompilacji będzie
przeprowadzanych podczas przygotowywania pakietu do instalacji. Sugerowaną
liczbą jest ilość procesorów w systemie powiększona o jeden, nie jest to jednak
zawsze najlepsze wyjście.
Listing 1.1: MAKEOPTS dla przeciętnego systemu jednoprocesorowego |
MAKEOPTS="-j2"
|
Gotowi, do biegu, start!
Na koniec poprawiamy jeszcze odrobinę /mnt/gentoo/etc/make.conf i
zapisujemy wyniki naszych prac (w nano za pomocą Ctrl-X).
Teraz jesteśmy przygotowani na ( Instalację
systemu podstawowego ).
|