{"id":161,"date":"2011-02-04T10:41:31","date_gmt":"2011-02-04T08:41:31","guid":{"rendered":"http:\/\/blog.mageia.org\/de\/?p=161"},"modified":"2011-03-21T14:12:47","modified_gmt":"2011-03-21T12:12:47","slug":"bootstrapping-wie-bootstrapping-ich-will-mageia-isos","status":"publish","type":"post","link":"https:\/\/blog.mageia.org\/de\/2011\/02\/04\/bootstrapping-wie-bootstrapping-ich-will-mageia-isos\/","title":{"rendered":"Bootstrapping? Wie Bootstrapping? Ich will Mageia ISOs!"},"content":{"rendered":"<p>Wir haben unsere erste Alpha ISO f\u00fcr Ende Januar angek\u00fcndigt &#8230; aber noch gibt es sie nicht. Verdammt! Was ist denn da los? Lassen Sie es mich erkl\u00e4ren.<\/p>\n<h2>Es war einmal das Bootstrapping &#8230;<\/h2>\n<p>Wie bereits im letzten Blog-Eintrag beschrieben, lief unser Build-System in den letzten Wochen auf Hochtouren und <a href=\"http:\/\/pkgsubmit.mageia.org\">mehr als 4.000 Pakete wurden bereits erstellt<\/a>. Diese Sammlung an Paketen nennen wir Bootstrap.<\/p>\n<p>Wie Sie auf <a href=\"http:\/\/de.wikipedia.org\/wiki\/Bootstrapping_(Informatik)\">Wikipedia<\/a> sehen k\u00f6nnen, ist ein Bootstrap ein kleiner Bootloader, welcher genutzt wird ein gr\u00f6\u00dferes System zu starten. Im Falle von Mageia ist mit Bootstrap der aktuelle Schritt gemeint, in dem das Basissystem und die meisten Abh\u00e4ngigkeiten erstellt werden, so dass alle weiteren Anwendungen mit Mageias eigenen Werkzeugen erstellt werden k\u00f6nnen. Jede Linux Distribution nutzt eigene Pakete, um alle Pakete in ihren Repositories zu erzeugen.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/blog.mageia.org\/wp-content\/uploads\/2011\/02\/White_chicken_egg_square.jpg\" rel=\"lightbox[161]\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-439\" title=\"White_chicken_egg_square\" src=\"http:\/\/blog.mageia.org\/en\/wp-content\/uploads\/2011\/02\/White_chicken_egg_square-300x300.jpg\" alt=\"\" \/><\/a><\/p>\n<p>Danach kommt der komplizierte Teil der Geschichte. Eine Art Henne-Ei-Problem. Einige systemnahe Pakete, auch Toolchain genannt, ben\u00f6tigen <em>sich selbst zum kompilieren<\/em>: gcc, glibc, &#8230; Diese Pakete existieren bereits bei vielen Distributionen, so dass das Bootstrapping einfach bei einer dieser Distributionen beginnen kann.<\/p>\n<p>Bei Mageia haben wir uns entschieden Mandriva Pakete zu nutzen, da die erste Ver\u00f6ffentlichung auf Cooker basieren wird. Um diese nutzen zu k\u00f6nnen, mussten wir sie jedoch zun\u00e4chst bereinigen:<\/p>\n<ul style=\"position: static; z-index: auto;\">\n<li>entfernen von Mandriva spezifischen Bits und Teilen (RPM Makros, urheberrechtlich gesch\u00fctzte Elemente wie Bilder, Symbole, veraltetes Material, &#8230;)<\/li>\n<li>Entfernen nicht ben\u00f6tigter Bedingungen in den Definitionen f\u00fcr die Anforderungen zum Paketbau<\/li>\n<li>senden von Patches an die eigentlichen Projekte, so dass wir uns nicht um diese k\u00fcmmern m\u00fcssen und alle davon profitieren k\u00f6nnen, wenn sie akzeptiert werden<\/li>\n<li>tempor\u00e4res entfernen h\u00f6herer Abh\u00e4ngigkeiten, sofern sie derzeit noch nicht erzeugt wurden und nicht f\u00fcr Mageia vorhanden sind (Java, Mono).<\/li>\n<\/ul>\n<p>Wenn all das geschehen ist, kann jedes Paket f\u00fcr Mageia im Mageia Build-System erzeugt werden. Anschlie\u00dfend wird der jeweils verantwortliche Paketbauer das Paket pr\u00fcfen und gegebenenfalls weitere Abh\u00e4ngigkeiten erg\u00e4nzen, sobald diese verf\u00fcgbar sind.<\/p>\n<h3>Schauen wir uns ein Beispiel an<\/h3>\n<p>Der gcc ist ein C-Compiler. Er ist ein wichtiger Bestandteil des Basissystems, weil er von vielen Programmen ben\u00f6tigt wird, die aus den Quelltexten erstellt werden m\u00fcssen.<\/p>\n<p>Mageia braucht sein eigenes gcc-Paket, um f\u00fcr sich alle Programme erstellen zu k\u00f6nnen, welche die Programmiersprache C benutzen (sog. dogfooding&#8220; = hier: Verwendung eines eigens selbsterstellten Programms, um weitere zur eigenen Nutzung zu erstellen). F\u00fcr Mageia ist dies ein entscheidender Arbeitsschritt, denn, wenn man es richtig macht, kann so sichergestellt werden, dass alles glatt l\u00e4uft, w\u00e4hrend gleichzeitig<br \/>\nm\u00f6gliche Probleme aufgelistet und korrigiert werden k\u00f6nnen. Dann werden wir den gcc f\u00fcr Mageia erstellt haben.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/blog.mageia.org\/de\/wp-content\/uploads\/2011\/02\/bootstrap1.png\" rel=\"lightbox[161]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-451\" title=\"Bootstrap Buildsystem\" src=\"http:\/\/blog.mageia.org\/de\/wp-content\/uploads\/2011\/02\/bootstrap1.png\" alt=\"\" width=\"809\" height=\"394\" \/><\/a><\/p>\n<p>Wenn die Toolchain erstellt wurde, k\u00f6nnen wir den Mageia-Kernel, die X-Treiber, den X-Server, etc. neu bauen &#8211; und schlie\u00dflich\u00a0auch anwenderorientierte Programme. Ein mittels Bootstrapping erstelltes Betriebssystem bietet Paketbauern nicht mehr als einige Libraries und einen Compiler. Bevor das Team der Paketbauer wirklich ernsthaft mit der Arbeit beginnen kann, m\u00fcssen erst einmal noch zus\u00e4tzliche Kernsystempakete hinzugef\u00fcgt werden. F\u00fcr ihre Erstellung sind bei vielen Paketen einige abh\u00e4ngige Pakete notwendig, die wiederum einige andere abh\u00e4ngige Pakete erfordern.<\/p>\n<p>Letztendlich werden Tausende von Paketen ben\u00f6tigt, um die wichtigsten Systembestandteile zu erzeugen welche zur Erstellung von anwenderorientierten Programmen ben\u00f6tigt werden.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/blog.mageia.org\/de\/wp-content\/uploads\/2011\/02\/packages.png\" rel=\"lightbox[161]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-446\" title=\"Abh\u00e4ngigkeitskaskade\" src=\"http:\/\/blog.mageia.org\/de\/wp-content\/uploads\/2011\/02\/packages.png\" alt=\"\" width=\"578\" height=\"239\" \/><\/a><\/p>\n<p>Nat\u00fcrlich ist das nur ein grober Umriss, ohne all die spannenden Dinge, die so w\u00e4hrend des Rebuild-Prozesses passieren k\u00f6nnen. Aber so geht das im Gro\u00dfen und Ganzen.<\/p>\n<h2>Warum ist Bootstrapping so wichtig?<\/h2>\n<p>Wie bereits gesagt handelt es sich beim Bootstrappingprozess um einen Arbeitsschritt bei dem Paketbauer und Spezialisten f\u00fcr das Basissystem sich die Zeit nehmen k\u00f6nnen, die Konsistenz der Distribution auf der untersten systemnahen Ebene zu \u00fcberpr\u00fcfen, Abh\u00e4ngigkeiten zu bereinigen und das Basissystem in Einklang mit den Statuten der Distribution zu bringen. Also ist Bootstrapping nicht ausschlie\u00dflich etwas f\u00fcr Leute, die sich f\u00fcr Forks interessieren <img decoding=\"async\" class=\"wp-smiley\" src=\"http:\/\/blog.mageia.org\/wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":)\" \/><\/p>\n<p>\u00dcbrigens werden sich das Verbessern des Bootstrappings sowie das Schreiben einer ordentlichen Dokumentation dazu als \u00e4u\u00dferst n\u00fctzlich erweisen, wenn neue Prozessorarchitekturen hinzugef\u00fcgt und unterst\u00fctzt werden. Dann braucht man eine anst\u00e4ndige Toolchain, ein Basissystem\u2026 Das selbe Lied.<\/p>\n<h2>ISOs!<\/h2>\n<p>Doch zur\u00fcck zur Ausgangsfrage: Wann k\u00f6nnen wir mit einem ersten Test-ISO rechnen? Der Bootstrappingprozess wurde vor einem Monat begonnen und sollte morgen beendet sein. Ungef\u00e4hr <strong>1.500 Stunden<\/strong> waren notwendig, um die vorhandenen Pakete zu erstellen. Darin eingerechnet sind erfolgreich erstellte Pakete, aber auch Fehlschl\u00e4ge, Rebuilds, technische Fragen, die entschieden werden mussten, \u00fcberraschend aufgetretene Probleme, Diskussionen\u2026<\/p>\n<p>Nun sind wir soweit <img decoding=\"async\" class=\"wp-smiley\" src=\"http:\/\/blog.mageia.org\/wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":)\" \/>. Das Repository ist fertig f\u00fcr erste Test des Paketbaus, unser Rechner zur ISO-Erstellung wurde ordentlich konfiguriert und die Alpha1 wird f\u00fcr den 15. Februar erwartet; bleiben Sie am Ball, bald gibt es mehr Neuigkeiten zur k\u00fcnftigen Roadmap!<\/p>\n<p><em>(Original gepostet am 03.02.2010 von <a title=\"View all posts by ennael\" href=\"http:\/\/blog.mageia.org\/?author=2\">ennael<\/a>)<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wir haben unsere erste Alpha ISO f\u00fcr Ende Januar angek\u00fcndigt &#8230; aber noch gibt es sie nicht. Verdammt! Was ist denn da los? Lassen Sie es mich erkl\u00e4ren. Es war einmal das Bootstrapping &#8230; Wie bereits im letzten Blog-Eintrag beschrieben, &hellip; <a href=\"https:\/\/blog.mageia.org\/de\/2011\/02\/04\/bootstrapping-wie-bootstrapping-ich-will-mageia-isos\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[22,23,24,25,26,3,27],"class_list":["post-161","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-bootstrap","tag-build","tag-distribution","tag-iso","tag-linux","tag-mageia","tag-packaging"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.mageia.org\/de\/wp-json\/wp\/v2\/posts\/161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mageia.org\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mageia.org\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/de\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/de\/wp-json\/wp\/v2\/comments?post=161"}],"version-history":[{"count":12,"href":"https:\/\/blog.mageia.org\/de\/wp-json\/wp\/v2\/posts\/161\/revisions"}],"predecessor-version":[{"id":167,"href":"https:\/\/blog.mageia.org\/de\/wp-json\/wp\/v2\/posts\/161\/revisions\/167"}],"wp:attachment":[{"href":"https:\/\/blog.mageia.org\/de\/wp-json\/wp\/v2\/media?parent=161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mageia.org\/de\/wp-json\/wp\/v2\/categories?post=161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mageia.org\/de\/wp-json\/wp\/v2\/tags?post=161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}