Ha még nem olvastad, akkor most az 1. részt elolvashatod.
Amint a hivatkozási kézikönyv tárgyalja, először létrehozunk egy ideiglenes rendszert a /tools könyvtárban, amely tartalmazza a szükséges eszközöket az alaprendszer buildeléséhez. Mivel ez a tools könyvtár egy üres partíción foglal helyet, amelybe bele fogunk chrootolni, ezért ennek önmagában konzisztensnek kell lennie. Hiszen a chroot leszigeteli a host rendszer csomagjait, így a chrootban nem fognak működni azok a parancsok, amelyek 1) a host rendszer library-jaihoz linkelődnek; 2) olyan parancsokat hívnak meg, amelyek hiányoznak a tools-ból.
Az LFS könyv egy kitaposott utat mutat erre. Létrehozunk egy lfs nevű felhasználót, melynek csinálunk egy tiszta environmentet (úgy értve mint shell environment variables), ez csökkenti a host rendszer hatását a tools-ra. Másfelől, mivel az lfs egy mezei felhasználó, így ez véd a host rendszer szétcseszése és teleszemetelése ellen, amelyek igencsak nem kívánatos dolgok. A linker hackelése és a GCC specs fájlnának módosításával pedig elérjük, hogy amit csak lehet, a /tools library-jaihoz linkeljen.
Persz ha valami nem található meg a tools-ban, de megtalálható a host rendszerben, akkor azt a host rendszerhez fogja linkelni, ez pedig nem kívánatos, mivel ezek akkor nem fognak majd a chrootban működni. Emiatt figyelni kell a ./configure kapcsolókra, hogy a fölösleges függőségeket kikapcsoljuk, valamint arra, hogy a fontos függőségek pedig telepítésre kerüljenek a tools-ban. Persze, amint már fenn írtam, a könyv egy kitaposott út; a problémákkal akkor találkozunk, amikor úgy döntünk, hogy letérünk erről a kitaposott útról, és mondjuk GNU tar helyett bsdtar-t teszünk a rendszerbe, meg adunk hozzá csomagkezelést.