Table of Contents
Eine eigene Geschmackrichtung aus den Quelltexten kochen
Einleitung
Willkommen zu dieser Anleitung! Sie will die Grundlage zu einem zweiten SliTaz-scratchbook werden, und erklärt, wie man SliTaz vollständig aus den Quelltexten, inklusiv Werkzeugskasten neue erstellen kann. Die ganze Arbeit erfolgt unter Einsatz des tazwok-experimental (zur Zeit noch im Entwicklungsstadium alpha!). Selbst, wenn man zugibt, dass die Skripte einige dämliche Tücken haben, sollten nachstehende Arbeitsabschnitte mühelos zum Ziel führen. Rückmeldungen hinsichtlich der etwaige Probleme werden gern angenommen (tazpkg info tazwok-experimental wird Ihnen die email weitergeben).
Mit einigen Kenntnissen über die klassischen Werkzeuge von SliTaz und den Basisbefehlen von Linux versteht man besser, was im Verlauf dieser Anleitung passiert. Aber auch brav die Befehl kopieren/einfügen würde voraussichtlich auch genügen.
Erläuterung
Tazwok-experimental schlägt die Instrumente zum Backen eines Woks von den Quelltexten bei Benützung eines minimalen chroot vor. Dabei muss man eine spezielle Wokversion einsetzen. Diese Version nennt sich wok-experimental. Es enthält die notwendigen patchen, mit welchen das cooking-Wok verändert werden muss. Die Erklärungen zur Einrichtung des Woks experimental sind hier : Das experimentelle Wok vorbereiten zu finden.
Was braucht man?
- Ein autonom oder installiert funktionsfähiges Betriebssystem der Distribution SliTaz cooking ; man kann auch folgende ISO slitaz-experimental-base benützen.
- tazwok-experimental-0.0.2, tazchroot-0.0.1, libtaz-0.0.1. Hinweis: tazwok-experimental installieren macht das klassische tazwok unbrauchbar.
- Eine internet-Verbindung, um die Quellen runterzuladen.
Schritte
- Die chroot-Umgebung aufbauen (bei der vorliegenden Anleitung wird von der neuen Werkzeugkette aus dem Depot experimental ausgegangen; aber die Werkzeugkette von cooking dürfte auch brauchbar sein).
- Eine neue Kette von temporären Werkzeuge selber backen: es handelt sich um eine Reihe von Werkzeugen aus einer verkreuzten Kompilation, mit welcher es möglich werden soll, die ‘richtigen’ künftigen Werkzeuge (aus diesen Werkzeugen entstehen dann ordentliche Pakete) ohne dass eine Bindung an Teilen des Gastgebersystems benötigt wird.
- Den notwendigen Vorrat von diesen endgültigen Werkzeugen backen.
- Einige weitere Pakete eines der Slitaz-Rezepte backen.
- Eine ISO-Datei damit anfertigen.
- Brennen, neu starten & geniessen :).
Instrumente installieren
Das Depot zur experimentellen Version als unverdaut hinzufügen:
tazpkg add-undigest experimental http://people.slitaz.org/~gokhlayeh/experimental/packages
Diesem Depot Vorang vor dem Hauptdepot geben:
echo experimental > /var/lib/tazpkg/priority
Die Rezeptzutaten installieren:
tazpkg get-install tazwok-experimental tazpkg get-install tazchroot
Den Vorrat an Instrumenten kochen
Konfiguration für das chroot:
tazwok configure-chroot --SLITAZ_VERSION=experimental
Hat man weniger als 1,5Gb freien leeren RAM, dann kann man das minimal chroot im RAM einsetzen, um die Bearbeitungszeit zu beschleunigen:
sed 's~chroot_dir=.*~chroot_dir=/tmp/chroot-experimental~' -i /home/slitaz/experimental/tazchroot.conf
Die Pakete des Werkzeugkasten mit einem einzigen Befehl erzeugen:
tazwok cook-toolchain --SLITAZ_VERSION=experimental
Am Ende sollte das chroot gelöscht worden sein. Falls man seinen Platz vorher geändert hatte, muss man das jetzt von Hand machen:
rm -r /tmp/chroot-experimental
Die Pakete des Werkzeugkastens sind jetzt fertig zur Benützung. Sie liegen jetzt im Depot packages-incoming vor. Wenn alles korrekt ablief, kann man sie jetzt in das Depot für klassische Pakete mit
tazwok check-incoming --SLITAZ_VERSION=experimental
weiterschieben.
tazpkg muss jetzt von Ihnen erfahren, dass Sie eine lokale Version von experimental bereitgestellt haben:
echo "/home/slitaz/experimental/packages" > /var/lib/tazpkg/undigest/experimental/mirror tazpkg recharge
Bitte dann das Werkzeugkasten mit der Ausnahme des Herzen (Übersetzung lehnt sich an die blumige Sprache der Vorlage an) linux-api-headers/glibc/binutils/gcc über sich selber rüberkochen, was das Ganze stabilisiert; dies ist zwar nicht unbedingt erforderlich, führt aber zu einer besseren Situation hinsichtlich der kreisförmigen Abhängigkeiten. Dies stellt die Konsistenz der Werkzeugskette vor und nach der Aktualisierung der Pakete sicher, die zum Herzen in der Werkzeugskette nicht gehören sicher. Das Herz der Werkszeugskette selber sollte aber nie derart aktualisiert werden, sondern durch die Benützung des Skripts cook-toolchain.
tazwok chroot --SLITAZ_VERSION=experimental tazwok build-depends toolchain-cooklist | sed '1,/^gcc$/d' > /tmp/consolider.list tazwok cook-list /tmp/consolider.list rm /tmp/consolider.list
Da alles erneuert wurde, muss man jetzt das Depot :
tazwok check-incoming --SLITAZ_VERSION=experimental
wieder aktualisieren.
Das vorherige chroot ist jetzt nutzlos. Entfernen, damit tazwok nächstes Mal in der Lage ist eine neue Version der Werkzeugskette herzustellen :
# Adresse classique: rm -r /home/slitaz/experimental/chroot # Chroot dans /tmp: rm -r /tmp/chroot-experimental
Die Pakete für ein Rezept kochen
Als Erstes braucht man die Daten zum Rezept für cooking:
cd /home/slitaz/experimental/flavors hg clone http://hg.slitaz.org/flavors .
Die Zutatenliste für das Rezept erzeugen. Hinweis: Hinterher setzt man dort, wo das Wort SAVEUR (Geschmacksnote) steht, den Namen des jeweiligen Rezepts in den Befehlen ein.
tazwok gen-cooklist --list=/home/slitaz/experimental/flavors/SAVEUR/packages.list > /tmp/SAVEUR.list
Diese Liste enthält bereits zubereitete Pakete; entfernen!
cat /tmp/SAVEUR.list | while read p; do grep -q ^$p$ /home/slitaz/experimental/packages/packages.txt && \ sed "/^$p$/d" -i /tmp/SAVEUR.list done
Die Zutatenliste ist jetzt fertig, um die Pakete zu bereiten:
tazwok cook-list /tmp/SAVEUR.list
Das Depot packages aktualisieren:
tazwok check-incoming
In Vorbereitung zum nänchsten Schritt, bitte jetzt in der chroot-Umgebung bleiben.
Die ISO-Datei aufbauen
Am Augenblick benützt tazlito noch /home/slitaz/flavors. Deshalb ein symbolisches link anlegen:
ln -s /home/slitaz/experimental/flavors /home/slitaz
Die ISO-Datei als experimentelle Version konfigurieren:
cd /home/slitaz/flavors/SAVEUR mkdir -p rootfs/etc echo experimental > rootfs/etc/slitaz-release
Dann die ISO-Datei so konfigurieren, dass das eigene lokale Depot zum Einsatz kommt:
mkdir -p rootfs/var/lib/tazpkg echo /home/slitaz/experimental/packages > rootfs/var/lib/tazpkg/mirror
Lieber tazwok-experimental als tazwok benützen und tazchroot anhängen:
sed 's/tazwok/tazwok-experimental/' -i packages.list echo tazchroot >> packages.list
Das Rezept SAVEUR einpacken:
tazlito pack-flavor SAVEUR
Das Rezept SAVEUR holen:
tazlito get-flavor SAVEUR
Die ISO-Datei erzeugen:
tazlito gen-distro
Die ISO-Datei im eigenen home hinterlegen:
mv /home/slitaz/distro/slitaz-SAVEUR.iso /home/slitaz/distro/slitaz-SAVEUR.md5 /home/slitaz/experimental/iso
Die chroot-Umgebung verlassen:
exit