EasyLFS Projektthread

Dennis Wronka

Soulcollector
Da es ja nun bereits eine veroeffentlichte Version meines EasyLFS gibt und meine Website weiterhin in Arbeit ist moechte ich das Forum nutzen um hier einen kleinen Thread zu dem Projekt anzulegen. Bisher wurde ja im Thread Automatisierung von Linux from Scratch diskutiert und dort finden sich auch einige Informationen zum Projekt, jedoch moechte ich nun auch einen "offiziellen" Thread dazu hier ablegen, auch aus dem Grund dass die meisten meiner Opfer, aeh Tester, hier Mitglied sind.

Fuer alle die es nicht schon aus dem anderen Thread wissen hier nochmal in komprimierter Form eine kurze Vorstellung meines Projekts. Anfangen moechte ich hier mit meinen Gruenden dieses Projekt ueberhaupt in's Leben zu rufen.

Da ich selbst nie wirklich "die Distribution" fuer mich finden konnte habe ich nach ein paar Jahren Slackware (die meinen Vorstellungen schon recht nah kam) mal wieder gedacht ich koennte mir nochmal Linux from Scratch installieren.

Nun wollte ich aber eben auch mit den jeweils aktuellsten Versionen der aufgefuehrten Software arbeiten und nicht mit den Versionen die im LFS-Buch behandelt werden. Bei den Befehlen hab ich mich groesstenteils an das Buch gehalten, von Anpassungen wegen neueren Versionen natuerlich abgesehen.

Nachdem ich mein System dann fertig hatte und auch alles andere (inklusive KDE und so weiter) installiert hatte war ich ziemlich zufrieden mit dem System und kann nur sagen, dass ich mit LFS die Distro gefunden hab die mir persoenlich am meisten zusagt.

Die Installation von Linux from Scratch ist ja nun nicht gerade einfach, man muss eine ganze Menge tippen, das nimmt nicht nur viel Zeit ein sondern ist auch fehleranfaellig. Doppeltes und dreifaches Ueberpruefen der Eingaben nimmt also auch nochmal gut Zeit in Anspruch.

Da mir bekannt war, dass es bereits Ansaetze gibt LFS zu automatisieren hab ich mich darueber etwas schlau gemacht konnte aber damit nicht so recht warm werden. Dadurch wurde dann im Grunde auch mein Projekt in's Leben gerufen. Ich wollte mir einfach ein paar Scripts schreiben die mir die ganze Tipparbeit abnehmen. Zusaetzlich wollte ich dann auch gleich zusaetzliche Features bieten die meiner Meinung nach oft benoetigt oder zumindest sinnvoll sind.

Der naechste Schritt war also die ganze Software die ich benoetige zu besorgen, in den jeweils aktuellsten stabilen Versionen, und das Buch zu Scripts zu machen.

Nach nicht gerade wenig Arbeit, denn ich musste ja alles immer wieder testen, aendern, wieder testen, ... war dann EasyLFS 0.1 fertig. Mit Hilfe der Linux Live Scripts auf denen auch die LiveCD Slax aufbaut konnte ich das frisch kompilierte System zu einer LiveCD machen damit diese dann zur Installation genutzt werden kann.

Diese Version wurde aber nie veroeffentlicht da es noch ein paar Punkte gab die in dier erste verfuegbare Version einfliessen sollten. Also hab ich dann gleich mit der Arbeit an der naechsten Version weitergemacht. 0.2 war dann kurz verfuegbar, aber durch einen bloeden Fehler meinerseits schlug die Installation von Lilo fehl (es wurden keine Devices angelegt und somit konnte Lilo nicht in den MBR geschrieben werden).

Nun ist 0.2.1 verfuegbar und folgende Unterschiede zum LFS-Buch sind dort zu finden (von den unterschiedlichen Versionsnummern der eingesetzten Software abgesehen):
  • 3 verschiedene GCC-Versionen (3.4.6, 4.0.3 und 4.1.1)
  • verschiedene Dateisysteme zur Auswahl (ext2, ext3, ext4, reiserfs, jfs und xfs), inklusive der passenden FS-Utils
  • Lilo statt Grub
  • RAID-Unterstuetzung durch dmraid und mdadm
  • joe und nano als Alternativen zum Editor vim
  • SLocate als sicherere Alternative zu Locate
  • Festplattenmanagement und -ueberwachung mit hdparm und den smartmontools
  • Unterstuetzung fuer fertige Pakete durch dpkg und rpm
  • Lynx und wget um nach der Installation des Basissystems auch weitere Software aus dem Internet laden zu koennen
  • SELinux-Unterstuetzung, jedoch bisher nur grundlegend, es werden die entsprechenden Libraries und Tools installiert und auch andere Software wird, soweit moeglich, mit den entsprechenden Optionen kompiliert um SELinux zu unterstuetzen.
  • pkg-config
  • openssl
  • dcron
  • eject
  • fuse
  • iptables
  • kexectools
  • lmsensors
  • nettools
  • ntfsprogs
  • parted
  • pciutils
  • usbutils
  • which
Die meisten Punkte sind optional, aber koennen fuer einige User sicher interessant sein.

Nun auch gleich was unerfreuliches zur aktuellen Version, es gibt ein paar Bugs. Nichts wildes, aber trotzdem Bugs.
  • Das Startscript fuer den Cron-Daemon hat keine Ausfuehrrechte.
  • Wenn dies dann manuell behoben wird oder der Daemon von Hand gestartet wird vermisst dieser das Verzeichnis /etc/cron.d. Der Daemon laeuft auch ohne, aber so eine Meldung ist nicht schoen.
  • Wenn Vim nicht installiert wird funktioniert crontab nicht, daher wird in der naechsten Version Vim wieder Standard und nicht mehr optional.
  • Durch einen Bug im Shadow-Paket ist es nicht moeglich useradd und usermod eine Gruppe mitzugeben. Dadurch wird die Userverwaltung ein wenig in ihrer Funktion eingeschraenkt.
Fuer all diese Bugs sind bereits Loesungen gefunden und implementiert und werden somit in der naechsten Version nicht mehr existieren.

Weiterhin wird die naechste Version wohl endlich auch ein Resume-Script bekommen, vielleicht schon komplett, moeglicherweise nur partiell. Eine Hilfe koennte es trotzdem sein.
Natuerlich werden fuer die naechste Version auch wieder die Pakete aktualisiert werden und wenn ich die Zeit finde werd ich auch die SELinux-Unterstuetzung durch die Referenz-Policies erweitern.

So, das war es dann mal an Infos zur aktuellen Version, und dem kleinen Ausblick auf die naechste Version, bei der aber sowohl Versionsnummer und mitgelieferte Pakete noch ungewiss sind. Die Versionsnummer wird sich hauptsaechlich am Status des Resume-Scriptes orientieren. Wenn die Installation noch nicht vollstaendig resume-faehig ist dann wird es wohl 0.2.5, ansonsten wohl 0.3.

Wie ueblich bin ich natuerlich fuer Fragen, Anregungen und Kritik offen. Diejenigen die es mal ausprobiert haben sind natuerlich auch herzlich eingeladen hier ihre Erfahrungen und Bugreports zu posten.

Ach so: Bisher gibt es den Download-Link auf Anfrage via PM. Ich moechte den zur Zeit noch nicht oeffentlich posten da es sich bei dem Server nicht um meinen eigenen handelt sondern mir der Platz und Traffic freundlicherweise von unserem User Azi zur Verfuegung gestellt wird. Daher moechte ich zumindest versuchen seinen Server nicht all zu sehr zu belasten.
Das aktuelle CD-Image hat uebrigens ca. 460MB.

Uebrigens: Falls sich jemand fragen sollte warum ich das hier alles schreibe so moege ihm gesagt sein, dass ich das Projekt fuer interessierte User so transparent wie moeglich halten moechte und natuerlich auch Feedback aller Art versuche zur Verbesserung des Systems zu nutzen.
 
Hallo Dennis,

erstmal muss ich sagen: "Hut ab, so ein Projekt zu starten" :)

Aber: eine Frage hätte ich noch dazu:
Wie weit ist Dein System getestet, speziell ist die frage, ob Pakete wie KDE 3/4 ,Gnome2.16, OpenOffice2.x oder Java kompilierfähig ist... Ich hatte bei LFS Version 5.1 das Problem, dass sich verschiedene Sachen nicht mehr kompilieren liessen.

LG
Andy
 
Aktuell laeuft bei mir noch LFS 6.1.1, aber auch dieses ist bereits bei der Installation von mir etwas an meine Beduerfnisse angepasst worden. Im Grunde aehnlich wie auch jetzt auch mein EasyLFS vom Original-LFS abweicht. Diesen Beitrag, und viele vorherige auch, schreibe ich im Konqueror 3.5.2, unter eben diesem System.
OpenOffice und Java sind, so muss ich gestehen, die beiden einzigen Pakete die ich nicht selbst kompiliert hab. Bei Java hab ich es aus mir selbst unbekannten Gruenden nie probiert, bei OpenOffice hat mich diese Geschichte mit dem Solver bisher immer was abgeschreckt. Beides wollte ich aber auch irgendwann (wahrscheinlich bei der naechsten Installation) mal angehen.

Da EasyLFS also im Grunde mehr oder weniger meinem aktuellen Basissystem entspricht, nur eben mit aktuellerer Software, sehe ich im Grunde keine Bedenken, dass auch KDE oder Gnome lauffaehig sein sollten. Bei Gnome ist nur eben die unangenehme Arbeit mit der Installation von 1000 kleinen Paeckchen mit immer wieder neuen, lustigen Abhaengigkeiten. Soweit getestet hab ich das System aber noch nicht.
Im Moment muss ich auch etwas mit Plattenplatz haushalten (muss noch 2 Stunden Urlaubsvideo aufnehmen und auf DVD bannen), aber danach werd ich das dann mal testen.

Aber wie gesagt, es sollte eigentlich kein Problem sein, nur sind es bis KDE eben noch so einige Pakete die installiert werden wollen.
 
Da Du Java zum laufen bekommen hast, schlussfolgere ich mal ganz frech, dass das Java mit der Glibc/libstdc++ kompatibel ist - eben bei mir gab da damals ein paar probleme, und ich kam dann ums selbstkompilieren nicht drum herum ;) ... mein LFS,das
ich hatte, war später eher eine Anlehnung an Fedora Core, da ich die Init-Scripte vom LFS blöd fand und einiges auch nach FHS gebaut habe (zB. Samba etc). seit Kernel 2.16 hab ich's ned mehr probiert, der Umstieg auf das "neue" LFS war mir dann zu aufwendig, und ich hab es gelassen *g*

LG
Andy
 
Java laeuft soweit wunderbar, hab keine Probleme damit.
Ich muss aber auch sagen, dass ich mit Java nicht wirklich viel mache, es ist bei mir eigentlich ausschliesslich als Plugin in Konqueror und Firefox taetig.
Wenn ich mich recht erinnere hab ich aber auch mal kurz Eclipse probiert und ich glaub der lief auch.
 
Prima, ich freu mich schon, wenn mein Sys fertig ist.
Hab heute morgen noch vorm losgehen das Stage1 angefangen,
nach 15 min war er schon beim GCC am kompilieren, bin gespannt,
was los ist, wenn ich heim komme - aktueller Status kommt dann
sofort.

Vielleicht könnte man das ganze ja auch noch etwas automatisieren,
wenn beim kompilieren kein Fehler auftrat - so muss man eben erstmal
das näxte Stage anstossen, rein zeitlich könnte das Sys jetzt schon
fertig sein *motz* :D

Bis dahin
LG & Have a nice Day
Andy
 
Das Problem mit den einzelnen Stages ist hier chroot. Ich hatte es erst probiert alles in einem Rutsch zu haben, jedoch verliert das Script die Kontrolle wenn es in die chroot-Umgebung wechselt.
Daher eben die einzelnen Scripts.

Ich bin nicht ganz sicher, aber ich meine mich zu erinnern, dass man chroot mitgeben kann was dann nach dem Wechsel in die chroot-Umgebung ausgefuehrt werden soll, das waere eine Loesung, aber da werd ich erstmal schauen muessen ob ich mich da nicht falsch erinnere.
 
Alles in allem ist das wirklich sehr easy, sofern man zumindest weiss, was
Linux im Hintergrund macht. Hab mich erstmal gewundert, warum der plötzlich anfangen
wollte /dev zu formatieren - hab in der Config überlesen, dass man das da sagen muss,wo er formatieren soll :D ... danach gings aber problemlos und wirklich einfach.
Im übrigen stelle ich mich hier gerne als erfahrener LFS'er und Linux-Guru (bin letztes Jahr nur 40 Punkte am LPC-1 vorbei) bereit, bestimmt taucht ja noch das eine oder andere Problem auf, auch mit C/C++ kenn ich mich bissi aus, von daher werden wir hier schon was aufziehen *träum* :)
 
Ich bin fuer jede Hilfe und alles an Feedback dankbar.
Vor allem bei der Fehlersuche und -behebung ist es immer gut nicht allein zu arbeiten.

Und jeder hat ja auch ein anderes System, dass das ganze nun bei mir durchlaeuft und auch im QEmu heisst ja nicht, dass es auch bei jemand anderem genauso wunderbar durchlaeuft. Vor allem das ist eben wichtig fuer mich, zu wissen, dass das System fuer verschiedene Systeme geeignet ist.

Das kleinste System mit dem ich bisher getestet hab ich mein 586er Notebook mit 64MB RAM und keine Ahnung wieviel MHz (ich glaub 133 oder so, muesste ich nachsehen). Darauf konnte ich erfolgreich EasyLFS 0.1 installieren und betreiben. Das groesste bisher getestete System ist eben mein Athlon XP 3000+ mit 1GB RAM und 2.1GHz.
Auch 64-Bit- und MultiCore-/MultiCPU-Systeme waeren mal wirklich interessant.

Alles in Allem muss ich aber sagen, dass ich bisher mit der Entwicklung soweit zufrieden bin. Natuerlich ist es noch eine fruehe Version und es gibt noch viel zu verbessern, aber ich hab das Ganze ja unter anderem auch angefangen um daraus was zu lernen, und das hab ich auch.
Ich hab gut was ueber Shell-Scripting gelernt, was ich zuvor eigentlich so gut wie garnicht gemacht/gebraucht hab, und ich bin mal wieder was mehr mit C in Beruehrung weil es halt auch schonmal einen Patch zu schreiben gibt wenn mal was nicht kompiliert und man nichts im Netz finden kann.

Und vor allem hab ich eben jetzt eine gute Basis erreicht auf der ich aufbauen kann und so auch recht einfach Pakete hinzufuegen und/oder aktualisieren kann.
 
Zurück