rev |
line source |
Hans-G?nter@896
|
1 <!DOCTYPE html>
|
Hans-G?nter@896
|
2 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
Hans-G?nter@896
|
3 <head>
|
Hans-G?nter@896
|
4 <meta charset="utf-8" />
|
Hans-G?nter@896
|
5 <title>Kochwerkzeuge-Handbuch</title>
|
Hans-G?nter@896
|
6 <link rel="stylesheet" type="text/css" href="../slitaz-doc.css" />
|
Hans-G?nter@896
|
7 <script type="text/javascript" src="../slitaz-doc.js"></script>
|
Hans-G?nter@896
|
8 </head>
|
Hans-G?nter@896
|
9 <body>
|
Hans-G?nter@896
|
10
|
Hans-G?nter@896
|
11 <header>
|
Hans-G?nter@896
|
12 <h1>Kochwerkzeuge-Handbuch</h1>
|
Hans-G?nter@896
|
13 </header>
|
Hans-G?nter@896
|
14
|
Hans-G?nter@896
|
15 <!-- Start content -->
|
Hans-G?nter@896
|
16 <div id="content">
|
Hans-G?nter@896
|
17
|
Hans-G?nter@896
|
18 <h2>SliTaz „Cook“ & „Cooker“</h2>
|
Hans-G?nter@896
|
19
|
Hans-G?nter@896
|
20 <p>
|
Hans-G?nter@896
|
21 Die SliTaz-Kochwerkzeuge dienen zum Erzeugen von Paketen im SliTaz-eigenen Format. Sie
|
Hans-G?nter@896
|
22 sind schnell, genügsam, leicht zu erlernen und zu benutzen. Das Erstellen von Paketen für SliTaz
|
Hans-G?nter@896
|
23 erfordert nur wenige Kommandos. Die Kochwerkzeuge enthalten „Cook“ und
|
Hans-G?nter@896
|
24 <a href="#cooker">„Cooker“</a>.
|
Hans-G?nter@896
|
25 </p>
|
Hans-G?nter@896
|
26 <p>
|
Hans-G?nter@896
|
27 Mit <code>cook</code> kann ein Paket aus den Quellen übersetzt und gepackt werden; dabei wird eine
|
Hans-G?nter@896
|
28 Protokolldatei erstellt. Die Qualität des Rezeptes und des Paketes kann geprüft werden.
|
Hans-G?nter@896
|
29 „Cooker“ ist ein Kompilierungsautomat, der als Benutzerschnittstelle mit einer Weboberfläche
|
Hans-G?nter@896
|
30 für <code>cook</code> verwendet werden kann. Damit können auch die Protokolldateien
|
Hans-G?nter@896
|
31 farbig aufbereitet angesehen werden. „Cook“ und „Cooker“
|
Hans-G?nter@896
|
32 greifen auf dieselben Datenbankdateien und denselben Wok zu, sie haben <a href="#blocked">gesperrte</a>
|
Hans-G?nter@896
|
33 und defekte Pakete wie auch alle Aktivitäten gemeinsam.
|
Hans-G?nter@896
|
34 </p>
|
Hans-G?nter@896
|
35 <p>
|
Hans-G?nter@896
|
36 Technische Details, wie etwa die Programmierung usw., sind in der Datei
|
Hans-G?nter@896
|
37 <code>/usr/share/doc/cookutils/README</code> beschrieben.
|
Hans-G?nter@896
|
38 </p>
|
Hans-G?nter@896
|
39
|
Hans-G?nter@896
|
40 <h3>„Cook“-Anwendung</h3>
|
Hans-G?nter@896
|
41 <p>
|
Hans-G?nter@896
|
42 „Cook“ enthält eine Kurzanleitung, die mit
|
Hans-G?nter@896
|
43 <code>cook usage</code> ausgegeben werden kann. Es können auch Optionen angegeben werden, mit
|
Hans-G?nter@896
|
44 denen besondere Arbeiten vor oder nach der Paketerzeugung ausgeführt werden.
|
Hans-G?nter@896
|
45 Anzeige der Kurzanleitung:
|
Hans-G?nter@896
|
46 </p>
|
Hans-G?nter@896
|
47 <pre>
|
Hans-G?nter@896
|
48 # cook usage
|
Hans-G?nter@896
|
49 </pre>
|
Hans-G?nter@896
|
50
|
Hans-G?nter@896
|
51 <h3>Praktische Anleitung</h3>
|
Hans-G?nter@896
|
52 <p>
|
Hans-G?nter@896
|
53 Bevor Pakete erzeugt werden können, muss zunächst die Umgebung dafür eingerichtet werden.
|
Hans-G?nter@896
|
54 Es gibt zwei Möglichkeiten für die Paketerzeugung: direkt auf dem Rechner, an dem Sie
|
Hans-G?nter@896
|
55 angemeldet sind oder in einer „chroot“-Umgebung zum Schutz der Dateien Ihres Rechners vor
|
Hans-G?nter@896
|
56 ungewollten Veränderungen. Wenn Sie in einer „chroot“-Umgebung arbeiten wollen,
|
Hans-G?nter@896
|
57 können Sie <code>tazdev</code> installieren und benutzen:
|
Hans-G?nter@896
|
58 </p>
|
Hans-G?nter@896
|
59 <pre>
|
Hans-G?nter@896
|
60 # tazdev gen-chroot && tazdev chroot
|
Hans-G?nter@896
|
61 </pre>
|
Hans-G?nter@896
|
62 <p>
|
Hans-G?nter@896
|
63 Standardmäßig erzeugt tazdev eine „chroot“-Umgebung in <code>/home/slitaz/cooking/chroot</code>,
|
Hans-G?nter@896
|
64 aber Sie können auch einen Pfad als Parameter angeben. Der Ort für die „chroot“-Umgebung ist
|
Hans-G?nter@896
|
65 unwichtig; wenn in die „chroot“-Umgebung gewechselt wurde, werden Standard-SliTaz-Pfade
|
Hans-G?nter@896
|
66 wie z.B. <code>/home/slitaz/wok</code> für den Wok oder <code>/home/slitaz/log</code>
|
Hans-G?nter@896
|
67 für die Generierungsprotokolle verwendet. Wie üblich kann eine Kurzanleitung ausgegeben werden mit:
|
Hans-G?nter@896
|
68 <pre>
|
Hans-G?nter@896
|
69 $ tazdev usage
|
Hans-G?nter@896
|
70 </pre>
|
Hans-G?nter@896
|
71 </p>
|
Hans-G?nter@896
|
72 <p>
|
Hans-G?nter@896
|
73 Wenn Sie eine „chroot“-Umgebung verwenden, gibt es zwei besondere Verzeichnisse, die mit der
|
Hans-G?nter@896
|
74 bind-Option eingehängt sind: <code>src</code> und <code>packages</code>. Die Quellarchive aller Pakete
|
Hans-G?nter@896
|
75 werden standardmäßig im Verzeichnis <code>/home/slitaz/src</code> abgelegt. Dieses Verzeichnis
|
Hans-G?nter@896
|
76 wird in der „chroot“-Umgebung eingehängt, so dass die Programme darauf zugreifen können.
|
Hans-G?nter@896
|
77 Dadurch können Quellprogramme von mehreren „chroot“-Umgebungen gemeinsam benutzt werden,
|
Hans-G?nter@896
|
78 etwa einer für die Entwicklungsversion und einer für die stabile Version. Das Verzeichnis für die
|
Hans-G?nter@896
|
79 fertigen Pakete ist standardmäßig <code>/home/slitaz/[version]/packages</code>, also nicht in einer
|
Hans-G?nter@896
|
80 „chroot“-Umgebung, wo sie sicher aufbewahrt sind für den Fall, dass die „chroot“-Umgebung
|
Hans-G?nter@896
|
81 versehentlich verlassen wird.
|
Hans-G?nter@896
|
82 </p>
|
Hans-G?nter@896
|
83
|
Hans-G?nter@896
|
84 <h3>Einrichten der Umgebung</h3>
|
Hans-G?nter@896
|
85 <p>
|
Hans-G?nter@896
|
86 Wenn Sie sich für eine der Möglichkeiten entschieden haben, kann die Umgebung für <code>cook</code>
|
Hans-G?nter@896
|
87 eingerichtet werden.
|
Hans-G?nter@896
|
88 „Cook“ verwendet die Konfigurationsdatei <code>cook.conf</code>. Wenn andere als die Standardpfade
|
Hans-G?nter@896
|
89 der Verzeichnisse und Dateien verwendet werden sollen, müssen diese dort eingetragen werden.
|
Hans-G?nter@896
|
90 Mit <code>setup</code> werden einige Verzeichnisse und Dateien erzeugt,
|
Hans-G?nter@896
|
91 in denen Aktivitäten und Fehler festgehalten werden. Alle Dateien sind einfache Textdateien,
|
Hans-G?nter@896
|
92 die mit einem Texteditor betrachtet werden können. Die Umgebung wird eingerichtet mit:
|
Hans-G?nter@896
|
93 </p>
|
Hans-G?nter@896
|
94 <pre>
|
Hans-G?nter@896
|
95 # cook setup
|
Hans-G?nter@896
|
96 </pre>
|
Hans-G?nter@896
|
97 <p>
|
Hans-G?nter@896
|
98 Bei <code>setup</code> kann mit der Option <code>--wok</code> bestimmt werden, dass beim Einrichten
|
Hans-G?nter@896
|
99 der Umgebung der Wok <code>wok</code> aus dem SliTaz-Mercurial-Depot dupliziert werden soll.
|
Hans-G?nter@896
|
100 Auch wenn Sie kein offizieller Entwickler sind, können Sie den Wok duplizieren und darin
|
Hans-G?nter@896
|
101 enthaltene Pakete als Muster für Ihre eigenen Pakete verwenden.
|
Hans-G?nter@896
|
102 Mit den folgenden Kommandos wird die Umgebung eingerichtet und der Entwicklungswok bzw. der
|
Hans-G?nter@896
|
103 inoffizielle Wok dupliziert:
|
Hans-G?nter@896
|
104 </p>
|
Hans-G?nter@896
|
105 <pre>
|
Hans-G?nter@896
|
106 # cook setup --wok
|
Hans-G?nter@896
|
107 # cook setup --undigest
|
Hans-G?nter@896
|
108 </pre>
|
Hans-G?nter@896
|
109
|
Hans-G?nter@896
|
110 <h3>Testen der Umgebung</h3>
|
Hans-G?nter@896
|
111 <p>
|
Hans-G?nter@896
|
112 „Cook“ bietet die Möglichkeit, die Umgebung zu testen, indem ein Paket erzeugt wird. Damit können
|
Hans-G?nter@896
|
113 Sie feststellen, ob Ihre Umgebung funktionsfähig ist, und Sie haben ein Beispielpaket mit einem
|
Hans-G?nter@896
|
114 Rezept. Dieses Pseudo-Paket heisst <code>cooktest</code> und kann nach dem Test entfernt werden.
|
Hans-G?nter@896
|
115 Der Test wird ausgeführt mit:
|
Hans-G?nter@896
|
116 </p>
|
Hans-G?nter@896
|
117 <pre>
|
Hans-G?nter@896
|
118 # cook test
|
Hans-G?nter@896
|
119 </pre>
|
Hans-G?nter@896
|
120
|
Hans-G?nter@896
|
121 <h3>Paket erzeugen</h3>
|
Hans-G?nter@896
|
122 <p>
|
Hans-G?nter@896
|
123 Wenn die Umgebung korrekt eingerichtet ist, können neue Pakete für SliTaz aus dem Wok erzeugt werden.
|
Hans-G?nter@896
|
124 Mit dem folgenden Kommando wird ein neues Paket mit einem leeren Rezept definiert:
|
Hans-G?nter@896
|
125 <pre>
|
Hans-G?nter@896
|
126 # cook new <em>pkgname</em>
|
Hans-G?nter@896
|
127 </pre>
|
Hans-G?nter@896
|
128 Mit dem folgenden Kommando wird ein neues Paket definiert, wobei das Rezept interaktiv erstellt wird:
|
Hans-G?nter@896
|
129 <pre>
|
Hans-G?nter@896
|
130 # cook new <em>pkgname</em> --interactive
|
Hans-G?nter@896
|
131 </pre>
|
Hans-G?nter@896
|
132 </p>
|
Hans-G?nter@896
|
133 <p>
|
Hans-G?nter@896
|
134 Wenn Sie ein neues Paket mit leerem Rezept definiert haben, muss das Rezept mit einem Texteditor
|
Hans-G?nter@896
|
135 bearbeitet werden. Wenn das Rezept fertig ist, oder wenn das Paket schon existierte, kann es
|
Hans-G?nter@896
|
136 anschließend erstellt werden:
|
Hans-G?nter@896
|
137 </p>
|
Hans-G?nter@896
|
138 <pre>
|
Hans-G?nter@896
|
139 # cook <em>pkgname</em>
|
Hans-G?nter@896
|
140 </pre>
|
Hans-G?nter@896
|
141 <p>
|
Hans-G?nter@896
|
142 Wenn alles gut ging, befindet sich das Paket im Verzeichnis <code>$SLITAZ/packages</code>
|
Hans-G?nter@896
|
143 und weitere erzeugte Dateien im Verzeichnis <code>$SLITAZ/wok/<em>pkgname</em></code>.
|
Hans-G?nter@896
|
144 </p>
|
Hans-G?nter@896
|
145
|
Hans-G?nter@896
|
146 <h3>Paket erzeugen und installieren</h3>
|
Hans-G?nter@896
|
147 <p>
|
Hans-G?nter@896
|
148 Wenn das Paket erzeugt und anschließend auch installiert werden soll, geht das mit:
|
Hans-G?nter@896
|
149 </p>
|
Hans-G?nter@896
|
150 <pre>
|
Hans-G?nter@896
|
151 # cook <em>pkgname</em> --install
|
Hans-G?nter@896
|
152 </pre>
|
Hans-G?nter@896
|
153
|
Hans-G?nter@896
|
154 <h3>Paketquellen transferieren</h3>
|
Hans-G?nter@896
|
155 <p>
|
Hans-G?nter@896
|
156 Wenn Sie nur die Quelldateien eines Paketes benötigen, aber das Paket nicht erstellen wollen,
|
Hans-G?nter@896
|
157 können Sie die Option <code>getsrc</code> verwenden:
|
Hans-G?nter@896
|
158 </p>
|
Hans-G?nter@896
|
159 <pre>
|
Hans-G?nter@896
|
160 # cook <em>pkgname</em> --getsrc
|
Hans-G?nter@896
|
161 </pre>
|
Hans-G?nter@896
|
162
|
Hans-G?nter@896
|
163 <h3>Wok aufräumen</h3>
|
Hans-G?nter@896
|
164 <p>
|
Hans-G?nter@896
|
165 Nach dem Erzeugen und Packen eines Paketes enthält der Wok verschiedene Dateien, die
|
Hans-G?nter@896
|
166 Plattenplatz belegen. Diese Dateien eines einzelnen Paketes können gelöscht werden mit:
|
Hans-G?nter@896
|
167 </p>
|
Hans-G?nter@896
|
168 <pre>
|
Hans-G?nter@896
|
169 # cook <em>pkgname</em> --clean
|
Hans-G?nter@896
|
170 </pre>
|
Hans-G?nter@896
|
171 <p>
|
Hans-G?nter@896
|
172 Es können auch die Dateien aller Pakete aus dem Wok entfernt werden, oder nur die Quelldateien:
|
Hans-G?nter@896
|
173 </p>
|
Hans-G?nter@896
|
174 <pre>
|
Hans-G?nter@896
|
175 # cook clean-wok
|
Hans-G?nter@896
|
176 # cook clean-src
|
Hans-G?nter@896
|
177 </pre>
|
Hans-G?nter@896
|
178
|
Hans-G?nter@896
|
179 <h3>Suchen im Wok</h3>
|
Hans-G?nter@896
|
180 <p>
|
Hans-G?nter@896
|
181 „Cook“ bietet auch eine einfache Suchfunktion, um schnell ein Paket im Wok zu finden.
|
Hans-G?nter@896
|
182 Diese verwendet <code>grep</code> und unterstützt damit reguläre Ausdrücke:
|
Hans-G?nter@896
|
183 </p>
|
Hans-G?nter@896
|
184 <pre>
|
Hans-G?nter@896
|
185 # cook search busybox
|
Hans-G?nter@896
|
186 </pre>
|
Hans-G?nter@896
|
187
|
Hans-G?nter@896
|
188 <h3>Rezept-Funktionen</h3>
|
Hans-G?nter@896
|
189 <p>
|
Hans-G?nter@896
|
190 Viele Pakete, so wie die *-dev-Pakete, enthalten gleichartige Dateien wie
|
Hans-G?nter@896
|
191 statische Bibliotheken, pkgconfig-Dateien und include-Dateien. Dafür bietet <code>cook</code>
|
Hans-G?nter@896
|
192 eine Funktion, die im Rezept verwendet werden kann:
|
Hans-G?nter@896
|
193 </p>
|
Hans-G?nter@896
|
194 <pre>
|
Hans-G?nter@896
|
195 get_dev_files : Install /usr/lib/{lib.*a,pkgconfig} /usr/include
|
Hans-G?nter@896
|
196 </pre>
|
Hans-G?nter@896
|
197
|
Hans-G?nter@896
|
198 <h3>Liste der Paket-Datenbank</h3>
|
Hans-G?nter@896
|
199 <p>
|
Hans-G?nter@896
|
200 „Cook“ kann eine Liste der Pakete im Wok ausgeben, und zwar in einem für Tazpkg geeigneten Format.
|
Hans-G?nter@896
|
201 Damit kann sehr einfach ein lokales Paket-Depot erstellt werden; damit wird auch die offizielle
|
Hans-G?nter@896
|
202 SliTaz-Paketliste aller Spiegel-Depots erstellt.
|
Hans-G?nter@896
|
203 Eine Liste der Pakete im aktuellen Wok erhält auch ein nicht privilegierter Benutzer mit:
|
Hans-G?nter@896
|
204 </p>
|
Hans-G?nter@896
|
205 <pre>
|
Hans-G?nter@896
|
206 $ cook list-wok
|
Hans-G?nter@896
|
207 </pre>
|
Hans-G?nter@896
|
208 <p>
|
Hans-G?nter@896
|
209 Wenn die Paket-Datenbank erstellt wird, prüft <code>cook</code>, ob ein Varianten-Depot im
|
Hans-G?nter@896
|
210 Verzeichnis <code>/home/slitaz/flavors</code> vorhanden ist. Ist dies der Fall, so werden alle
|
Hans-G?nter@896
|
211 Varianten gemäß der letzten verfügbaren Paketliste gepackt. Das Kommando dafür ist:
|
Hans-G?nter@896
|
212 </p>
|
Hans-G?nter@896
|
213 <pre>
|
Hans-G?nter@896
|
214 # cook pkgdb
|
Hans-G?nter@896
|
215 </pre>
|
Hans-G?nter@896
|
216
|
Hans-G?nter@896
|
217 <h3 id="cooker">„Cooker“</h3>
|
Hans-G?nter@896
|
218 <p>
|
Hans-G?nter@896
|
219 „Cooker“ ist ein Kompilierungsautomat, der zunächst nach Übergaben in einem Wok sucht,
|
Hans-G?nter@896
|
220 eine geordnete Liste zu erzeugender Pakete erstellt und schließlich alle geänderten Pakete erzeugt.
|
Hans-G?nter@896
|
221 „Cooker“ kann auch als Benutzeroberfläche für <code>cook</code> verwendet werden, da beide
|
Hans-G?nter@896
|
222 dieselben Dateien benutzen. „Cooker“ kann auch eine lange Liste von Paketen abarbeiten,
|
Hans-G?nter@896
|
223 wie etwa alle Pakete einer Variante. „Cooker“ bietet eine gefällige Web-Oberfläche, die
|
Hans-G?nter@896
|
224 standardmäßig auf jedem SliTaz verwendet werden kann, da die benötigte CGI-Unterstützung von dem
|
Hans-G?nter@896
|
225 Busybox-Webserver <code>httpd</code> bereitgestellt wird.
|
Hans-G?nter@896
|
226 </p>
|
Hans-G?nter@896
|
227 <p>
|
Hans-G?nter@896
|
228 „Cooker“ enthält eine Kurzanleitung, die mit folgenden Kommandos ausgegeben werden kann:
|
Hans-G?nter@896
|
229 </p>
|
Hans-G?nter@896
|
230 <pre>
|
Hans-G?nter@896
|
231 # cooker usage
|
Hans-G?nter@896
|
232 # cooker -u
|
Hans-G?nter@896
|
233 </pre>
|
Hans-G?nter@896
|
234
|
Hans-G?nter@896
|
235 <h3>„Cooker“-Einrichtung</h3>
|
Hans-G?nter@896
|
236 <p>
|
Hans-G?nter@896
|
237 Wie „Cook“ benötigt auch „Cooker“ eine Arbeitsumgebung für seinen Einsatz.
|
Hans-G?nter@896
|
238 Der wesentliche Unterschied zur Umgebung von „Cook“ ist, dass „Cooker“ zwei Woks benötigt.
|
Hans-G?nter@896
|
239 Ein sauberer, aus einem Mercurial-Depot duplizierter Wok als Referenz und einen Wok für die
|
Hans-G?nter@896
|
240 Paketerzeugung. Damit ist es einfach, beide Woks zu vergleichen und Änderungen festzustellen.
|
Hans-G?nter@896
|
241 Wenn schon eine Umgebung für <code>cook</code> vorhanden ist, muss der Wok umbenannt werden,
|
Hans-G?nter@896
|
242 bevor die Umgebung für „Cooker“ eingerichtet wird, sonst meckert „Cooker“. Bei der Einrichtung wird
|
Hans-G?nter@896
|
243 auch eine Reihe von Entwickler-Paketen installiert, die über die Variable <code>SETUP_PKGS</code> in der
|
Hans-G?nter@896
|
244 Konfigurationsdatei <code>cook.conf</code> angegeben werden können.
|
Hans-G?nter@896
|
245 Das Kommando lautet:
|
Hans-G?nter@896
|
246 </p>
|
Hans-G?nter@896
|
247 <pre>
|
Hans-G?nter@896
|
248 # cooker setup
|
Hans-G?nter@896
|
249 </pre>
|
Hans-G?nter@896
|
250 <p>
|
Hans-G?nter@896
|
251 Wenn alles gut gegangen ist, sind jetzt zwei Woks vorhanden, die Basis-Entwickler-Pakete installiert
|
Hans-G?nter@896
|
252 und alle benötigten Dateien erstellt. Da zunächst nach Übergaben in einem Wok gesucht wird,
|
Hans-G?nter@896
|
253 können Sie testweise eingeben:
|
Hans-G?nter@896
|
254 </p>
|
Hans-G?nter@896
|
255 <pre>
|
Hans-G?nter@896
|
256 # cooker
|
Hans-G?nter@896
|
257 </pre>
|
Hans-G?nter@896
|
258
|
Hans-G?nter@896
|
259 <h3>„Cooker“-Paketerzeugung</h3>
|
Hans-G?nter@896
|
260 <p>
|
Hans-G?nter@896
|
261 Auch hier gibt es wieder zwei Möglichkeiten: Änderungen in dem sauberen, aus einem Mercurial-Depot
|
Hans-G?nter@896
|
262 duplizierten Wok vornehmen und „Cooker“ ohne Parameter starten oder Pakete manuell erzeugen.
|
Hans-G?nter@896
|
263 Mit „Cooker“ können ein einzelnes Paket oder alle Pakete einer Kategorie oder einer Variante erzeugt
|
Hans-G?nter@896
|
264 werden. Sie können auch versuchen, alle noch nicht erzeugten Pakete zu erzeugen. Beachten Sie aber,
|
Hans-G?nter@896
|
265 dass „Cooker“ nicht dafür eingerichtet ist, tausende von Paketen zu verarbeiten.
|
Hans-G?nter@896
|
266 </p>
|
Hans-G?nter@896
|
267 <p>
|
Hans-G?nter@896
|
268 Ein einzelnes Paket wird (wie mit <code>cook <em>pkgname</em></code>, aber mit erweiterter
|
Hans-G?nter@896
|
269 Protokollierung) erzeugt mit:
|
Hans-G?nter@896
|
270 </p>
|
Hans-G?nter@896
|
271 <pre>
|
Hans-G?nter@896
|
272 # cooker pkg <em>pkgname</em>
|
Hans-G?nter@896
|
273 </pre>
|
Hans-G?nter@896
|
274 <p>
|
Hans-G?nter@896
|
275 Es gibt verschiedene Möglichkeiten, mehrere Pakete mit einem Kommando zu erzeugen:
|
Hans-G?nter@896
|
276 Sie können ein existierendes Paket angeben, wie es für eine Variante eines ISO-Abbildes verwendet wird,
|
Hans-G?nter@896
|
277 oder Sie können eine Datei angeben, die je Zeile den Namen eines Paketes enthält.
|
Hans-G?nter@896
|
278 Schließlich können Sie auch eine Kategorie angeben.
|
Hans-G?nter@896
|
279 </p>
|
Hans-G?nter@896
|
280 <pre>
|
Hans-G?nter@896
|
281 # cooker flavor [<em>name</em>]
|
Hans-G?nter@896
|
282 # cooker list [<em>/path/to/cooklist</em>]
|
Hans-G?nter@896
|
283 # cooker cat [<em>category</em>]
|
Hans-G?nter@896
|
284 </pre>
|
Hans-G?nter@896
|
285 <p>
|
Hans-G?nter@896
|
286 „Cooker“ ermöglicht es auch, einen bestimmten Änderungsstand aus einem Mercurial-Depot anzugeben.
|
Hans-G?nter@896
|
287 Das ist nützlich, wenn der Kompilierungsautomat bei der Paketerzeugung unterbrochen wurde: Sie
|
Hans-G?nter@896
|
288 können dann bestimmte Pakete manuell erzeugen:
|
Hans-G?nter@896
|
289 </p>
|
Hans-G?nter@896
|
290 <pre>
|
Hans-G?nter@896
|
291 # cooker rev 9496
|
Hans-G?nter@896
|
292 </pre>
|
Hans-G?nter@896
|
293
|
Hans-G?nter@896
|
294 <h3 id="blocked">Gesperrte Pakete</h3>
|
Hans-G?nter@896
|
295 <p>
|
Hans-G?nter@896
|
296 „Cook“ und „Cooker“ benutzen eine Datei, die eine Liste gesperrter Pakete enthält, die nicht erzeugt
|
Hans-G?nter@896
|
297 werden, wenn Übergaben erfolgen oder eine Liste zu erzeugender Pakete verwendet wird.
|
Hans-G?nter@896
|
298 Dies ist sehr nützlich, wenn ein Kompilierungsautomat „Cooker“ in einer Produktivumgebung eingesetzt
|
Hans-G?nter@896
|
299 wird. Beim Sperren oder Entsperren eines Paketes kann eine Bemerkung angegeben werden.
|
Hans-G?nter@896
|
300 Beispiel:
|
Hans-G?nter@896
|
301 </p>
|
Hans-G?nter@896
|
302 <pre>
|
Hans-G?nter@896
|
303 # cook <em>pkgname</em> --block
|
Hans-G?nter@896
|
304 # cooker block <em>pkgname</em>
|
Hans-G?nter@896
|
305 # cooker -n "<em>pkgname</em> gesperrt, weil..."
|
Hans-G?nter@896
|
306 </pre>
|
Hans-G?nter@896
|
307 <p>
|
Hans-G?nter@896
|
308 Eine Liste der gesperrten Pakete kann auch in der Web-Oberfläche von „Cooker“ angezeigt werden.
|
Hans-G?nter@896
|
309 Zum Entsperren eines Paketes kann <code>cooker unblock</code> oder <code>cook --unblock</code>
|
Hans-G?nter@896
|
310 verwendet werden:
|
Hans-G?nter@896
|
311 </p>
|
Hans-G?nter@896
|
312 <pre>
|
Hans-G?nter@896
|
313 # cook <em>pkgname</em> --unblock
|
Hans-G?nter@896
|
314 # cooker unblock <em>pkgname</em>
|
Hans-G?nter@896
|
315 </pre>
|
Hans-G?nter@896
|
316
|
Hans-G?nter@896
|
317 <h3>„Cooker“-Web-Oberfläche</h3>
|
Hans-G?nter@896
|
318 <p>
|
Hans-G?nter@896
|
319 Mit der „Cooker“-Web-Oberfläche können Protokolldateien farbig aufbereitet angesehen,
|
Hans-G?nter@896
|
320 Aktivitäten verfolgt und Fehler gesucht werden.
|
Hans-G?nter@896
|
321 Die dazu benötigten Dateien befinden sich im Verzeichnis <code>/var/www/cooker</code>.
|
Hans-G?nter@896
|
322 Wenn Sie keine „chroot“-Umgebung verwenden und der Busybox-Webserver <code>httpd</code>
|
Hans-G?nter@896
|
323 läuft, kann die Web-Oberfläche ohne weitere Konfigurierung verwendet werden und sollte über
|
Hans-G?nter@896
|
324 <a href="http://localhost/cooker/cooker.cgi">http://localhost/cooker/cooker.cgi</a>
|
Hans-G?nter@896
|
325 erreichbar sein.
|
Hans-G?nter@896
|
326 </p>
|
Hans-G?nter@896
|
327 <p>
|
Hans-G?nter@896
|
328 Wenn Sie eine „chroot“-Umgebung verwenden, sollten Sie <code>cookutils</code> ebenfalls auf
|
Hans-G?nter@896
|
329 Ihrem Rechner installieren und die Pfadvariable SLITAZ anpassen. Ein Standardverfahren ist es,
|
Hans-G?nter@896
|
330 eine chroot-Umgebung in:
|
Hans-G?nter@896
|
331 <pre>
|
Hans-G?nter@896
|
332 /home/slitaz/cooking/chroot
|
Hans-G?nter@896
|
333 </pre>
|
Hans-G?nter@896
|
334 zu haben und <code>/etc/slitaz/cook.conf</code> wie folgt zu ändern:
|
Hans-G?nter@896
|
335 </p>
|
Hans-G?nter@896
|
336 <pre>
|
Hans-G?nter@896
|
337 SLITAZ="/home/slitaz/cooking/chroot/home/slitaz"
|
Hans-G?nter@896
|
338 </pre>
|
Hans-G?nter@896
|
339 <p>
|
Hans-G?nter@896
|
340 Beachten Sie: Um die Web-Oberfläche zu verwenden ist es nicht erforderlich, <code>cookutils</code>
|
Hans-G?nter@896
|
341 auf Ihrem Rechner zu installieren.
|
Hans-G?nter@896
|
342 Wenn Sie Lighttpd verwenden, können Sie die Dateien <code>cooker.cgi</code> und
|
Hans-G?nter@896
|
343 <code>style.css</code> beispielsweise in Ihr Verzeichnis ~/Public kopieren und eine eigene
|
Hans-G?nter@896
|
344 Datei <code>cook.conf</code> dafür verwenden. Die Installation von <code>cookutils</code> auf Ihrem
|
Hans-G?nter@896
|
345 Rechner hat den Vorteil, dass Sie über die Paketverwaltung Tazpkg regelmäßig Aktualisierungen
|
Hans-G?nter@896
|
346 erhalten. Wenn Sie <code>cookutils</code> aus einem Mercurial-Depot dupliziert oder aus einem
|
Hans-G?nter@896
|
347 Paket-Depot transferiert haben:
|
Hans-G?nter@896
|
348 </p>
|
Hans-G?nter@896
|
349 <pre>
|
Hans-G?nter@896
|
350 $ cp -a cookutils/web ~/Public/cgi-bin/cooker
|
Hans-G?nter@896
|
351 $ cp -f cookutils/cook.conf ~/Public/cgi-bin/cooker
|
Hans-G?nter@896
|
352 </pre>
|
Hans-G?nter@896
|
353 <p>
|
Hans-G?nter@896
|
354 Ändern Sie in der Konfigurationsdatei <code>~/Public/cgi-bin/cooker/cook.conf</code> in der Variablen
|
Hans-G?nter@896
|
355 SLITAZ den Pfad und alles ist erledigt!
|
Hans-G?nter@896
|
356 </p>
|
Hans-G?nter@896
|
357
|
Hans-G?nter@896
|
358 <h3>Erzeugungsnotizen</h3>
|
Hans-G?nter@896
|
359 <p>
|
Hans-G?nter@896
|
360 Die Notizfunktion ermöglicht es, kleine persönliche Bemerkungen über die Paketerzeugung
|
Hans-G?nter@896
|
361 zu hinterlegen und nutzt der Zusammenarbeit mit anderen Entwicklern.
|
Hans-G?nter@896
|
362 Diese Funktion ist implementiert worden, um Informationen zwischen den Betreuern des
|
Hans-G?nter@896
|
363 Kompilierungsautomaten „Cooker“ und Entwicklern auszutauschen.
|
Hans-G?nter@896
|
364 „Cooker“ kann ein Paket sperren, so dass es nicht mehr erzeugt wird. Dann ist es hilfreich, beim
|
Hans-G?nter@896
|
365 Sperren eine Notiz zu hinterlegen, warum das Paket gesperrt wurde.
|
Hans-G?nter@896
|
366 Die Erzeugungsnotizen werden an der Web-Oberfläche angezeigt und können per Kommando erstellt und
|
Hans-G?nter@896
|
367 abgerufen werden:
|
Hans-G?nter@896
|
368 </p>
|
Hans-G?nter@896
|
369 <pre>
|
Hans-G?nter@896
|
370 # cooker note "<em>pkgname</em> wegen hoher CPU-Last gesperrt"
|
Hans-G?nter@896
|
371 # cooker notes
|
Hans-G?nter@896
|
372 </pre>
|
Hans-G?nter@896
|
373
|
Hans-G?nter@896
|
374 <h3>„Cooker“ als Kompilierungsautomat</h3>
|
Hans-G?nter@896
|
375 <p>
|
Hans-G?nter@896
|
376 „Cooker“ ist als Kompilierungsautomat für SliTaz gestaltet, das heißt er überwacht
|
Hans-G?nter@896
|
377 zwei Woks, aktualisiert den Mercurial-Wok, stellt die Unterschiede fest und erzeugt alle
|
Hans-G?nter@896
|
378 übergebenen Pakete. Die sicherere und sauberere Art, „Cooker“ als Kompilierungsautomat einzusetzen,
|
Hans-G?nter@896
|
379 stellt die Nutzung einer „chroot“-Umgebung dar; aber auch der direkte Ablauf auf Ihrem Rechner ist
|
Hans-G?nter@896
|
380 möglich.
|
Hans-G?nter@896
|
381 </p>
|
Hans-G?nter@896
|
382 <p>
|
Hans-G?nter@896
|
383 Mit <code>cron</code> in der „chroot“-Umgebung kann „Cooker“ automatisch gestartet werden, indem in
|
Hans-G?nter@896
|
384 die Datei <code>/var/spool/cron/crontabs/root</code> eine entsprechende Zeile eingefügt wird. Wenn
|
Hans-G?nter@896
|
385 „Cooker“ alle zwei Stunden gestartet werden soll zum Beispiel:
|
Hans-G?nter@896
|
386 </p>
|
Hans-G?nter@896
|
387 <pre>
|
Hans-G?nter@896
|
388 * */2 * * * /usr/bin/cooker
|
Hans-G?nter@896
|
389 </pre>
|
Hans-G?nter@896
|
390
|
Hans-G?nter@896
|
391 <h3>„Cooker“-Kompilierungsautomat bei der Systemeinleitung starten</h3>
|
Hans-G?nter@896
|
392 <p>
|
Hans-G?nter@896
|
393 Bei der Systemeinleitung kann die Umgebung für „Cooker“ eingerichtet werden und der cron-Prozess
|
Hans-G?nter@896
|
394 gestartet werden. Damit dies richtig funktioniert, muss das Paket <code>cookutils-daemon</code>
|
Hans-G?nter@896
|
395 installiert sein und eine Standard-SliTaz-Installation verwendet werden (die Paketerzeugung spielt sich
|
Hans-G?nter@896
|
396 in <code>/home/slitaz/cooking</code> ab). Die Kommandoprozedur von <code>cookutils-daemon</code>
|
Hans-G?nter@896
|
397 hängt alle benötigten virtuellen Dateisysteme ein wie auch <code>source</code> und <code>packages</code>.
|
Hans-G?nter@896
|
398 Quelldateien befinden sich im Verzeichnis <code>/home/slitaz/src</code> und werden in die
|
Hans-G?nter@896
|
399 „chroot“-Umgebung eingebunden, so dass Paketquellen in verschiedenen Versionen (stabil, Entwicklung,
|
Hans-G?nter@896
|
400 inoffiziell) gemeinsam benutzt werden können. So wird <code>cookutils-daemon</code> installiert:
|
Hans-G?nter@896
|
401 </p>
|
Hans-G?nter@896
|
402 <pre>
|
Hans-G?nter@896
|
403 # tazpkg get-install cookutils-daemon
|
Hans-G?nter@896
|
404 </pre>
|
Hans-G?nter@896
|
405 <p>
|
Hans-G?nter@896
|
406 Damit der Hintergrundprozess gestartet werden kann, muss in der „chroot“-Umgebung eine cron-Datei
|
Hans-G?nter@896
|
407 für root vorhanden sein. Die Kommandoprozedur funktioniert wie die aller anderen Hintergrundprozesse
|
Hans-G?nter@896
|
408 und wird aufgerufen mit:
|
Hans-G?nter@896
|
409 </p>
|
Hans-G?nter@896
|
410 <pre>
|
Hans-G?nter@896
|
411 # /etc/init.d/cooker [start|stop|restart]
|
Hans-G?nter@896
|
412 </pre>
|
Hans-G?nter@896
|
413
|
Hans-G?nter@896
|
414 <!-- End content -->
|
Hans-G?nter@896
|
415 </div>
|
Hans-G?nter@896
|
416
|
Hans-G?nter@896
|
417 <footer>
|
Hans-G?nter@896
|
418 Copyright © <span class="year"></span> <a href="http://www.slitaz.org/">SliTaz GNU/Linux</a>
|
Hans-G?nter@896
|
419 </footer>
|
Hans-G?nter@896
|
420
|
Hans-G?nter@896
|
421 </body>
|
Hans-G?nter@896
|
422 </html>
|