rev |
line source |
slaxemulator@4
|
1 ====== Cuire une saveur depuis les sources ======
|
slaxemulator@4
|
2
|
slaxemulator@4
|
3 ===== Introduction =====
|
slaxemulator@4
|
4
|
slaxemulator@4
|
5 Bienvenue dans ce tutoriel! C'est la base pour un second //scratchbook//, qui explique comment compiler entièrement SliTaz depuis les sources, chaîne d'outils comprise. Tout le travail est fait en utilisant //tazwok-experimental// (actuellement en phase de développement alpha). Même si les scripts ont quelques failles majeures, les étapes expliquées ici devrait accomplir cette tâche sans problème. Merci de d'informer l'auteur d'un quelconque problème (//tazpkg info tazwok-experimental// vous donnera mon mail).
|
slaxemulator@4
|
6
|
slaxemulator@4
|
7 Avoir quelques connaissances à propos des outils classiques de SliTaz et des commandes de base vous aidera à comprendre ce qui se passe durant ce tutoriel. Cela dit, copier/coller simplement les commandes fonctionnera probablement.
|
slaxemulator@4
|
8
|
slaxemulator@4
|
9 ==== Explication ====
|
slaxemulator@4
|
10
|
slaxemulator@4
|
11 //Tazwok-experimental// propose des outils pour cuire le [[fr:terms:W?&#wok|wok]] depuis les sources en utilisant un //chroot// minimal. Vous devrez utiliser une version spéciale du wok, appelée wok-experimental. Il contient des patchs nécessaires, qui doivent être appliqués au wok //cooking//. Les explications à propos de la mise en place du wok //experimental// se trouvent ici : [[fr:devnotes:prepare-experimental|Préparer le wok experimental]].
|
slaxemulator@4
|
12
|
slaxemulator@4
|
13 **Outils requis**
|
slaxemulator@4
|
14 * Un système SliTaz //cooking// fonctionnel (autonome ou installé); vous pouvez aussi utiliser l'ISO [[http://people.slitaz.org/~gokhlayeh/experimental/iso/slitaz-experimental-base.iso|slitaz-experimental-base]].
|
slaxemulator@4
|
15 * //tazwok-experimental-0.0.2, tazchroot-0.0.1, libtaz-0.0.1//. Note: installer //tazwok-experimental// supprimera le //tazwok// classique.
|
slaxemulator@4
|
16 * Une connexion internet pour télécharger les sources.
|
slaxemulator@4
|
17
|
slaxemulator@4
|
18 **Étapes**
|
slaxemulator@4
|
19 * Faire le //chroot// (dans ce tutoriel nous utilisons les paquets de la nouvelle chaîne d'outils depuis le dépôt //experimental//; mais cela devrait aussi fonctionner avec la chaîne d'outils de //cooking//).
|
slaxemulator@4
|
20 * Cuire une chaîne d'outils temporaire: c'est une chaîne d'outils de compilation croisée qui va permettre de cuire la "vrai" chaîne d'outils (celle qui sera empaquetée) sans qu'elle soit liée à quoique ce soit provenant du système hôte.
|
slaxemulator@4
|
21 * Cuire la chaîne d'outils définitive.
|
slaxemulator@4
|
22 * Cuire quelques autres paquets d'une des saveur SliTaz.
|
slaxemulator@4
|
23 * Préparer l'ISO.
|
slaxemulator@4
|
24 * Graver, démarrer & savourez :).
|
slaxemulator@4
|
25
|
slaxemulator@4
|
26 ==== Installer les outils ====
|
slaxemulator@4
|
27
|
slaxemulator@4
|
28 <note tip>Les commandes suivantes doivent être exécutées en tant qu'administrateur. Vous n'avez pas besoin d'ajouter le dépôt //experimental// si vous souhaitez utiliser la chaîne d'outils de //cooking//.</note>
|
slaxemulator@4
|
29
|
slaxemulator@4
|
30 Ajouter le dépôt //experimental// en tant qu'indigeste:
|
slaxemulator@4
|
31 <code>
|
slaxemulator@4
|
32 tazpkg add-undigest experimental http://people.slitaz.org/~gokhlayeh/experimental/packages
|
slaxemulator@4
|
33 </code>
|
slaxemulator@4
|
34
|
slaxemulator@4
|
35 Lui donner la priorité sur le dépôt principal:
|
slaxemulator@4
|
36 <code>
|
slaxemulator@4
|
37 echo experimental > /var/lib/tazpkg/priority
|
slaxemulator@4
|
38 </code>
|
slaxemulator@4
|
39
|
slaxemulator@4
|
40 Installer les outils de cuisson:
|
slaxemulator@4
|
41 <code>
|
slaxemulator@4
|
42 tazpkg get-install tazwok-experimental
|
slaxemulator@4
|
43 tazpkg get-install tazchroot
|
slaxemulator@4
|
44 </code>
|
slaxemulator@4
|
45
|
slaxemulator@4
|
46 ==== Cuire la chaîne d'outils ====
|
slaxemulator@4
|
47
|
slaxemulator@4
|
48 <note tip> Les lignes de commandes suivantes fonctionnent pour un wok situé à l'adresse: ///home/slitaz/experimental/wok//. Si vous avez placé le wok ailleurs, vous pouvez ajouter l'option //--SLITAZ_DIR=adresse//; où adresse est l'équivalent de ///home/slitaz//. Cette option doit être utilisée chaque fois que //--SLITAZ_VERSION// est précisée. Vous pouvez aussi définir //SLITAZ_VERSION// et //SLITAZ_DIR// globalement via ///etc/slitaz/slitaz.conf//.</note>
|
slaxemulator@4
|
49
|
slaxemulator@4
|
50 Configurer le //chroot//:
|
slaxemulator@4
|
51 <code>
|
slaxemulator@4
|
52 tazwok configure-chroot --SLITAZ_VERSION=experimental
|
slaxemulator@4
|
53 </code>
|
slaxemulator@4
|
54
|
slaxemulator@4
|
55 Si vous avez au moins 1,5GB de mémoire libre vide, vous pouvez utiliser le //chroot// minimal en RAM pour accélérer le processus de cuisson:
|
slaxemulator@4
|
56 <code>
|
slaxemulator@4
|
57 sed 's~chroot_dir=.*~chroot_dir=/tmp/chroot-experimental~' -i /home/slitaz/experimental/tazchroot.conf
|
slaxemulator@4
|
58 </code>
|
slaxemulator@4
|
59
|
slaxemulator@4
|
60 Cuire les paquets de la chaîne d'outils en une commande:
|
slaxemulator@4
|
61 <code>
|
slaxemulator@4
|
62 tazwok cook-toolchain --SLITAZ_VERSION=experimental
|
slaxemulator@4
|
63 </code>
|
slaxemulator@4
|
64
|
slaxemulator@4
|
65 A la fin de cette opération, le //chroot// devrait être effacé. Si vous aviez modifié son emplacement plus tôt, vous devez le faire manuellement:
|
slaxemulator@4
|
66 <code>
|
slaxemulator@4
|
67 rm -r /tmp/chroot-experimental
|
slaxemulator@4
|
68 </code>
|
slaxemulator@4
|
69
|
slaxemulator@4
|
70 Les paquets de la chaîne d'outils sont maintenant prêts à être utilisés. Ils sont actuellement dans le dépôt //packages-incoming//. Si tout à été cuit comme il faut, il est possible de la pousser dans le dépôt de paquets classique en utilisant:
|
slaxemulator@4
|
71 <code>
|
slaxemulator@4
|
72 tazwok check-incoming --SLITAZ_VERSION=experimental
|
slaxemulator@4
|
73 </code>
|
slaxemulator@4
|
74
|
slaxemulator@4
|
75 Vous avez besoin de dire à //tazpkg// que vous avez maintenant une version locale d'//experimental//:
|
slaxemulator@4
|
76 <code>
|
slaxemulator@4
|
77 # Si vous aviez déjà défini le dépôt experimental:
|
slaxemulator@4
|
78 echo "/home/slitaz/experimental/packages" > /var/lib/tazpkg/undigest/experimental/mirror
|
slaxemulator@4
|
79 tazpkg recharge
|
slaxemulator@4
|
80 # Sinon:
|
slaxemulator@4
|
81 tazpkg add-undigest experimental /home/slitaz/experimental/packages
|
slaxemulator@4
|
82 echo experimental > /var/lib/tazpkg/priority
|
slaxemulator@4
|
83 tazpkg recharge
|
slaxemulator@4
|
84 </code>
|
slaxemulator@4
|
85
|
slaxemulator@4
|
86 Recuire les paquets de la chaîne d'outils à l'exception du cœur (//linux-api-headers/glibc/binutils/gcc//) par-dessus elle-même pour la consolider; en fait ce n'est pas réellement nécessaire avec la configuration actuelle mais c'est généralement bon pour résoudre les dépendances circulaires. Cela garantit la consistance de la chaîne d'outils avant et après une mise à jour des paquet non-cœur de la chaîne d'outils. Notez que le cœur de la chaîne d'outils ne devrait jamais être mis à jour de cette façon, mais en ré-utilisant le script //cook-toolchain//.
|
slaxemulator@4
|
87 <code>
|
slaxemulator@4
|
88 tazwok chroot --SLITAZ_VERSION=experimental
|
slaxemulator@4
|
89 tazwok build-depends toolchain-cooklist | sed '1,/^gcc$/d' > /tmp/consolider.list
|
slaxemulator@4
|
90 tazwok cook-list /tmp/consolider.list
|
slaxemulator@4
|
91 rm /tmp/consolider.list
|
slaxemulator@4
|
92 </code>
|
slaxemulator@4
|
93
|
slaxemulator@4
|
94 Puisque les paquets ont été re-cuit, il faut mettre à jour le dépôt //packages// de nouveau:
|
slaxemulator@4
|
95 <code>
|
slaxemulator@4
|
96 tazwok check-incoming
|
slaxemulator@4
|
97 </code>
|
slaxemulator@4
|
98
|
slaxemulator@4
|
99 Rester dans le //chroot// pour l'étape suivante
|
slaxemulator@4
|
100
|
slaxemulator@4
|
101
|
slaxemulator@4
|
102 ==== Cuire les paquets d'une saveur ====
|
slaxemulator@4
|
103
|
slaxemulator@4
|
104 Premièrement vous avez besoin d'avoir les données à propos des saveurs pour //cooking//:
|
slaxemulator@4
|
105 <code>
|
slaxemulator@4
|
106 cd /home/slitaz/experimental/flavors
|
slaxemulator@4
|
107 hg clone http://hg.slitaz.org/flavors .
|
slaxemulator@4
|
108 </code>
|
slaxemulator@4
|
109
|
slaxemulator@4
|
110 Générer la liste de cuisson pour une saveur données. Note: pour la suite, remplacer SAVEUR par le nom de la saveur de votre choix dans les commandes.
|
slaxemulator@4
|
111 <code>
|
slaxemulator@4
|
112 tazwok gen-cooklist --list=/home/slitaz/experimental/flavors/SAVEUR/packages.list > /tmp/SAVEUR.list
|
slaxemulator@4
|
113 </code>
|
slaxemulator@4
|
114
|
slaxemulator@4
|
115 Cette liste contient des paquets qui ont déjà été cuits; les enlever:
|
slaxemulator@4
|
116 <code>
|
slaxemulator@4
|
117 cat /tmp/SAVEUR.list | while read p; do
|
slaxemulator@4
|
118 grep -q ^$p$ /home/slitaz/experimental/packages/packages.txt && \
|
slaxemulator@4
|
119 sed "/^$p$/d" -i /tmp/SAVEUR.list
|
slaxemulator@4
|
120 done
|
slaxemulator@4
|
121 </code>
|
slaxemulator@4
|
122
|
slaxemulator@4
|
123
|
slaxemulator@4
|
124 La liste de cuisson est maintenant prête, pour créer les paquets:
|
slaxemulator@4
|
125 <code>
|
slaxemulator@4
|
126 tazwok cook-list /tmp/SAVEUR.list
|
slaxemulator@4
|
127 </code>
|
slaxemulator@4
|
128
|
slaxemulator@4
|
129 Mettre à jour le dépôt //packages//:
|
slaxemulator@4
|
130 <code>
|
slaxemulator@4
|
131 tazwok check-incoming
|
slaxemulator@4
|
132 </code>
|
slaxemulator@4
|
133
|
slaxemulator@4
|
134 <note tip>Vous pouvez répéter ces étapes à chaque fois que vous souhaitez ajouter de nouveaux paquets à votre dépôt.</note>
|
slaxemulator@4
|
135
|
slaxemulator@4
|
136 Restez dans le //chroot// pour la prochaine étape.
|
slaxemulator@4
|
137
|
slaxemulator@4
|
138 ==== Créer l'ISO ====
|
slaxemulator@4
|
139
|
slaxemulator@4
|
140 Pour le moment, //tazlito// utilise ///home/slitaz/flavors//. Créer un lien symbolique:
|
slaxemulator@4
|
141 <code>
|
slaxemulator@4
|
142 ln -s /home/slitaz/experimental/flavors /home/slitaz
|
slaxemulator@4
|
143 </code>
|
slaxemulator@4
|
144
|
slaxemulator@4
|
145 Configurer l'ISO en tant que version expérimentale:
|
slaxemulator@4
|
146 <code>
|
slaxemulator@4
|
147 cd /home/slitaz/flavors/SAVEUR
|
slaxemulator@4
|
148 mkdir -p rootfs/etc
|
slaxemulator@4
|
149 echo experimental > rootfs/etc/slitaz-release
|
slaxemulator@4
|
150 </code>
|
slaxemulator@4
|
151
|
slaxemulator@4
|
152 Configurer l'ISO pour utiliser votre dépôt local:
|
slaxemulator@4
|
153 <code>
|
slaxemulator@4
|
154 mkdir -p rootfs/var/lib/tazpkg
|
slaxemulator@4
|
155 echo /home/slitaz/experimental/packages > rootfs/var/lib/tazpkg/mirror
|
slaxemulator@4
|
156 </code>
|
slaxemulator@4
|
157
|
slaxemulator@4
|
158 Utiliser tazwok-experimental plutôt que tazwok et ajouter tazchroot:
|
slaxemulator@4
|
159 <code>
|
slaxemulator@4
|
160 sed 's/tazwok/tazwok-experimental/' -i packages.list
|
slaxemulator@4
|
161 echo tazchroot >> packages.list
|
slaxemulator@4
|
162 </code>
|
slaxemulator@4
|
163
|
slaxemulator@4
|
164 Empaqueter SAVEUR:
|
slaxemulator@4
|
165 <code>
|
slaxemulator@4
|
166 tazlito pack-flavor SAVEUR
|
slaxemulator@4
|
167 </code>
|
slaxemulator@4
|
168
|
slaxemulator@4
|
169 Obtenir SAVEUR:
|
slaxemulator@4
|
170 <code>
|
slaxemulator@4
|
171 tazlito get-flavor SAVEUR
|
slaxemulator@4
|
172 </code>
|
slaxemulator@4
|
173
|
slaxemulator@4
|
174 Générer l'ISO:
|
slaxemulator@4
|
175 <code>
|
slaxemulator@4
|
176 tazlito gen-distro
|
slaxemulator@4
|
177 </code>
|
slaxemulator@4
|
178
|
slaxemulator@4
|
179 Sauvegarder l'ISO dans votre home:
|
slaxemulator@4
|
180 <code>
|
slaxemulator@4
|
181 mv /home/slitaz/distro/slitaz-SAVEUR.iso /home/slitaz/distro/slitaz-SAVEUR.md5 /home/slitaz/experimental/iso
|
slaxemulator@4
|
182 </code>
|
slaxemulator@4
|
183
|
slaxemulator@4
|
184 Quitter le //chroot//:
|
slaxemulator@4
|
185 <code>
|
slaxemulator@4
|
186 exit
|
slaxemulator@4
|
187 </code> |