====== Entwicklung ====== ===== Einführung ===== SliTaz bietet Entwicklungswerkzeuge zur Gestaltung von Webseiten, Bearbeitung von Kommandoprozeduren und Quellprogrammen. Bei [[http://www.slitaz.org/de/devel/]] gibt es allgemeine Informationen über die Entwickler und über Möglichkeiten, einen Beitrag zu leisten. ===== Kommandoprozeduren ===== Kommandoprozeduren zu schreiben ist der einfachste Einstieg in die Programmierung, da man schnell Resultate sieht und die einzige Voraussetzung die Fähigkeit ist, ein Terminal zu öffnen und einen Texteditor wie Nano, Leafpad oder Geany benutzen zu können. Mit Kommandoprozeduren können viele Aufgaben in einem GNU/Linux-System ausgeführt werden, wie etwa Systeminitialisierung, Datensicherungen, sich wiederholende Aufgaben, Systeminformationen anzeigen, Dateien erzeugen oder modifizieren usw. In Kommandoprozeduren können Variablen, Funktionen oder Aufrufe zum Einbeziehen einer anderen Datei verwendet werden. Der Name von Kommandoprozeduren ist beliebig, aber die Verwendung der Endung //.sh// ist weit verbreitet. === Eine Kommandoprozedur erzeugen === Vor Erstellung einer neuen Kommandoprozedur muss entschieden werden, welcher Kommandointerpreter verwendet werden soll. In den meisten Kommandoprozeduren wird ///bin/sh// verwendet, da dies die Portabilität erhöht, aber es gibt auch Kommandoprozeduren, die ///bin/bash// voraussetzen, welches dann auf diesem System installiert sein muss. Damit eine Kommandoprozedur zum Ablauf gebracht werden kann, muss die Datei durch Ändern der Berechtigungen mit dem Kommando //chmod// ausführbar gemacht werden. Mit den folgenden Kommandos wird eine Kommandoprozedur //script.sh// erzeugt und ausführbar gemacht: $ touch script.sh $ chmod +x script.sh Diese ausführbare Datei muss nun aber noch mit Inhalt gefüllt werden. Die Datei kann mit dem Texteditor Nano (im Textmodus) oder mit dem Texteditor Beaver (im Grafikmodus) bearbeitet werden: $ nano script.sh Oder: $ beaver script.sh & Es folgt ein Beispiel für eine Kommandoprozedur, die eine Variable NAME enthält und deren Inhalt für die Ausgabe mit dem Kommando //echo// benutzt: #!/bin/sh NAME="kayam" echo "$NAME ist nett." Nach Erstellung oder Änderung der Kommandoprozedur //script.sh// kann diese ausgeführt werden mit: $ ./script.sh Soweit diese kurze Einführung in Kommandoprozeduren. Über das Internet sind zahlreiche weitere Informationen über Kommandoprozeduren verfügbar. ===== Dialog ===== Mit dialog kann Konsolen eine grafische Oberfläche aufgesetzt werden. Dies wird z.B. von der SliTaz-Installationsprozedur genutzt. Die Konfigurationsdateien befinden sich im Verzeichnis ///etc/dialogrc// bzw. //~/dialogrc// für jeden Benutzer. Es folgt ein einfaches Beispiel für den Einsatz von dialog von Konsole oder Terminal: $ dialog --title "Hello $USER" \ --msgbox "Message made by dialog." 5 54 In dem Verzeichnis //sample// im Quellcodeverzeichnis von //dialog// befinden sich zahlreiche Beispielprozeduren. Der Quellcode ist erhältlich bei [[http://invisible-island.net/dialog/dialog.html]]. Transferieren und entpacken mit: $ wget ftp://invisible-island.net/dialog/dialog.tar.gz $ tar xzf dialog.tar.gz ===== Beaver ===== Beaver ist ein einfacher und schneller Editor für Quellprogramme mit Syntaxhervorhebung. Die Einstellungen des Programms können über das Menü //Bearbeiten// geändert werden. Beaver kann über das Menü //Entwicklung → Beaver Code Editor// oder (in einem X-Terminal) mit dem Kommando $ beaver & gestartet werden. ===== Geany IDE===== Geany ist eine integrierte Entwicklungsumgebung (IDE). Sie ist einfach und klein und bietet Syntaxhervorhebung, Reiter und Selbstvervollständigung. ==== Geany starten ==== Geany kann auf SliTaz mit # tazpkg get-install geany installiert werden. Die Einstellungen können über das Menü //Bearbeiten → Einstellungen// geändert werden. Geany kann mit dem Kommando $ geany & gestartet werden. Anmerkung: Bei der Übersetzung von Quellprogrammen gibt es die Möglichkeit, die Option //enable-the-force// in einer //./configure//-Prozedur anzugeben, falls es nötig sein sollte, ein Jedi-Ritter zu werden! ===== Perl und Microperl - Perl-Programme erstellen und ausführen ===== Die mächtige Sprache Perl steht auf SliTaz über die Programme //perl// und //microperl// zur Verfügung. Microperl ist eine stromlinienförmige Version von perl, die aus den offiziellen Quellen übersetzt wurde. Perl-Programme, die mit Microperl laufen, sind kompatibel mit der Vollversion von Perl. Eine der Stärken von Perl ist seine Portabilität: Es kann auf jedem System eingesetzt werden und da es ein Interpreter ist, wird ein Perl-Programm nicht übersetzt, sondern direkt zum Ablauf gebracht. Auf der SliTaz-„LiveCD“ sind Perl und Microperl standardmäßig nicht installiert. Sie können in ein eigenes ISO-Abbild gebracht oder mit der Paketverwaltung installiert werden. Zur Beachtung: Microperl ist nur 1 MB groß und enthält keine Module: # tazpkg install perl oder: # tazpkg install microperl === Hallo Welt! - Beispiel === Diese Prozedur soll „Hallo Welt!“ ausgeben. Die Datei //hello.pl// wird erzeugt, ausführbar gemacht und mit Beaver bearbeitet. Diese Datei hat zwar die Endung //.pl//, kann aber beliebig (auch ohne die Endung //.pl//) benannt werden. $ touch hello.pl $ chmod +x hello.pl $ beaver hello.pl & Die erste Zeile einer Perl-Prozedur enthält den Pfadnamen des Perl-Interpreters, normalerweise ///usr/bin/perl//. Zur Ausgabe von Text dient die Anweisung //print//. Perl unterscheidet zwischen Groß- und Kleinschreibung. Jede Anweisungszeile sollte mit einem Semikolon beendet werden. Hier das Beispiel: #!/usr/bin/perl # print "Hallo Welt!\n"; Ausführen mit: $ ./hello.pl === CGI-Prozeduren und Perl === CGI-Prozeduren sind dazu vorgesehen, dynamisch aufgebaute Webseiten anzuzeigen. Perl zusammen mit dem Web-Server LightTPD ermöglicht die Nutzung von CGI-Prozeduren über „public space“ oder virtuelle Hosts. Perl ist konform mit Web 2.0 und kann xHTML-Seiten erzeugen. Wenn auf SliTaz in Perl geschriebene CGI-Prozeduren genutzt werden sollen, muss Perl oder Microperl installiert und der Web-Server LightTPD konfiguriert sein. Standardmäßig können Kommandoprozeduren (mit der Endung .sh) in dem Verzeichnis //cgi-bin// abgelegt werden. Bei geeigneter Konfigurierung des Web-Servers können CGI-Prozeduren im Verzeichnis //$HOME/Public/cgi-bin// mit den Endungen //.pl// oder //.cgi// abgelegt werden und lokal oder von ferne angesehen werden. Beispiel für eine CGI-Prozedur in Perl: #!/usr/bin/perl # print "content-type : text/html\n\n"; print "Hallo Welt!\n"; ===== Python ===== Die Programmiersprache Python ist als Paket verfügbar. Zusammen mit dem Web-Server LightTPD können damit CGI-Anwendungen realisiert werden, wenn der Web-Server sorgfältig konfiguriert ist. Die offiziellen Mercurial-Depots von SliTaz sind Python-CGI-Anwendungen, passend zu einem zuverlässigen und robusten Produkt. Python kann auf SliTaz mit # tazpkg get-install python installiert werden. ===== Ruby ===== Die Programmiersprache Ruby ist als Paket verfügbar. Ruby ist (Zitat von der offiziellen Internetpräsenz): "A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write". Ruby behandelt Ausnahmen („exceptions“), unterstützt objektorientierte Programmierung (OOP), automatische Speicherverwaltung und ist in hohem Maße portabel. Ruby kann auf SliTaz mit # tazpkg get-install ruby installiert werden. ===== Toolchain - Bibliotheken, C-Übersetzer und weitere Werkzeuge ===== Zur Übersetzung von Quellprogrammen werden mindestens die Basiswerkzeuge Binutils, Glibc, C-Übersetzer, „Kernel headers“ und Make benötigt. Mit diesem Werkzeugkasten erzeugen die SliTaz-Entwickler das ganze System aus dem Quellcode. Toolchain mit allen benötigten Paketen kann auf SliTaz mit # tazpkg get-install slitaz-toolchain installiert werden. Damit können dann Basisanwendungen im Textmodus problemlos mit dem Kommandointerpreter „Busybox Ash“ übersetzt werden, wohingegen einige andere Pakete Bash benötigen. GNU Bash und andere Entwicklungswerkzeuge wie Flex, M4, Bison und Pkg-config sind als Pakete verfügbar. Das Paket pkg-config kann z.B. mit $ tazpkg search pkg-config gesucht werden. Wenn Quellprogramme übersetzt werden sollen, die die Ncurses-Bibliothek benötigen, muss das Paket ncurses-dev installiert werden. Das Paket ncurses enthält auch einige kleine Programme wie //tic// und //tac//: $ tazpkg search ncurses