SliTaz GNU/Linux official and community documentation wiki.
.png
This translation is older than the original page and might be outdated. See what has changed.
Translations of this page:

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

Folgende Transaktionen müssen als root (Verwalter) stattfinden. Falls man die Werkzeugkette von cooking benützt braucht man die Depots von experimental nicht hinzuzufügen.

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

Folgende Kommando-Zeilen gehen von einem Woks aus, das man unter folgender Adresse findet: /home/slitaz/experimental/wok. Im Fall einer anderen Wok-Voreinstellung kann man die Option –SLITAZ_DIR=adresse hinzüfügen; ‘adresse’ entspricht hier /home/slitaz. Diese Option ist jedes Mal zu verwenden, wo –SLITAZ_VERSION angegeben wird. Man kann aber auch SLITAZ_VERSION und SLITAZ_DIR global via /etc/slitaz/slitaz.conf festlegen.

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

Man kann diese Schritte so oft wiederholen, wie man neue Pakete zum eigenen Depot hinzufügen will.

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
 
de/devnotes/cook-flavor-from-scratch.txt · Last modified: 2011/01/23 02:23 by gokhlayeh