Hi,
"...Diese wollte ich in der Chroot-Umgebung folgendermaßen vereinfachen [...]:
Das vereinfacht aber nix außer dem Verzeichnisbaum, aber der ist ja nun wirklich nicht gerade hochkomplex. Du hast dabei wirklich nichts gewonnen, glaub's mir.
Da war ich schonlängst! Ich will nur _EIN_ Verzeichnis für Binäre (/bin) und _EIN_ weiteres für sicherheitsrelevante Programme (/sbin) haben. Daraus folgt zwangsläufig eine Zuordung von Parametern für die Installationen der einzelen Programme beim Aufruf von ./configure, sonst würde ich hier nicht nachfragen und mit den allseits nachzulesenden Varianten des simplen kopierens nehmen.
Das funktioniert dann ähnlich, wie das statische Linken. Du kannst alles in der normalen Umgebung bauen (dann halt mit den entsprechenden Optionen beim ./configure) und die so erhaltenen Teile in den chroot kopieren. Du mußt wirklich nix, aber auch rein gar nix im chroot selber bauen. Ich glaube auch nicht, das Gentoo dafür vorgesehen ist, das es sich in einem chroot installiert, das müßtest Du händisch machen. Also erstmal alle Dev-Tools statisch gelinkt bauen und in's chroot rüberkopieren, da der Gentoo-GCC ja nicht funktioniert, wie Du sagtest. Dann kannst Du mit denen dann Deine Pakete im chroot selber bauen.
Wenn Du der Meinung bist, mein Weg sei der "schwerere Weg", so stimme ich Dir auch zu. Aber vielleicht ist Dir auch mal in den Sinn gekommen, daß dieser in allen Punkten der Durchführung vom Installieren bis zum eigentlichen Einsatz erheblich mehr Bezug zum Späteren Einsatz aufweist.
Ein Einsatz in einem Dateisystem, das nur 5 Verzeichnisse erlaubt? Kenne ich nicht. Könnte ich Dir aber bauen >;->
Das Installieren von Programmen innerhalb einer Chroot-Umgebung steht nicht zur Disposition, so lange das einzige Argument ist, daß es mühseliger ist.
Diese "mühseliger" zieht jedoch einen ganzen Rattenschwanz an Konsequenzen nach sich. So ist "mühseliger" stets ein Quell an Fehlern. An _unnötigen_ Fehlern!
Grundprinzip beim Programmieren ist KISS:"Keep it simpel, stupid!".
Ein heiliges Prinzip bei Flugzeugentwerfern ist:"Entweder ein neues Flugzeug mit alten Motoren oder ein altes Flugzeug mit neuen Motoren, niemals beides gleichzeitig!", das haben die guten Programmierer ebenfalls übernommen.
Es sind verdammt viele blutige Nasen die Ursache dieser beiden Sprüche, warum ignorierst Du sie so vehement?
Warum willst unbedingt die ganze, lang gewachsene und standardtisierte Unix-Verzeichnisstruktur umschmeißen? Weil Du meinst, das irgendwann einmal gebrauchen zu können? Wann denn bitteschön und vor allem: wobei? Klar gäbe es Einsatzmöglichkeiten, aber möchtest Du wirklich Deine eigene Distribution herausgeben? Das würde sehr tiefes Systemwissen erfordern und da könnte so ein Experiment wie Deines helfen. Aber dafür mußt Du das dafür nötige Handwerkzeug schon sehr gut, besser: perfekt beherrschen. Du mußt die Interna des ELF-Formates kennen wie Deine Westentasche, den Linker, den Compiler ...
Partikelwissen -- und mehr kannst Du auf Deine jetzige Methode nicht erwerben -- führt Dich nirgendwohin. Ich kann Distributionen erstellen, das gehört zu meinem Job und ich habe verdammt lange gebraucht bis ich dahin kam. (da ich also weiß, was für eine Schweinearbeit das ist, tue ich das auch nicht sondern nehm ein *BSD ;-) Ich kann Dich also an die Hand nehmen und Dich durch die Fährnisse Deines Vorhabens führen. Danach weißt Du ganz genau, _wie_ es funktioniert. Du weißt aber kein Stück _warum_ es so funktioniert. Und genau dieses Warum ist nötig, damit Du daraus lernen kannst.
Mach also alles einfach und der Reihe nach:
- chroot durch einfaches Kopieren füllen
- das eine oder andere Programm dort testen
- den Umgang mit den Dev-Tools erlernen
- das ELF-Format kennenlernen und das Linken
5-99) Üben - dem chroot eine eigene Verzeichnisstrukur aufbürden
- alle Dev-Tools in's chroot packen
- erste Versuche *from scratch* im chroot
103-999) Üben - Alle Distributionen "irgendwie Scheiße" finden und sich selber eine bauen.
Während all dem hast Du noch nebenbei und auf die harte Tour C (ist nunmal immer noch _die_ Unixsprache wenn's nah an's Metall geht), Shellskript, Perl, Misc. und Fluchen gelernt. Und auch nicht nur oberflächlich sondern bis in's Mark!
Ich kann natürlich nicht behaupten, das man nicht auch alles auf einmal lernen kann, aber dran glauben muß ich nicht. Das einzige, was möglich ist: wenn Du eine richtig faule Socke und vor allem geschickt darin bist, dann kannst Du vielleicht mit der Zeit unterscheiden, was Du wissen mußt, nachschlagen kannst und was Du an Dritte abgeben darfst.
Das Aufsetzen eines gentoo-System ist auch mühseliger, als das kopieren eines SuSE-Systems von der DVD.
Naja, was das betrifft ist es doch eher Geschmacksache, viel Unterschied finde ich da nicht. Aber ich kenne die ganz neuen SuSEs auch nicht.
so short
Christoph Zurnieden