Wydrukuj tę dokumentację Pokaż jako slajdy


Wykorzystanie ccache

Można wykorzystać ccache w celu przyspieszenia kompilacji. Co prawda pierwsza kompilacja nie jest szybsza (w końcu cache musi powstać), ale kolejne powinny znacząco skrócić czas kompilacji źródeł systemu.

Instalacja ccache

Z wykorzystaniem własnego repozytorium pakietów zainstalować sam ccache:

pkg install -Uy ccache

Konfiguracja globalna

W pliku /usr/local/etc/ccache.conf wykonujemy konfigurację:

cache_dir = /var/cache/ccache
max_size = 5.0G

Oraz wykonujemy katalog na cache:

mkdir -p /var/cache/ccache

# albo jako oddzielny zfs
zfs create sys/data/v/cache/ccache

Ustawienia dla make

Program make musi być świadomy, że ma skorzystać z ccache. W tym celu należy w pliku make.conf dodać następujące wpisy (najlepiej w /etc/make/make.local.conf:

WITH_CCACHE_BUILD=      yes
CCACHE_DIR=             /var/cache/ccache

Wykorzystanie meta_mode

Drugim mechanizmem przyspieszającym kompilację jest wykorzystanie META_MODE. W tym celu trzeba wykonać dwa ustawienia.

make

WITH_META_MODE=         yes

Załadowanie modułu kernela

kldload filemon

Po wykonanej kompilacji powinno zadziałać polecenie kldunload filemon, ale niestety kończy się błędem "Device is in use". Ale rychły restart powinien znacznie pomóc.

Uruchomienie kompilacji

Jeżeli wykonujemy upgrade systemu z wersji do wersji, to może się zdarzyć, że w katalogach "roboczych" (/usr/obj) zostanie stara wersja programu bmake. Tak więc przed kompilacją warto usunąć katalog, aby wykonywanie kroku instalacji świata nie zwracało błędów.

rm -rf /usr/obj/usr/src/amd64.amd64/usr.bin/bmake/

Następnie (zgodnie z klasyką) uruchamiamy kompilację źródeł:

cd /usr/src

# okre/slenie maksymalnej liczby jednoczesnych zadań kompilacji
# sprawdzone w boju: ustawienie wartości większej niż 6 może powodować błędy.
${MAKEJOBS:=-j$(sysctl -n hw.ncpu)}
export $MAKEJOBS

# wykonanie poszczególnych kroków
make $MAKEJOBS buildworld && make $MAKEJOBS buildkernel && make installkernel KERNCONF=HQ11x64

# wykonanie ew. koniecznych instalacji plików konfiguracyjnych (zgodnie z manualem)
mergemaster -p

# Single user mode
make installworld

# synchronizacja plików konfiguracyjnych
# (ale wcześniej warto na chwilę skopiować skrypt startowy do sshd)
#
mv /etc/rc.d/sshd /etc/rc.d/sshd-old


Źródła w sieci internet


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.

KompilowanieZrodel (ostatnio edytowane 2024-01-04 14:54:52 przez wtps0n)