<Poprzedni | Spis treści | Następne>
4.5. O SBU
Wiele osób chciałoby wcześniej wiedzieć, ile czasu zajmuje skompilowanie i zainstalowanie każdego pakietu. Ponieważ Linux From Scratch można zbudować na wielu różnych systemach, niemożliwe jest podanie dokładnych szacunków czasu. Największy pakiet (Glibc) zajmie około 20 minut na najszybszych systemach, ale może zająć do trzech dni na wolniejszych systemach! Zamiast podawać rzeczywiste czasy, zamiast tego zostanie użyta miara standardowej jednostki konstrukcyjnej (SBU).
Środek SBU działa w następujący sposób. Pierwszym pakietem, który zostanie skompilowany na podstawie tej książki, jest Binutils opisany w rozdziale 5. Czas potrzebny na skompilowanie tego pakietu będzie określany jako Standardowa Jednostka Kompilacyjna (SBU). Wszystkie inne czasy kompilacji będą wyrażone w odniesieniu do tego czasu.
Rozważmy na przykład pakiet, którego czas kompilacji wynosi 4.5 SBU. Oznacza to, że jeśli systemowi zajęło 10 minut, aby skompilować i zainstalować pierwszą wersję Binutils, zajmie to w przybliżeniu Zbudowanie tego przykładowego pakietu zajmuje 45 minut. Na szczęście większość czasów kompilacji jest krótsza niż w przypadku Binutils.
eksportuj MAKEFLAGS='-j 2'
eksportuj MAKEFLAGS='-j 2'
Ogólnie rzecz biorąc, jednostki SBU nie są całkowicie dokładne, ponieważ zależą od wielu czynników, w tym od wersji GCC systemu hosta. Podano je tutaj, aby oszacować, ile czasu może zająć instalacja pakietu, ale w niektórych przypadkach liczby mogą się różnić nawet o dziesiątki minut.
Note
W przypadku wielu nowoczesnych systemów z wieloma procesorami (lub rdzeniami) czas kompilacji pakietu można skrócić, wykonując „tworzenie równoległe” poprzez ustawienie zmiennej środowiskowej lub polecenie robić zaprogramować liczbę dostępnych procesorów. Na przykład Core2Duo może obsługiwać dwa jednoczesne procesy za pomocą:
lub po prostu buduj za pomocą:
Gdy w ten sposób używanych jest wiele procesorów, jednostki SBU w książce będą się różnić jeszcze bardziej niż zwykle. W niektórych przypadkach etap tworzenia po prostu zakończy się niepowodzeniem. Analiza wyników procesu kompilacji będzie również trudniejsza, ponieważ linie różnych procesów będą przeplatane. Jeśli napotkasz problem na etapie kompilacji, wróć do kompilacji z jednym procesorem, aby prawidłowo przeanalizować komunikaty o błędach.
Note
W przypadku wielu nowoczesnych systemów z wieloma procesorami (lub rdzeniami) czas kompilacji pakietu można skrócić, wykonując „tworzenie równoległe” poprzez ustawienie zmiennej środowiskowej lub polecenie robić zaprogramować liczbę dostępnych procesorów. Na przykład Core2Duo może obsługiwać dwa jednoczesne procesy za pomocą:
lub po prostu buduj za pomocą:
Gdy w ten sposób używanych jest wiele procesorów, jednostki SBU w książce będą się różnić jeszcze bardziej niż zwykle. W niektórych przypadkach etap tworzenia po prostu zakończy się niepowodzeniem. Analiza wyników procesu kompilacji będzie również trudniejsza, ponieważ linie różnych procesów będą przeplatane. Jeśli napotkasz problem na etapie kompilacji, wróć do kompilacji z jednym procesorem, aby prawidłowo przeanalizować komunikaty o błędach.
zrobić -j2
zrobić -j2