Lfs

  • Thread starter Thread starter DerMitSkill
  • Start date Start date
D

DerMitSkill

Guest
Hallo :)

Ich den letzen Tage beschäftige ich mit Linux vom Scratch. Schon seit langem habe ich meine Software auf einem Debian selbst kompiliert, was mich nun dazu gebracht hat, das komplette Betriebssystem selbst zu bauen. So weit ist das kein Problem.

Allerdings möchte ich das minimalste vom Minimalen. Sprich, wirklich nur das, was ich benötige. Bei Linux from Scratch sind immer noch einige Pakete dabei, die ich im Endeffekt nicht benötige. Im Grunde kein Problem, diese einfach weg zu lassen, allerdings werden natürlich welche von der Software (Apache, PHP, MySQL, eigene Backup- und Failoverlösung) benötigt, die auf dem Linux laufen soll.

Problem: Wie finde ich heraus, welche Software zum Betrieb der Software benötigt wird? Da ich die Software auf dem Hostsystem bzw. dem temporärem Sytsem in mein Linux kompiliere, ist später einiges an Software nicht mehr auf dem Linux, was auf dem Hostsystem verfügbar war.

Anderes Thema: Wie kann ich das LFS auf anderen Rechner installieren?
Nach meiner Theorie sollte es wie folgt gehen.

Bisherige System, auf dem LFS läuft:
- LiveCD booten
- LFS-Partition mounten
- Alle Dateien tar'en
- tar-Archiv auf DVD brennen/auf USB-Stick oder externe Festplatte kopieren

System, auf dem LFS laufen soll:
- LiveCD booten
- Festplatte partitionieren
- Dateisystem erstellen
- Partition mounten
- DVD/USB-Stick oder externe Festplatte mounten
- tar-Archiv auf Partition extrahieren
- MBR schreiben

Sollte das klappen? Linux ist ja nicht Windows.. deshalb sollt's doch mit einfachem kopieren funktionieren?

Viele Grüße
 
Allerdings möchte ich das minimalste vom Minimalen. Sprich, wirklich nur das, was ich benötige.
Wenn Du es wirklich auf die Spitze treiben willst, dann nimm eine schlankere libc als die von GNU bereit gestellte (z. B. uClibc oder dietlibc). Allerdings ist das nicht ganz ohne - nicht jede Software lässt sich auf einem so verschlankten System übersetzen; bei uClibc sind es aber schon ziemlich viele.

Problem: Wie finde ich heraus, welche Software zum Betrieb der Software benötigt wird?
Normalerweise liefert jede Software eine Liste an benötigten Abhängigkeiten mit, die über eine standardkonforme libc hinausgehen (oder sollten es zumindest). Diese Liste findet man häufig in den originalen Quellcode-Sets, die auf den Herstellerseiten zum Download angeboten werden (meist README oder INSTALL).

...
- tar-Archiv auf Partition extrahieren
- MBR schreiben

Sollte das klappen? Linux ist ja nicht Windows.. deshalb sollt's doch mit einfachem kopieren funktionieren?
Tut es. Allerdings bitte nicht vergessen, ggf. hardware-spezifische Konfigurationen anzupassen (z. B. udev & Co, Name von Blockgeräten, etc.)
 
Wenn Du es wirklich auf die Spitze treiben willst, dann nimm eine schlankere libc als die von GNU bereit gestellte (z. B. uClibc oder dietlibc). Allerdings ist das nicht ganz ohne - nicht jede Software lässt sich auf einem so verschlankten System übersetzen; bei uClibc sind es aber schon ziemlich viele.

Danke für den Tipp :-)

Normalerweise liefert jede Software eine Liste an benötigten Abhängigkeiten mit, die über eine standardkonforme libc hinausgehen (oder sollten es zumindest). Diese Liste findet man häufig in den originalen Quellcode-Sets, die auf den Herstellerseiten zum Download angeboten werden (meist README oder INSTALL).

Das ist mir bewusst. Diese "Liste" enthält aber auch Software, die evtl. nur zum kompilieren benötigt wird. Wenn ich diese nun auf dem LFS installiere, obwohl ich sie ja nur zum kompilieren benötige, was ich ja auf dem Hostsystem bzw. dem temporären System tue, habe ich wieder überflüssige Software drauf.

Tut es. Allerdings bitte nicht vergessen, ggf. hardware-spezifische Konfigurationen anzupassen (z. B. udev & Co, Name von Blockgeräten, etc.)

Gut. Das ist klar ;-)
 
Sieh Dir Source-basierte Distros wie Gentoo und Arch an, dort findest Du die Buildtime- und Runtime-Abhängigkeiten, sowie einige zwingend nötige (Security-)Patches.
Tue Dir selbst einen Gefallen und unterschätze nicht den täglichen(!) Wartungsaufwand von mindestens zwei Stunden (Wert aus eigener Erfahrung) bei einer eigenen produktiven Distribution. Das Sammeln und Evaluieren der nötigen Patches und das Verfolgen etlicher Mailinglists ist sehr zeitaufwendig und muss täglich erfolgen. Ich habe damals nach knapp einem Jahr kapituliert und auf Gentoo Hardened zurückgegriffen.
 
Das ist mir bewusst. Diese "Liste" enthält aber auch Software, die evtl. nur zum kompilieren benötigt wird.
Joe User hat ja schon eine Möglichkeit genannt; ich würde hier noch die FreeBSD-Ports ins Spiel bringen. Einfach auf http://www.freshports.org/ nach dem gewünschten Paket suchen, dem CVSWeb-Link folgen und das Makefile anschauen. Dort finden sich neben Abhängigkeiten für den Betrieb auch Abhängigkeiten für den Bau eines Pakets (LIB_DEPENDS, RUN_DEPENDS, BUILD_DEPENDS).
 
Back
Top