( vl | 2020. 12. 20., v – 11:03 )

Semmi nem indokolná a teljes újrafordítást

gcc upgrade indokolja. Kb. évente jön új stable gcc verzió (de max. 1.5 évente). És ott tartunk, hogy nem lehet nagyon sokáig kihúzni a régivel, mert jellemzően 1-2 év után kidobálják a régi gcc verziók támogatását a Gentooban. A binutils és a glibc is hasonló, vagy picit nagyobb intenzitással szokott frissülni (mondjuk évente kétszer).

Én azt szoktam csinálni, hogy 1-1.5 évente, pár hónap kivárással az új stable gcc megjelenése után (amikorra már minden fordul vele) nyomok egy tabula rasát.

Ez érdekelne, hogy mit-hogyan ha direkt erre a célra szeretnék egy állandó chroot-ot, esetleg kettőt, egy stabil és egy ~amd64-et! Ez állandóan fut vagy csak ha szükség van rá, akkor indítod?

A chroot egy könyvtár, amiben tudsz indítani mondjuk egy shellt, úgy, hogy a shell azt hiszi, az alkönyvtár a világ közepe (/). És amit ebből a shellből indítasz, az is ezt fogja hinni.

- mkdir dir
- cd dir
- mint egy normál telepítésnél, kibontod a latest stage3-at (ezt el is rakod, ebből fogod telepíteni ugyanis a többi gépet is)
- varázsolsz /usr/portage fát (latest portage tar, esetleg emerge --rsync, vagy máshonnan idemásolod - nálam naponta megy egy chrootban az emerge --sync, és azt snapshotolom szintén naponta ZFS-en)
- a /etc/portage beállításokat jól megcsinálod (hasznos gitben tárolni, hiszen ezt egy-az-egyben szeretnéd vinni célgépekre is)
- mountolsz mindenféle jókat
- chroot . /bin/bash
- emerge -b

Nálam ezek vannak a mount listán:

mount -t proc none "${buildroot}/proc"
mount -o bind /dev "${buildroot}/dev"
mount -o bind /dev/pts "${buildroot}/dev/pts"
mount -o bind /dev/shm "${buildroot}/dev/shm"
mount -o nodev,size=${tmpsize} -t tmpfs none "${buildroot}/tmp"
mount -o nodev,size=${vartmpsize} -t tmpfs none "${buildroot}/var/tmp"
mount -o bind /home/pkgs/distfiles "${buildroot}/old.distfiles"

ez utóbbi azért van, hogy a letöltött binárisokon tudjon több környezet is osztozni (még sajnos van egy x86-os gépem is, ezért olyan build környezet is van), meg egy tabula rasánál ne kelljen mindent megint leszedni - dolgok el bírnak tűnni sajnos ezek közül a netről...
Ja, a /old.distfiles használatához env beállítás kell a make.conf-ba, különben ugye nem ott keresné.