website annotate de/devel/forge.php @ rev 1312

german pages de/devel/ and de/artwork/ updated according to english pages
author Hans-G?nter Theisgen
date Sun Apr 23 17:06:09 2017 +0100 (2017-04-23)
parents 702cf77de7a6
children 38797c549c69
rev   line source
Hans-G?nter@1312 1 <!DOCTYPE html>
Hans-G?nter@1312 2 <html lang="de">
Hans-G?nter@1312 3 <head>
Hans-G?nter@1312 4 <meta charset="UTF-8">
Hans-G?nter@1312 5 <title>SliTaz-Schmiede</title>
Hans-G?nter@1312 6 <meta name="description" content="slitaz Entwickler Schmiede">
Hans-G?nter@1312 7 <meta name="keywords" lang="en" content="slitaz, devel, hg, bugs">
Hans-G?nter@1312 8 <meta name="author" content="Christophe Lincoln, HGT">
Hans-G?nter@1312 9 <?php include("../../lib/html/meta-link.html"); ?>
Hans-G?nter@1312 10 </head>
Hans-G?nter@1312 11 <body>
Hans-G?nter@1312 12
Hans-G?nter@1312 13 <?php
Hans-G?nter@1312 14 include("../../lib/html/header.de.html");
Hans-G?nter@1312 15 include("../../lib/html/nav.de.html");
Hans-G?nter@1312 16 include("../../lib/lang.php");
Hans-G?nter@1312 17 ?>
Hans-G?nter@1312 18
Hans-G?nter@1312 19 <!-- Content -->
Hans-G?nter@1312 20 <section id="content">
Hans-G?nter@1312 21
Hans-G?nter@1312 22 <h2>Gemeinschaftliche Verwaltung</h2>
Hans-G?nter@1312 23
Hans-G?nter@1312 24 <ul>
Hans-G?nter@1312 25 <li><a href="#kiss">„KISS“ und Standards respektieren.</a></li>
Hans-G?nter@1312 26 <li><a href="#tank">Rechner für die Entwicklung und die Internetpräsenz.</a></li>
Hans-G?nter@1312 27 <li><a href="#repos">Mercurial-Depots.</a></li>
Hans-G?nter@1312 28 <li><a href="#gui">Grafische Oberflächen in GTK und CGI</a></li>
Hans-G?nter@1312 29 <li><a href="#iconv">Implementierung von iconv().</a></li>
Hans-G?nter@1312 30 <li><a href="#pkgs">SliTaz-Pakete erzeugen.</a></li>
Hans-G?nter@1312 31 <li><a href="#website">Verwaltung der Internetpräsenz.</a></li>
Hans-G?nter@1312 32 </ul>
Hans-G?nter@1312 33
Hans-G?nter@1312 34 <h2 id="kiss">„KISS“ und Standards respektieren</h2>
Hans-G?nter@1312 35
Hans-G?nter@1312 36 <p>
Hans-G?nter@1312 37 „Keep it simple (KISS)“: befolgen Sie die besten Standards, entwerfen und schreiben
Hans-G?nter@1312 38 Sie sorgfältig Dokumentation von hoher Qualität, erzeugen Sie ein stabiles und robustes System und
Hans-G?nter@1312 39 halten Sie das Wurzeldateisystem <code>rootfs</code> in dem Direktstatrt-ISO-Abbild so klein, dass
Hans-G?nter@1312 40 es auf Rechnern mit mindestens 128 MiB Arbeitsspeicher geladen werden kann. Dennoch ist es möglich
Hans-G?nter@1312 41 GTK+2, Dialog, Kommandoprozeduren oder PHP-Werkzeuge in die Distribution zu übernehmen. Die Idee ist
Hans-G?nter@1312 42 keine Doppelarbeit zu leisten und nicht schmalspurig zu denken...
Hans-G?nter@1312 43 </p>
Hans-G?nter@1312 44
Hans-G?nter@1312 45 <h2 id="tank">Entwicklungstank - Rechner für die Entwicklung und die Internetpräsenz</h2>
Hans-G?nter@1312 46
Hans-G?nter@1312 47 <p>
Hans-G?nter@1312 48 Jeder Mitwirkende kann sich über einen sicheren Zugang an dem Projekt-Rechner anmelden, kann dort
Hans-G?nter@1312 49 Plattenplatz belegen, ein Verzeichnis <code>Public</code> anlegen und all Entwicklerwerkzeuge nutzen.
Hans-G?nter@1312 50 Entwickler können Pakete erzeugen und Verwalter der Spiegel-Depots können diese synchronisieren.
Hans-G?nter@1312 51 Auf diesem Rechner befindet sich auch der Kompilierungsautomat, die Dateien zum Laden über das
Hans-G?nter@1312 52 Netzwerk und „SliTaz Pro“: <a href="http://tank.slitaz.org/">tank.slitaz.org</a>
Hans-G?nter@1312 53 </p>
Hans-G?nter@1312 54
Hans-G?nter@1312 55 <p>
Hans-G?nter@1312 56 Anleitungen zum Erstellen von Paketen auf diesem Rechner finden sich im Kochbuch:
Hans-G?nter@1312 57 <a href="http://doc.slitaz.org/de:cookbook:buildhost">Entwicklungstank</a>.
Hans-G?nter@1312 58 </p>
Hans-G?nter@1312 59
Hans-G?nter@1312 60 <h2 id="repos">Mercurial-Depots</h2>
Hans-G?nter@1312 61
Hans-G?nter@1312 62 <p>
Hans-G?nter@1312 63 SliTaz-Mercurial- (oder Hg-) Depots können von jedem unter dem URL
Hans-G?nter@1312 64 <a href="http://hg.slitaz.org/">http://hg.slitaz.org/</a> angesehen und dupliziert werden.
Hans-G?nter@1312 65 Benutzer mit Schreibrecht können über die Adresse <code>repos.slitaz.org</code> direkt auf
Hans-G?nter@1312 66 die Depots zugreifen. Beim Schreiben müssen ein Benutzername und ein Kennwort angegeben werden.
Hans-G?nter@1312 67 Mercurial verwendet Python. Es kann auf SliTaz mit <code>tazpkg get-install mercurial</code>
Hans-G?nter@1312 68 installiert werden.
Hans-G?nter@1312 69 </p>
Hans-G?nter@1312 70
Hans-G?nter@1312 71 <h3>~/.hgrc</h3>
Hans-G?nter@1312 72
Hans-G?nter@1312 73 <p>
Hans-G?nter@1312 74 Vor dem Transfer des ersten Beitrags auf den Entwicklungsrechner (mit <code>hg push</code>)
Hans-G?nter@1312 75 muss eine korrekte Konfigurationsdatei <code>~/.hgrc</code> erstellt werden. Darin sollte
Hans-G?nter@1312 76 Ihre E-Mail-Adresse und Ihr richtiger Name enthalten sein. Hier ein Beispiel:
Hans-G?nter@1312 77 </p>
Hans-G?nter@1312 78 <pre class="script">
Hans-G?nter@1312 79 [ui]
Hans-G?nter@1312 80 username = Vorname Nachname &lt;name@example.de&gt;
Hans-G?nter@1312 81 </pre>
Hans-G?nter@1312 82
Hans-G?nter@1312 83 <h4>Duplizieren, Ändern, Änderungen lokal übernehmen und Änderungen transferieren</h4>
Hans-G?nter@1312 84
Hans-G?nter@1312 85 <p>
Hans-G?nter@1312 86 Ein Depot, z.B. der Wok <code>wok</code>, wird wie folgt lokal dupliziert:
Hans-G?nter@1312 87 </p>
Hans-G?nter@1312 88 <pre>
Hans-G?nter@1312 89 $ hg clone http://repos.slitaz.org/wok
Hans-G?nter@1312 90 </pre>
Hans-G?nter@1312 91 <p>
Hans-G?nter@1312 92 Jetzt muss das Verzeichnis <code>wok</code> als Arbeitsverzeichnis eingestellt werden, sonst funktionieren die
Hans-G?nter@1312 93 <code>hg</code>-Kommandos nicht. Zum Anzeigen aller oder nur der letzten Änderungen:
Hans-G?nter@1312 94 </p>
Hans-G?nter@1312 95 <pre>
Hans-G?nter@1312 96 $ hg log
Hans-G?nter@1312 97 $ hg head
Hans-G?nter@1312 98 </pre>
Hans-G?nter@1312 99 <p>
Hans-G?nter@1312 100 Nach dem Hinzufügen oder Ändern von einer oder auch mehrerer Dateien den Änderungsstatus anzeigen und die Änderungen
Hans-G?nter@1312 101 lokal übernehmen:
Hans-G?nter@1312 102 </p>
Hans-G?nter@1312 103 <pre>
Hans-G?nter@1312 104 $ hg add
Hans-G?nter@1312 105 $ hg status
Hans-G?nter@1312 106 $ hg commit -m "kurze beschreibung der vorgenommenen änderungen"
Hans-G?nter@1312 107 $ hg log
Hans-G?nter@1312 108 </pre>
Hans-G?nter@1312 109 <p>
Hans-G?nter@1312 110 Mit <code>hg rollback</code> können Sie die letzte Änderung rückgängig machen. Bevor Sie die
Hans-G?nter@1312 111 Änderungen in das Depot transferieren, sollten Sie zwischenzeitliche Änderungen anderer übernehmen:
Hans-G?nter@1312 112 </p>
Hans-G?nter@1312 113 <pre>
Hans-G?nter@1312 114 $ hg pull
Hans-G?nter@1312 115 $ hg push
Hans-G?nter@1312 116 </pre>
Hans-G?nter@1312 117 <p>
Hans-G?nter@1312 118 Das ist schon alles; Ihre Änderungen, Quellprogramme oder Korrekturen sind jetzt im Depot.
Hans-G?nter@1312 119 </p>
Hans-G?nter@1312 120
Hans-G?nter@1312 121 <h4>Ein lokal dupliziertes Depot aktualisieren</h4>
Hans-G?nter@1312 122
Hans-G?nter@1312 123 <p>
Hans-G?nter@1312 124 Ein lokal dupliziertes Depot kann aus dem SliTaz-Depot aktualisiert werden mit:
Hans-G?nter@1312 125 </p>
Hans-G?nter@1312 126 <pre>
Hans-G?nter@1312 127 $ hg pull -u
Hans-G?nter@1312 128 </pre>
Hans-G?nter@1312 129
Hans-G?nter@1312 130 <h4>Weitere nützliche Kommandos</h4>
Hans-G?nter@1312 131
Hans-G?nter@1312 132 <p>
Hans-G?nter@1312 133 Weitere <code>hg</code>-Kommandos:
Hans-G?nter@1312 134 </p>
Hans-G?nter@1312 135 <ul>
Hans-G?nter@1312 136 <li><code>hg help</code> : Zeigt alle möglichen Kommandos.</li>
Hans-G?nter@1312 137 <li><code>hg rollback</code> : Die letzte Aktion (commit, pull, push) rückgängig machen.</li>
Hans-G?nter@1312 138 <li><code>hg log &lt;package&gt;</code> : Das Änderungsprotokoll eines Paketes zeigen.</li>
Hans-G?nter@1312 139 <li><code>hg head</code> : Die letzte Änderung anzeigen.</li>
Hans-G?nter@1312 140 </ul>
Hans-G?nter@1312 141
Hans-G?nter@1312 142 <h2 id="gui">Grafische Oberflächen - reines C/GTK, Yad, Vala/Genie und CGI</h2>
Hans-G?nter@1312 143
Hans-G?nter@1312 144 <p>
Hans-G?nter@1312 145 Es gibt viele Möglichkeiten, mit „open source“-Produkten eine Benutzeroberfläche zu erzeugen.
Hans-G?nter@1312 146 Bis zur Version 3.0 von SliTaz haben wir hauptsächlich Gtkdialog verwendet, um gefällige
Hans-G?nter@1312 147 und komplexe Oberflächen in GTK zu erstellen, wobei die Anweisungen ausgeführt wurden ohne
Hans-G?nter@1312 148 übersetzt werden zu müssen. Aber gtkdialog wird nicht mehr gewartet und es fehlen viele
Hans-G?nter@1312 149 neuere GTK-Funktionalitäten. Daher sind wir bei einfachen Grafikfenstern auf Yad umgestiegen.
Hans-G?nter@1312 150 Bei der Verwaltung des Systems und der Pakete sowie bei den Konfigurationswerkzeugen sind wir
Hans-G?nter@1312 151 auf TazPanel umgestiegen, eine Web-Oberfläche mit CGI-Nutzung, die mit xHTML&nbsp;5 und CSS&nbsp;3
Hans-G?nter@1312 152 programmiert wird.
Hans-G?nter@1312 153 </p>
Hans-G?nter@1312 154 <p>
Hans-G?nter@1312 155 Yad ist sehr einfach, kann aber keine komplexen Oberflächen erzeugen: schon
Hans-G?nter@1312 156 zwei oder drei Einträge mit Marken und einige Schaltflächen sind nicht möglich. Daher mussten
Hans-G?nter@1312 157 wir eine andere Möglichkeit suchen. Der Vorteil eines Interpreters ist, dass die Anweisungen
Hans-G?nter@1312 158 nicht übersetzt werden müssen sondern zur Laufzeit verarbeitet werden, was die Anwendung
Hans-G?nter@1312 159 allerdings verlangsamt.
Hans-G?nter@1312 160 Programme in C zu schreiben ist komplex und daran werden sich weniger Mitwirkende beteiligen, da
Hans-G?nter@1312 161 Kommandoprozeduren leichter zu verstehen sind. Daher lautet die Richtlinie jetzt:
Hans-G?nter@1312 162 unsere Kommandoprozeduren beibehalten und verbessern und Benutzeroberflächen dafür in GTK oder CGI
Hans-G?nter@1312 163 zur Verfügung stellen.
Hans-G?nter@1312 164 </p>
Hans-G?nter@1312 165 <p>
Hans-G?nter@1312 166 Es gibt viele neue Programmiersprachen, die GTK verwenden, z.B. Genie, Vala oder GTKaml.
Hans-G?nter@1312 167 Beachten Sie aber, dass sie nicht so verbreitet sind wie C und GTK und nicht wirklich
Hans-G?nter@1312 168 leichter zu erlernen und zu nutzen sind. Für einfache Grafikfenster können Sie Kommandoprozeduren
Hans-G?nter@1312 169 benutzen. Sie können auch Vala benutzen, aber reines GTK braucht für ein einzelnes Fenster auch nur 14
Hans-G?nter@1312 170 Anweisungszeilen:
Hans-G?nter@1312 171 </p>
Hans-G?nter@1312 172 <pre>
Hans-G?nter@1312 173 #include &lt;gtk/gtk.h&gt;
Hans-G?nter@1312 174
Hans-G?nter@1312 175 int main(int argc, char *argv[])
Hans-G?nter@1312 176 {
Hans-G?nter@1312 177 GtkWidget *window;
Hans-G?nter@1312 178
Hans-G?nter@1312 179 gtk_init(&amp;argc, &amp;argv);
Hans-G?nter@1312 180 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
Hans-G?nter@1312 181 g_signal_connect (G_OBJECT (window), "destroy",
Hans-G?nter@1312 182 G_CALLBACK (gtk_main_quit), NULL);
Hans-G?nter@1312 183
Hans-G?nter@1312 184 gtk_widget_show(window);
Hans-G?nter@1312 185 gtk_main();
Hans-G?nter@1312 186 return 0;
Hans-G?nter@1312 187 }
Hans-G?nter@1312 188 </pre>
Hans-G?nter@1312 189 <p>
Hans-G?nter@1312 190 Wenn Sie sich nicht sicher sind, welche Programmiersprache Sie verwenden sollen, können Sie Ihre Wahl
Hans-G?nter@1312 191 bei der „Mailing“-Liste zur Diskussion stellen.
Hans-G?nter@1312 192 Wenn Sie nur eine einfache grafische Oberfläche brauchen, können Sie sich <code>tazbox</code> im
Hans-G?nter@1312 193 Depot <code>slitaz-tools</code> ansehen; das Paket enthält kleine Programme für die grafische Oberfläche
Hans-G?nter@1312 194 wie z.B. ein Abmeldefenster. TazWeb ist das erste Teilprojekt von SliTaz, das in reinem GTK geschrieben wurde.
Hans-G?nter@1312 195 Sie können es ansehen um zu lernen, wie man die Funktion <code>system()</code> in einer grafischen
Hans-G?nter@1312 196 Oberfläche verwenden kann. So verwendet TazWeb beispielsweise <code>wget</code> zum Dateitransfer und
Hans-G?nter@1312 197 <code>sed</code> um Lesezeichen hinzuzufügen.
Hans-G?nter@1312 198 </p>
Hans-G?nter@1312 199 <p>
Hans-G?nter@1312 200 Yad-Anweisungsprozeduren sollten die TazYad-Richtlinien befolgen:
Hans-G?nter@1312 201 <a href="http://hg.slitaz.org/slitaz-dev-tools/raw-file/tip/tazyad/README">README</a> und
Hans-G?nter@1312 202 <a href="http://hg.slitaz.org/slitaz-dev-tools/raw-file/tip/tazyad/tazyad">Programmierbeispiele</a>
Hans-G?nter@1312 203 </p>
Hans-G?nter@1312 204
Hans-G?nter@1312 205 <h2 id="iconv">Implementierung von iconv()</h2>
Hans-G?nter@1312 206
Hans-G?nter@1312 207 <p>
Hans-G?nter@1312 208 SliTaz verwendet iconv() aus der GNU glibc - alle Pakete, die <code>libiconv</code> anbieten,
Hans-G?nter@1312 209 müssen die Bibliothek aus <code>glibc-locale</code> verwenden.
Hans-G?nter@1312 210 Daher gibt es kein Paket <code>libiconv</code> (1.2 MB) mehr in SliTaz.
Hans-G?nter@1312 211 </p>
Hans-G?nter@1312 212
Hans-G?nter@1312 213 <h2 id="pkgs">SliTaz-Pakete erzeugen</h2>
Hans-G?nter@1312 214
Hans-G?nter@1312 215 <p>
Hans-G?nter@1312 216 Für die offizielle Paketerzeugung werden die Kochwerkzeuge verwendet. Diese sind in dem Paket <code>cookutils</code>
Hans-G?nter@1312 217 enthalten, das in jedem SliTaz-System installiert ist, wie auch das
Hans-G?nter@1312 218 <a href="http://hg.slitaz.org/cookutils/raw-file/tip/doc/cookutils.de.html">Kochwerkzeuge-Handbuch</a> für die Verwendung der Kochwerkzeuge. Damit werden Pakete erzeugt, die von TazPKG verwaltet werden können.
Hans-G?nter@1312 219 </p>
Hans-G?nter@1312 220 <p>
Hans-G?nter@1312 221 Die Pakete werden bei SliTaz automatisch von <a href="http://cook.slitaz.org/">„Cooker“</a> aus einem
Hans-G?nter@1312 222 Quellpaket und einem Rezep im Wok erzeugt. Im Kochbuch ist das Format der
Hans-G?nter@1312 223 <a href="http://doc.slitaz.org/de:cookbook:receipt">Rezepte</a> beschrieben.
Hans-G?nter@1312 224 Die Beschreibung der Kochwerkzeuge und der Rezepte sollten Sie gelesen haben, bevor Sie mit der
Hans-G?nter@1312 225 Paketerzeugung beginnen.
Hans-G?nter@1312 226 </p>
Hans-G?nter@1312 227 <p>
Hans-G?nter@1312 228 Bei der Auswahl eines Paketes für SliTaz sollten nur solche in Betracht kommen, die
Hans-G?nter@1312 229 nützlich sind und funktionieren. Davon sollten Sie das kleinste verfügbare auswählen.
Hans-G?nter@1312 230 Es sollten nicht mehrere Pakete mit gleicher Funktionalität erstellt werden.
Hans-G?nter@1312 231 Die aktuelle Auswahl der Pakete ist aber nicht festgeschrieben. Wenn es eine Alternative zu einem Paket
Hans-G?nter@1312 232 gibt, die noch kleiner ist, mehr Funktionen enthält oder mit ein paar KB mehr <em>attraktiver</em> ist,
Hans-G?nter@1312 233 kann die Übernahme bei der „Mailing-Liste“ diskutiert werden.
Hans-G?nter@1312 234 Besondere Anforderungen werden an Pakete gestellt, die in Direktstart-ISO-Abbilder
Hans-G?nter@1312 235 übernommen werden sollen. Bei diesen sollten Symbolinformationen aus den Objektprogrammen
Hans-G?nter@1312 236 sowie unnötige Abhängigkeiten und Übersetzeroptionen entfernt werden.
Hans-G?nter@1312 237 Im Allgemeinen werden solche Pakete vor der Freigabe ebenfalls bei der „Mailing-Liste“ zur
Hans-G?nter@1312 238 Diskussion gestellt.
Hans-G?nter@1312 239 </p>
Hans-G?nter@1312 240 <p>
Hans-G?nter@1312 241 Bevor Sie beginnen, Pakete für SliTaz zu übersetzen und erzeugen, stellen Sie zur Vermeidung von
Hans-G?nter@1312 242 Doppelarbeit sicher, dass es etwas entsprechendes nicht schon im
Hans-G?nter@1312 243 <a href="http://download.tuxfamily.org/slitaz/packages/undigest/">inoffiziellen Wok</a>
Hans-G?nter@1312 244 gibt. Die Mitglieder der „Mailing-Liste“ geben gerne Hinweise und das
Hans-G?nter@1312 245 <a href="http://hg.slitaz.org/cookutils/raw-file/tip/doc/cookutils.de.html">Kochwerkzeuge-Handbuch</a>
Hans-G?nter@1312 246 sollte für Anfänger hilfreich sein.
Hans-G?nter@1312 247 </p>
Hans-G?nter@1312 248
Hans-G?nter@1312 249 <h3 id="pkgs-naming">Benennung von Paketen</h3>
Hans-G?nter@1312 250
Hans-G?nter@1312 251 <p>
Hans-G?nter@1312 252 In den meisten Fällen stimmt der Name des Paketes mit dem Namen des Quellpaketes überein. Ausnahmen sind
Hans-G?nter@1312 253 Python, Perl, PHP, Ruby und Lua-Module. Beispielsweise heisst das Paket,
Hans-G?nter@1312 254 das ein „Kid template system“, in Python und XML geschrieben, enthält:
Hans-G?nter@1312 255 <code>python-kid</code>.
Hans-G?nter@1312 256 </p>
Hans-G?nter@1312 257
Hans-G?nter@1312 258 <h2 id="website">Verwaltung der Internetpräsenz</h2>
Hans-G?nter@1312 259
Hans-G?nter@1312 260 <p>
Hans-G?nter@1312 261 Die Internetpräsenz wird über das Mercurial-Depot <code>website</code> administriert. Dieses kann dupliziert
Hans-G?nter@1312 262 werden mit:
Hans-G?nter@1312 263 </p>
Hans-G?nter@1312 264 <pre>
Hans-G?nter@1312 265 $ hg clone http://hg.slitaz.org/website
Hans-G?nter@1312 266 oder wenn Sie die entsprechende Berechtigung haben:
Hans-G?nter@1312 267 $ hg clone http://repos.slitaz.org/website
Hans-G?nter@1312 268 </pre>
Hans-G?nter@1312 269
Hans-G?nter@1312 270 <h3>xHTML-Programmierstil</h3>
Hans-G?nter@1312 271
Hans-G?nter@1312 272 <p>
Hans-G?nter@1312 273 Die Seiten und verschiedene <em>Handbücher</em> sind in xHTML&nbsp;1.0&nbsp;transitional
Hans-G?nter@1312 274 programmiert. Die Überschrift der Stufe 1 wird nur einmal (ganz oben) verwendet,
Hans-G?nter@1312 275 Stufe 2 ist der Titel des Dokuments und die Stufen 3 und 4 werden für weitere Abstufungen
Hans-G?nter@1312 276 der Überschriften benutzt. Wenn eine Liste statt „smart anchors“ verwendet wird,
Hans-G?nter@1312 277 beginnt sie oben, direkt unterhalb einer Überschrift der Stufe 2.
Hans-G?nter@1312 278 Absätze werden in die Markierungen <code>&lt;p&gt;&lt;/p&gt;</code> eingeschlossen.
Hans-G?nter@1312 279 Für Einrückungen werden Tabulatoren verwendet. Dies ist in der Semantik begründet und sie
Hans-G?nter@1312 280 benötigen weniger Speicherplatz. Zur Darstellung von Kommandonamen oder ähnlichem innerhalb
Hans-G?nter@1312 281 eines Absatzes wird vorzugsweise <code>&lt;code&gt;</code> verwendet.
Hans-G?nter@1312 282 Beispiele für die Anwendung von Kommandos in einem Terminal werden als formatierter Text mit
Hans-G?nter@1312 283 <code>&lt;pre&gt;</code> ausgegeben, z.B.:
Hans-G?nter@1312 284 </p>
Hans-G?nter@1312 285 <pre>
Hans-G?nter@1312 286 $ command
Hans-G?nter@1312 287 </pre>
Hans-G?nter@1312 288 <p>
Hans-G?nter@1312 289 Zur Anzeige von Text, der kopiert und eingefügt werden kann, wie etwa Kommandoprozeduren,
Hans-G?nter@1312 290 Quellprogrammausschnitte, Konfigurationsdateien usw. wird ebenfalls
Hans-G?nter@1312 291 <code>&lt;pre&gt;</code> verwendet, aber mit einer CSS-Klasse namens “script”. Beispiel:
Hans-G?nter@1312 292 </p>
Hans-G?nter@1312 293 <pre class="script">
Hans-G?nter@1312 294 &lt;pre class="script"&gt;
Hans-G?nter@1312 295
Hans-G?nter@1312 296 code...
Hans-G?nter@1312 297
Hans-G?nter@1312 298 &lt;/pre&gt;
Hans-G?nter@1312 299 </pre>
Hans-G?nter@1312 300 <p>
Hans-G?nter@1312 301 <em>Hervorgehobene</em> Wörter erhalten das Merkmal <code>&lt;em&gt;</code>
Hans-G?nter@1312 302 und interne Verknüpfungen sind stets relativ. Denken Sie auch daran, Ihr Programm
Hans-G?nter@1312 303 mit dem <em>„validator“</em> des W3C auf Konformität zu prüfen.
Hans-G?nter@1312 304 </p>
Hans-G?nter@1312 305
Hans-G?nter@1312 306 <h2 id="diff">Diff und patch</h2>
Hans-G?nter@1312 307
Hans-G?nter@1312 308 <p>
Hans-G?nter@1312 309 Die Programme <code>diff</code> und <code>patch</code> dienen der Erstellung einer Datei, die
Hans-G?nter@1312 310 Unterschiede zwischen zwei Dateien enthält und mit deren Hilfe die Änderungen angewendet werden können.
Hans-G?nter@1312 311 Diese Technik wird oft angewendet, wenn mehrere Personen an einem Projekt arbeiten, damit Änderungen
Hans-G?nter@1312 312 an einer Originaldatei klar extrahiert werden können. Um eine <code>diff</code>-Datei zu erstellen,
Hans-G?nter@1312 313 die mit einem Texteditor für Menschen gut lesbar ist, muss die Option <code>-u</code> angegeben werden:
Hans-G?nter@1312 314 </p>
Hans-G?nter@1312 315 <pre>
Hans-G?nter@1312 316 $ diff -u file.orig file.new &gt; file.diff
Hans-G?nter@1312 317 </pre>
Hans-G?nter@1312 318 <p>
Hans-G?nter@1312 319 Zum Anbringen der Änderungen an der Originaldatei:
Hans-G?nter@1312 320 </p>
Hans-G?nter@1312 321 <pre>
Hans-G?nter@1312 322 $ patch file.orig file.diff
Hans-G?nter@1312 323 </pre>
Hans-G?nter@1312 324
Hans-G?nter@1312 325 <!-- End of content -->
Hans-G?nter@1312 326 </section>
Hans-G?nter@1312 327
Hans-G?nter@1312 328 <?php include("../../lib/html/footer.html"); ?>
Hans-G?nter@1312 329
Hans-G?nter@1312 330 </body>
Hans-G?nter@1312 331 </html>