BLFS: the scenic route!

Door Sjaaksken op woensdag 7 mei 2014 16:36 - Reacties (6)
Categorie: BLFS, Views: 3.173

Na de initiŰle overwinning op LFS kon ik het succes proeven. BLFS werd het nieuwe doel, met als persoonlijke target om een volledig werkende graphische omgeving te compileren. Nu LFS geen geheimen meer heeft, kan dit niet moeilijk zijn toch?

Fout. BLFS is geen procedure zoals je die met LFS van begin tot eind stap voor stap volgt. Meer nog, buiten de rangschikking van de paketten per hoofdstuk (netwerk, general libs,.. ) en de vereiste 'dependencies' per pakket heb je bijna geen leidraad om aan een BLFS te beginnen. Toegegeven, je leert veel bij door het zelf uit te moeten zoeken en dat is deels ook de bedoeling van BLFS, maar de kans om fouten te maken, en vooral om vast te komen zitten, is enorm groot. Gelukkig wordt er momenteel wel werk gemaakt van een nieuwe wiki om de dependencies beter te rangschikken.

Buiten de dependencies is er natuurljik nog het probleem van het ingeven van de juiste commando's voor het configureren en compileren van paketten alsook het aanmaken van systeemwijde config bestanden. Overtypen is vragen om problemen, vreemd genoeg blijft het boek BLFS echt heel vaag over wat de beste methode is om deze code over te nemen van het boek. Ergens wordt er gewag gemaakt van een tekstbrowser te gebruiken (daar je nog geen gui omgeving hebt), maar hiervoor ontbreekt vooral een duidelijke 'how to' en meer nog, het configureren van een wifi verbinding wordt zo goed als volledig buiten beschouwing gelaten, zelfs een gewone lan verbinding via dhcp wordt niet concreet overlopen. Hier laat het boek toch al wel enkele grote steken vallen. Ikzelf heb na eindeloos code overtypen de stap gemaakt naar het werken in een chroot omgeving, net zoals met LFS het geval was. Na enig opzoekingswerk online bleek dit mogelijk te zijn, echter voor sommige paketten kom je daarmee in de problemen en dien je alsnog rechtstreeks in je (B)LFS systeem te booten (oa. voor de paketten die de random number generator /dev/urandom nodig hebben). Een beetje duidelijkheid hieromtrent zou welkom zijn in het begin van het boek, en de eerste stappen in BLFS zouden eigenlijk gericht moeten zijn om zo snel mogelijk een werkende internetverbinding en een tekstbrowser op te zetten.

Een ander euvel is dat het versie nummer van BLFS veranderde tijdens mijn build. Voor de laatste versie gebruikt men een generieke URL. Als je deze generieke URL opslaat kom je dus zonder het te weten op een andere, nieuwere versie van BLFS terecht. Door de zeer lange build-tijd van het systeem zou je toch verwachten dat dit vermeden zou worden door geen generieke url's te gebruiken maar effectief naar het versienummer te verwijzen. Door het installereren van nieuwere paketten, kan je later in de problemen komen door kleine verschillen in de nieuwere versies, waardoor je soms een andere versie van het pakket dient te downloaden en te compileren. Complexe materie dus, goed kijken of er geen nieuwe versie van BLFS uitgekomen is is dus de boodschap, ofwel altijd de link naar het expliciete versienummer van BLFS gebruiken.

Een goed idee tijdens het bouwen van BLFS is om een tabel aan te maken met de paketten die je al gebouwd hebt. Zonder een dergelijke lijst is het praktisch onmogelijk om aan de wirwar van paketten en dependencies uit te kunnen geraken. Ikzelf heb een rekenblad gemaakt met verschillende tabbladen, waar ik het onderscheid gemaakt heb tussen ge´nstalleerde paketten, paketten die een 'unmet dependency' hebben (tijdelijk) en paketten die ik later nog eens dien te hercompileren, aangezien je het pakket zelf al in een vroeg stadium van je BLFS build nodig hebt, maar er veel recommended paketten gebruik van maken. Door te hercompileren vergroot je de bruikbaarheid van deze paketten. Dubbel werk, en het is niet verplicht maar aangezien je toch al zoveel moeten compileren hebt om aan een BLFS te geraken, kost dit echt niet veel moeite.

Elk bladzijde in het BLFS boek heeft dezelfde structuur: je hebt je pakket, de downloadlink en daaronder de dependencies: required, recommended en optional. Alle "Required" dependencies zijn natuurlijk verplicht om eerste te installeren, zoniet kom je in de problemen (meestal al tijdens de configuratie van de compilatie). "Recommended" betekent dus dat je deze ofwel best eerst installeert, ofwel beslist om later hetzelfde pakket nog eens te compileren. In sommige gevallen heb je best wel veel "Recommended" dependencies dus kan je beter later nog eens hercompileren.

Iets om goed in het oog te houden zijn de versie nummers, van sommige paketten worden er twee verschillende versies gecompileerd (gstreamer0.10 en gstreamer1.0, etc..) Soms trekken deze versienummers zo hard opeen dat je bij het configureren van een pakket, zelfs met lijst van ge´nstalleerde paketten, je toch soms je hoofd breekt over het feit dat er een noodzakelijk pakket niet ge´nstalleerd is. Het kost veel moeite om in te zien dat er dan een cijfertje verschil zit in het versienummer en dat er een tweede pakket bestaat dat nog ge´nstalleerd dient te worden. Je grijze hersenmassa wordt trouwens wel steeds aan het werk gezet.

Wanneer kan je nu besluiten dat je BLFS af is? Voor sommigen is dat als alle paketten ge´nstalleerd zijn, voor anderen betekent het dat je een draaiende gui omgeving zoals Gnome of KDE hebt. Je kan eigenlijk al spreken van een BLFS zodra je een minimale extra functionaliteit ge´nstalleerd hebt op je bestaande LFS build. Een BLFS kan dus alles zijn, een firewall, een router, een NAS -systeem of alles tegelijk. In mijn geval ga ik voor een volledig draaiende desktop-omgeving. Meer daarover in een volgende post.

edit: kleine correcties

Volgende: BLFS & X- window system: de beproeving. 05-'14 BLFS & X- window system: de beproeving.
Volgende: LFS 7.4: Succes! 04-'14 LFS 7.4: Succes!

Reacties


Door diederik, woensdag 7 mei 2014 20:33

Hey, leuk om weer te lezen over je LFS en BLFS avonturen! Ben zelf (bijna) klaar met lfs, had alleen foutje gemaakt... Niet de fstab op m'n lfs partitie maar op m'n huidige partitie aangepast, maar ja je kan niet altijd zes gooien he ;) voor zover ik bekend ben met linux kun je netwerk instellingen aanpassen in /network/interfaces, maar dat weet ik niet zeker in jouw geval...

veel succes nog met blfs!

Door Tweakers user Sjaaksken, donderdag 8 mei 2014 00:14

Hoi Diederik, success! De fun begint zodra je de eerste keer kan booten in je native lfs :)

Door Tweakers user thioz, donderdag 8 mei 2014 01:09

Wat ik me altijd afgevraagd heb is of er daadwerkelijk ook mensen LFS of BLFS als hoofdsysteem draaien?

ik ben er zelf ook wel eens aan begonnen en heb toen een redelijk draaiend systeem opgezet en toen dat af was had ik toch niet echt de zin om het helemaal op te bouwen tot mijn systeem voor dagelijks gebruik.

Door Tweakers user Sjaaksken, donderdag 8 mei 2014 14:53

thioz schreef op donderdag 08 mei 2014 @ 01:09:
Wat ik me altijd afgevraagd heb is of er daadwerkelijk ook mensen LFS of BLFS als hoofdsysteem draaien?

ik ben er zelf ook wel eens aan begonnen en heb toen een redelijk draaiend systeem opgezet en toen dat af was had ik toch niet echt de zin om het helemaal op te bouwen tot mijn systeem voor dagelijks gebruik.
@ Thioz, dat gaat zeker, er bestaat zelfs een integratie met verschillende package managers, maar daar ben ik nog niet. Het bouwen van een volledige werkende multimedia omgeving zoals we dat met bv. ubuntu kennen is ook mogelijk, maar ik kan u reeds vertellen dat dit qua build-tijd enorm lang duurt.

[Reactie gewijzigd op donderdag 8 mei 2014 14:53]


Door Tweakers user iChaos, donderdag 8 mei 2014 20:11

In hoeverre is LFS zinnig als je er een package manager op gooit? Begrijp me niet verkeerd, LFS is schitterend om te leren hoe een distro onder de motorkap werkt, maar als je een flinke tijd bezig bent om LFS op te zetten, daarna apt of pacman installeert om daarna alle packages op te halen vanuit de repository van een grote distro, wat heeft het dan nog precies voor zin? :) In dat geval zou ik liever gaan voor het opzetten van een Debian-based distro waar zo min mogelijk in zit, dan hoef je het compileerwerk niet meer zelf te doen.

Door Tweakers user Sjaaksken, donderdag 8 mei 2014 22:32

iChaos schreef op donderdag 08 mei 2014 @ 20:11:
In hoeverre is LFS zinnig als je er een package manager op gooit? Begrijp me niet verkeerd, LFS is schitterend om te leren hoe een distro onder de motorkap werkt, maar als je een flinke tijd bezig bent om LFS op te zetten, daarna apt of pacman installeert om daarna alle packages op te halen vanuit de repository van een grote distro, wat heeft het dan nog precies voor zin? :) In dat geval zou ik liever gaan voor het opzetten van een Debian-based distro waar zo min mogelijk in zit, dan hoef je het compileerwerk niet meer zelf te doen.
Omdat het kan? :) Eerlijk gezegd als je zover bent dat je LFS + BLFS + een package manager kan compileren heb je je doel wel bereikt. Ik denk niet dat het doel van een BLFS build is om zo snel mogelijk de package manager af te krijgen, dat doe je als kers op de taart. Vanaf dan kan je zeggen 'been there, done that'.

Trouwens in het kader van een opleiding heeft dit uiteraard zin. Build-your-own-OS van A tot Z, daar hoort volgens mij alles bij wat bij een modern OS hoort, inclusief package manager.

Reactie formulier
(verplicht)
(verplicht, maar wordt niet getoond)
(optioneel)

Voer de code van onderstaand anti-spam plaatje in: