26.02.2014 Aufrufe

LinuxUser Modernes Web (Vorschau)

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

www.linux-user.de<br />

Moderne<br />

<strong>Web</strong>sites<br />

Bildsammlung bearbeiten mit ImageMagick S. 68<br />

Experten-Tools fürs Netzwerk: Netcat & Co. S. 74<br />

SSH-Sitzungen managen mit AutoSSH/Mosh S. 82<br />

EUR 5,50<br />

Deutschland<br />

ÖsterreichEUR 6,30<br />

Schweiz sfr 11,00<br />

Benelux EUR 6,50<br />

Spanien EUR 7,45<br />

Italien EUR 7,45<br />

08.2012<br />

08.2012<br />

Das Magazin für die Praxis<br />

Autokey • Byobu • Gramps • Mypaint • NETCAT • SSH • <strong>Modernes</strong> WEB<br />

Schicke Sites Aufsetzen mit HTML5, CSS3 und Nosql-Datenbank<br />

<strong>Modernes</strong> WEB<br />

Komfort-Datenspeicher S. 29<br />

Im Nu zum interaktiven <strong>Web</strong>auftritt<br />

mit der NoSQL-Datenbank CouchDB<br />

Schlanke <strong>Web</strong>server S. 38, 44<br />

Komplettpaket Hiawatha mit SSL und IPv6,<br />

virtuelle Hosts auf schmaler Hardware mit Nginx<br />

Stressfrei arbeiten mit HTML5 und CSS3 S. 24, 34<br />

Freie Codegeneratoren, GUI- und AJAX-Toolkits nutzen, mit dem<br />

Gecko-basierten <strong>Web</strong>editor Bluegriffon WYSIWYG programmieren<br />

SOHO-Multitalent Samsung CLX-6220FX<br />

Drucken, faxen, scannen und kopieren im Netz – der neue<br />

Alleskönner von Samsung mit perfektem Linux-Support S. 78<br />

Byobu S. 62<br />

Terminal-Ausbau<br />

mit allem Komfort<br />

MyPaint S. 55<br />

Arbeitstier für<br />

Zeichenkünstler<br />

4 195111 005504 08<br />

Familiengeschichte<br />

dokumentieren S. 50<br />

Mit Gramps ganz einfach zum<br />

übersichtlichen Stammbaum<br />

Eingaben wie von<br />

Zauberhand S. 58<br />

Auf Knopfdruck Texte und<br />

Skripte in jeder Anwendung<br />

Siduction: Tiefer Einblick in Razor-qt S. 6<br />

KDEs kleiner Bruder: Wieselflinker Desktop auf Qt-Basis mit<br />

minimalen Hardware-Ansprüchen und tollen Funktionen


Born to<br />

be ROOT!<br />

keine Mindestvertragslaufzeit<br />

keine Einrichtungsgebühr<br />

Root Server r Linux<br />

Level<br />

el 1. Der effiziente<br />

ente Sprinter!<br />

SICHERHEIT UND EFFIZIENZ<br />

CPU<br />

Leistung<br />

RAM<br />

HD<br />

Traffic<br />

,00<br />

€/Mon.*<br />

Intel Sandy Bridge G530<br />

2 x 2,4 GHz<br />

4 GB<br />

1000 GB<br />

Unlimited*<br />

r<br />

ie<br />

NaturEnergie<br />

NaturEnerg<br />

Sie gehen keine e Kompromisse misse<br />

in Sachen Datensicher-<br />

heit ein? Wir<br />

auch nicht! Unsere e Rechenzentren en<br />

entren sind<br />

streng nach<br />

ISO<br />

27001 01<br />

TÜV-zertifiziert. t. Gleichzeitig<br />

eitig<br />

denken n wir<br />

an<br />

die Umwelt und<br />

nutzen regenerative<br />

enerativ<br />

Energien.<br />

n.<br />

Der Root<br />

ot<br />

Server Linux Level el<br />

1 von STRATO holt das Optimum an<br />

Leistung und Energieeffizienz eeffizienz heraus, was<br />

aktuelle e Server-Hard-<br />

e<br />

ware<br />

hergibt. Was<br />

wir<br />

an<br />

Energie e sparen<br />

geben<br />

wir<br />

durch<br />

den<br />

günstigen n Preis gerne an Sie weiter. Profitieren Sie<br />

davon!<br />

* Traffic-Unlimited: Keine zusätzlichen Kosten durch Traffic (bei Traffic-Verbrauch über 1.000 GB/ Monat<br />

und danach je weitere 300 GB erfolgt eine Umstellung der Anbindung auf max. 10 MBit/s. Erneute Freischaltung<br />

der vollen Bandbreit jeweils kostenlos über den Kundenservicebereich). Alle Preise inkl. MwSt.<br />

Info: 0 18 05 - 00 76 77 | strato-pro.de<br />

(0,14€/Min. aus dem dt. Festnetz, Mobilfunk max. 0,42€/Min.)


editorial<br />

Da seh ich schwarz<br />

Sehr geehrte Leserinnen und Leser,<br />

Fedora 18, die „kugelrunde Kuh“<br />

(Spherical Cow) verspricht ein<br />

ganz besonderes Release zu werden<br />

– nicht nur wegen des von<br />

Microsoft signierten, UEFI-Secure-Boot-kompatiblen<br />

Bootloaders,<br />

der bereits für ein mächtiges<br />

Rauschen im Blätterwald sorgte.<br />

Bislang fast gänzlich unbemerkt<br />

haben sich das Gnome-Projekt<br />

und Fedora für das Release eine<br />

tolle Neuerung in Sachen Benutzerfreundlichkeit<br />

ausgedacht, der<br />

sie die auf den ersten Blick relativ<br />

harmlos wirkende Bezeichnung<br />

Offline System Updates<br />

gegeben haben [1].<br />

Das Offline-System-<br />

Update, laut Fedora-Wiki<br />

für die „Aktualisierung<br />

von Betriebssystemkomponenten“<br />

gedacht, aber<br />

in Wirklichkeit für den<br />

Gnome-3-Desktop ausgebrütet,<br />

funktioniert folgendermaßen:<br />

Das System<br />

lädt zunächst ohne<br />

jede Benutzerinteraktion<br />

die betreffenden Komponenten<br />

im Hintergrund<br />

herunter. Erst nachdem<br />

es das erledigt hat, informiert es<br />

Sie davon, dass Updates zum Einspielen<br />

vorliegen, und fragt, ob es<br />

diese nun installieren soll, oder<br />

Sie das Update auf später (Not<br />

now) verschieben möchten (siehe<br />

Interface-Mockups unter [2]).<br />

Stimmen Sie der Aktualisierung<br />

zu, fährt Fedora 18 die aktuelle<br />

Sitzung herunter und bootet in einen<br />

speziellen System-Update-<br />

Modus, in dem es die neue Software<br />

einspielt (siehe Abbildung).<br />

Ist das erledigt, rebootet der<br />

Rechner wieder, diesmal zurück in<br />

den voreingestellten Sitzungstyp.<br />

Reboot beim Einspielen von Aktualisierungen,<br />

Updates werden<br />

konfiguriert, bitte schalten Sie den<br />

Computer nicht aus – Update 3 von<br />

69 …, kommt Ihnen das bekannt<br />

vor? Genau, Gnome und Fedora<br />

So soll nach Vorstellung des Gnome-Projekts der Offline-<br />

Update-Bildschirm aussehen. (Bild: live.gnome.org)<br />

wollen uns als tolle neue Errungenschaft<br />

verkaufen, was schon<br />

Generationen von Windows-<br />

Usern halb in den Wahnsinn getrieben<br />

hat, und damit die reibungslosen<br />

und störungsfreien<br />

Updates abschaffen, die eine der<br />

angenehmsten Eigenschaften von<br />

Linux darstellen.<br />

Das Ersetzen von Bibliotheken<br />

und Dateien bei laufendem Betriebssystem<br />

könne zu Anwendungsabstürzen<br />

und Inkonsistenzen<br />

führen, die sich mit der<br />

„neuen“ Methode vermeiden ließen,<br />

so lautet die schmallippige<br />

Begründung. Nur wenig auskunftsfreudiger<br />

gibt sich Richard<br />

Hughes (Red Hat), neben Lennart<br />

Poettering (ebenfalls Red Hat) einer<br />

der beiden Protagonisten dieses<br />

Vorhabens, in seinem Blog [3]:<br />

Als Beispiel für Software, die den<br />

Reboot erforderlich mache, führt<br />

er nur Firefox und Gnome-session<br />

an (beides übrigens gerade keine<br />

Betriebssystemkomponenten).<br />

Ja, liebe Freunde, geht’s denn<br />

noch? Wäre es, statt eine gestandene<br />

Linux-Distribution zu einem<br />

billigen Microsoft-Imitat zu degradieren,<br />

das bei jeder Anwendungsaktualisierung<br />

rebootet,<br />

nicht vielleicht<br />

einfacher, Firefox und<br />

Gnome ein wenig Update-freundlicher<br />

zu programmieren?<br />

Ich weiß ja<br />

nicht, wie es Ihnen geht<br />

– aber ich habe in den<br />

letzten 15 Jahren tausende<br />

Male Linux-Systeme<br />

im laufenden Betrieb<br />

aktualisiert und dabei<br />

nie auch nur das geringste<br />

Problem gehabt.<br />

Auch nicht mit Red-Hatoder<br />

Fedora-Desktops,<br />

Firefox hin oder Gnome her. Das<br />

ist jetzt wohl Geschichte …<br />

Herzliche Grüße,<br />

Jörg Luther<br />

Chefredakteur<br />

info<br />

[1] „Features: Offline System Updates“:<br />

https:// fedoraproject. org/ wiki/ Features/ OfflineSystemUpdates<br />

[2] „Software Updates“:<br />

https:// live. gnome. org/ GnomeOS/ Design/ Whiteboards/ SoftwareUpdates<br />

[3] „Looking Forward to Gnome 3.6“: http:// blogs. gnome. org/ hughsie/ 2012/ 06/​<br />

04/ offline‐os‐updates‐looking‐forward‐to‐gnome‐3‐6/<br />

www.linux-user.de 08 | 12<br />

3


08 | 12<br />

62<br />

Shell-Freaks und Terminal-Fetischisten<br />

aufgepasst:<br />

Byobu peppt die<br />

schnöde Kommandozeile zu einem<br />

multifunktionalen Interface auf.<br />

74<br />

Ob als schlanker Dateiserver, flinke<br />

Chat-Plattform oder einfach nur als<br />

Analysewerkzeug – mit Netcat und<br />

Co. haben Sie eine Werkzeugsammlung an der<br />

Hand, mit der Sie die unterschiedlichsten Aufgaben<br />

im Netz er ledigen, ohne dabei auf komplexe<br />

Software zurückgreifen zu müssen.<br />

50<br />

Woher kommen wir? Das Genealogieprogramm<br />

Gramps vermag<br />

diese Frage zwar nicht umfassend<br />

zu beantworten, hilft Ihnen aber dabei, aus<br />

den Informationen über Ihre Vorfahren eine<br />

spannende Familiengeschichte zu erstellen.<br />

Heft-DVD<br />

Aktuelles<br />

Schwerpunkt<br />

Siduction Razor-Qt.. . . . . . . 6<br />

Der leichtgewichtige Qt-Desktop<br />

Razor-qt zeigt im Debian-Sid-<br />

Derivat Siduction 12.1 sein volles<br />

Potenzial als wieselflinke GUI.<br />

Report<br />

Interview: Mandriva.. . . . . 14<br />

<strong>LinuxUser</strong> sprach mit dem neuen<br />

CEO Jean-Manuel Croset über<br />

dessen Pläne und Aussichten für<br />

das Unternehmen.<br />

Mobile Linux .. . . . . . . . . . . 18<br />

Mobilgeräte zählen zu den unentbehrlichen<br />

Bestandteilen des<br />

täglichen Lebens – und laufen oft<br />

mit Linux als Betriebssystem.<br />

78Drucken, Scannen,<br />

Faxen – drei klassische<br />

Disziplinen, die<br />

der multifunktionale CLX-6220 FX<br />

von Samsung aus dem Effeff beherrscht. Wie gut das Gerät<br />

dabei mit Linux harmoniert, zeigt unser großer Praxistest.<br />

Angetestet.............. 10<br />

Bilder in einem Rutsch konvertieren<br />

mit Converseen 0.5, Video-<br />

CDs/DVDs komfortabel erstellen<br />

mit DeVeDe 3.22, Passwörter<br />

und Zugangsdaten verwalten mit<br />

Revelation 0.4.13, Programme<br />

einfach starten mit Runner 0.2<br />

Neues rund um Linux..... 12<br />

Remotebox 1.3 hält Verbindung<br />

mit Virtualbox, Owncloud 4.0.4<br />

mit zahlreichen Bugfixes und<br />

Versionierung, Mintbox: pfiffiger<br />

Mini-Rechner mit vorinstalliertem<br />

Linux Mint, US-Navy<br />

steuert Kampfdrohnen künftig<br />

mit Linux, Grub2 erreicht endlich<br />

Final-Status, Linux-Essentials-<br />

Programm startet Prüfungen,<br />

OpenSuse 12.2 erst im September,<br />

Debian 7 „Wheezy“ im Freeze,<br />

Samsung tritt Linux-Foundation<br />

bei, Wireshark 1.8 spricht 100<br />

neue Protokolle<br />

HTML5-Tools............ 24<br />

„HMTL5 rocks“ – das findet nicht<br />

nur Google, und so gibt es zahlreiche<br />

Ressourcen, Frameworks<br />

und Werkzeuge rund um den<br />

brandneuen <strong>Web</strong>standard.<br />

CouchDB............... 29<br />

Mit CouchDB und wenigen<br />

Javascript-Kenntnissen programmieren<br />

Sie im Nu eine <strong>Web</strong>applikation<br />

inklusive Datenbank.<br />

Bluegriffon. . . . . . . . . . . . . 34<br />

Der erweiterbare HTML-Editor<br />

Bluegriffon unterstützt HTML5<br />

und beherrscht WYSIWIG.<br />

Nginx .. . . . . . . . . . . . . . . . . 38<br />

Schlank, schnell, vielseitig und<br />

einfach zu konfigurieren: Nginx<br />

bringt alles mit, was ein moderner<br />

<strong>Web</strong>server braucht. Kein Wunder,<br />

dass das Multitalent immer mehr<br />

zu Apache aufholt.<br />

Hiawatha .. . . . . . . . . . . . . . 44<br />

Der freie <strong>Web</strong>server Hiawatha<br />

legt den Fokus auf Sicherheit und<br />

geringen Ressourcenverbrauch.<br />

Damit eignet er sich besonders<br />

für kleinere <strong>Web</strong>projekte, für die<br />

Apache zu schwerfällig und komplex<br />

erscheint.<br />

4<br />

08 | 12


Heft-DVDs<br />

Auf den Heft-DVDs dieser Ausgabe befindet<br />

sich ausschließlich Anwendungssoftware.<br />

Die Datenträger enthalten keine jugendgefährdenden<br />

Inhalte.<br />

24<br />

Das moderne <strong>Web</strong><br />

zeichnet sich durch<br />

klare Strukturen aus. Wir zeigen, welche Tools Ihnen beim<br />

Programmieren mit HTML5 und CSS3 helfen, wie Sie eine interaktive<br />

Site inklusive Datenbank mit CouchDB in ein Dokument verpacken und<br />

bei Bedarf über einen schlanken, aber sicheren <strong>Web</strong>server ausliefern.<br />

Auf der Heft-DVD:<br />

Der wieselflinke Desktop<br />

Razor-qt macht von sich<br />

reden. Das exklusive<br />

Siduc tion 12.1 LU-Edition<br />

bietet Gelegenheit zum<br />

stressfreien Test (S. 6).<br />

Praxis<br />

Gramps. ............... 50<br />

Mit der Genealogie-Software<br />

Gramps fügen Sie Informationen<br />

über Ihre Ahnen zu einem spannenden<br />

Gesamtbild zusammen.<br />

MyPaint .. . . . . . . . . . . . . . . 55<br />

Einfaches Zeichnen fast wie mit<br />

Pinsel und Stift – das verspricht<br />

die Malsoftware MyPaint.<br />

Autokey .. . . . . . . . . . . . . . . 58<br />

Autokey setzt wiederkehrende<br />

Phrasen automatisch in Texte ein<br />

und automatisiert bei Bedarf beliebige<br />

andere Aufgaben.<br />

Byobu.. . . . . . . . . . . . . . . . . 62<br />

Der Sitzungsmanager Byobu<br />

erweitert die Shell um Tabs,<br />

Splitview und ein komfortables<br />

Prozessmanagement.<br />

ImageMagick............ 68<br />

Wer nicht 1000 Urlaubsbilder<br />

von Hand skalieren, normieren,<br />

beschneiden oder mit Wasserzeichen<br />

versehen möchte, für den ist<br />

die Werkzeugsammlung Image-<br />

Magick unverzichtbar.<br />

Netz&System<br />

Netcat & Co.............. 74<br />

Mit diesen kleinen Tools testen<br />

Sie im Handumdrehen Netzwerke,<br />

chatten oder setzen einen<br />

kleinen Server auf.<br />

Hardware<br />

Samsung CLX-6220FX .... 78<br />

Samsung will mit seinen Profi-Geräten<br />

auch bei Linux-Anwendern<br />

punkten. Unser Test untersucht,<br />

wie gut das gelingt.<br />

Know-how<br />

Mosh/AutoSSH .. . . . . . . . . 82<br />

Das Duo verleiht selbst der langsamsten<br />

SSH-Verbindung Flügel<br />

und sorgt für schnelles Weiterarbeiten<br />

nach einem Abbruch.<br />

Service<br />

Editorial................. 3<br />

IT-Profimarkt ........... 88<br />

Events/Inserenten .. . . . . . 94<br />

Impressum............. 95<br />

<strong>Vorschau</strong> 09/2012........ 96<br />

Heft-DVD-Inhalt .. . . . . . . . 97<br />

Wer seine Daten in der Cloud<br />

ablegt, dem bietet das auf<br />

Kubun tu 12.04 basierende<br />

Netrunner 4.2 eine ausgezeichnete<br />

Plattform, um<br />

von jedem beliebigen Ort<br />

der Welt aus mit diesen<br />

Dateien zu arbeiten.<br />

Ein schlankes Admin-<br />

System braucht keine<br />

GUI: Grml 2012.05<br />

setzt voll auf die<br />

Kommandozeile,<br />

integriert dabei alle<br />

Tools aber so, dass<br />

auch Einsteiger<br />

leicht mit der Distribution<br />

klarkommen.<br />

Daten retten, Rechner<br />

aufsetzen, Ursachenforschung<br />

nach dem Crash<br />

– mit der LU Rescue CD<br />

08.12 haben Sie alle<br />

wichtigen Werkzeuge<br />

dazu sofort zur Hand.<br />

<strong>LinuxUser</strong> DVD-Edition<br />

Hinweis: Haben Sie die DVD-Edition dieser Ausgabe erworben,<br />

finden Sie ab Seite 97 wei tere Informationen zu<br />

den Programmen auf den beiden Datenträgern. Haben Sie<br />

dagegen die güns tigere No-Media-Ausgabe erstanden,<br />

enthält dieses Heft keine Datenträger.<br />

www.linux-user.de<br />

12 | 10 5


heft-dvd<br />

Siduction Razor-qt 12.1<br />

Siduction mit dem innovativen Desktop Razor-qt<br />

Rasiermesserscharf<br />

Der wieselflinke<br />

Desktop Razor-qt<br />

basiert wie KDE<br />

auf dem Qt-Framework.<br />

Das Debian-<br />

Sid-Derivat Siduction<br />

12.1 nutzt<br />

seine Stärken und<br />

präsentiert sich<br />

stabil und flott.<br />

Ferdinand Thommes<br />

Siduction 12.1 Razor-qt<br />

<strong>LinuxUser</strong>-Edition<br />

(32+64 Bit bootfähig<br />

auf Heft-DVD)<br />

README<br />

Razor-qt ist ein leichtgewichtiges<br />

Desktop-Environment<br />

auf Basis des<br />

Qt-Frameworks. Der Artikel<br />

stellt das Development-Release<br />

von der<br />

Debian-basierten Distribution<br />

Siduction mit<br />

Razor-qt als Desktop-<br />

Umgebung näher vor.<br />

Die beiden führenden Desktop-<br />

Umgebungen für Linux sind KDE<br />

SC und Gnome. Allerdings vergrätzten<br />

beide Projekte in den<br />

letzten Jahren durch ihre Upgrade-Politik<br />

viele Fans. Sowohl<br />

KDE SC 4 als auch Gnome 3 waren<br />

in ihrer Anfangsphase für<br />

produktive Zwecke schlicht unbenutzbar.<br />

Außerdem fallen bei beiden<br />

Desktops die Hardwareanforderungen<br />

nicht gerade bescheiden<br />

aus. Für Gnome haben sich<br />

als leichtgewichtige Alternativen<br />

XFCE und LXDE etabliert, die wie<br />

der große Bruder auf dem GTK-<br />

Framework basieren.<br />

In Form von Razor-qt [1] hat<br />

KDE SC erst vor kurzer Zeit ebenfalls<br />

ein leichtgewichtiges Pendant<br />

bekommen. Wie im Kasten<br />

Interview mit einem Razor-qt-<br />

Entwickler auf der folgenden Seite<br />

nachzulesen, war – wie so oft –<br />

Eigennutz die Triebfeder: KDE 3<br />

war dem Initiator des Razor-qt-<br />

Projekts auf der vorhandenen<br />

Hardware zu langsam, die vorhandenen<br />

Alternativen erschienen<br />

ihm optisch nicht ansprechend<br />

genug. Also entwickelte er<br />

kurzerhand selbst einen Desktop<br />

auf Qt-Basis.<br />

Siduction-Razor-qt<br />

Die auf Debian „Unstable“ aufsetzende<br />

Distribution Siduction [2]<br />

hat auf dem LinuxTag 2012 in<br />

Berlin eine erste vollwertige Implementation<br />

von Razor-qt in einer<br />

Distribution vorgestellt [3].<br />

Hierzu wurde, da für Debian noch<br />

keine Razor-qt-Pakete zur Verfügung<br />

stehen, ein Auszug aus dem<br />

Git-Repository von Razor-qt 0.4.1<br />

Was ist eigentlich Qt?<br />

Hinter dem Namen Qt, ausgesprochen<br />

wie das englische „cute“ ([kju:t],<br />

dt.: niedlich, schnuckelig), verbirgt<br />

sich eine C++-Klassenbibliothek zum<br />

plattformübergreifenden Programmieren<br />

grafischer Benutzeroberflächen.<br />

Qt wurde ursprünglich vom norwegischen<br />

Unternehmen Trolltech entwickelt<br />

und 2008 vom Handy-Hersteller<br />

Nokia aufgekauft. 2011 legte dieser<br />

vom 26. Mai 2012 ausgecheckt<br />

und die Software mittels Siductions<br />

Buildsystem Pyfll in ein installierbares<br />

System integriert.<br />

Da die Entwicklung von Razorqt<br />

schnell voranschreitet, erstellten<br />

die Siduction-Entwickler für<br />

die Heft-DVD dieser Ausgabe am<br />

20. Juni exklusiv für <strong>LinuxUser</strong><br />

einen weiteren Snapshot und<br />

bauten damit ein Siduction-Live-<br />

Image. Seit der Veröffentlichung<br />

des Development-Releases von<br />

Siduction sind beispielsweise ein<br />

Mount- sowie ein Notification-<br />

Modul dazugekommen. Das ISO-<br />

Image auf der Heft-DVD hat eine<br />

das Projekt unter dem Namen Qt-Project<br />

als freie Software in die Hände<br />

der Community. Das prominenteste<br />

Vorzeigebeispiel für den Einsatz des<br />

Qt-Framework ist derzeit KDE, dessen<br />

bislang letzte Inkarnation KDE SC 4<br />

auf Qt in der Version 4 basiert. An<br />

einem Nachfolger auf Basis der bereits<br />

erschienen Version 5 von Qt<br />

bastelt das KDE-Projekt bereits.<br />

6 08 | 12<br />

www.linux-user.de


Siduction Razor-qt 12.1<br />

heft-dvd<br />

Größe von rund 700 MByte, es<br />

handelt sich um ein Live-Image<br />

mit Installer. Support dazu bietet<br />

die Siduction-Crew in ihrem Forum<br />

oder im IRC unter #siduction‐de<br />

an.<br />

Qt-Apps im Release<br />

Ein Desktop-Environment auf<br />

Qt-Basis verlangt natürlich auch<br />

nach Qt-basierten Programmen.<br />

Aber wer kennt schon ausreichend<br />

in Qt geschriebene Programme,<br />

um eine Distribution<br />

damit in allen Positionen auszustatten?<br />

Klar: Es gibt VLC, Qmmp und<br />

Qt-Versionen etlicher bekannter<br />

Programme wie Transmission<br />

oder Virtualbox. Aber ein fähiger<br />

Browser, ein Brennprogramm<br />

oder ein Dateimanager mit Zwei-<br />

Fenster-Ansicht? Beginnt man<br />

erst einmal, nach Qt-basierten<br />

Programmen zu recherchieren<br />

([4]), freut man sich über die große<br />

Fülle an vorhandenen Programmen.<br />

Doch die Ernüchterung<br />

folgt gleich auf dem Fuß, da<br />

viele der Programme entweder<br />

qualitativ nicht ausgereift sind<br />

oder schon länger nicht mehr<br />

weiterentwickelt werden.<br />

Beim Aussortieren bleiben aber<br />

doch einige echte Perlen übrig,<br />

wie etwa der <strong>Web</strong>kit-basierte<br />

Browser QupZilla [5] oder die<br />

Brennsuite Silicon Empire [6].<br />

Das Siduction-Team fand nach<br />

längerer Recherche ausreichend<br />

Stoff, um das Razor-qt-Release<br />

mit Qt-Apps für alle wichtigen<br />

Positionen auszustatten; als Login-Manager<br />

findet LightDM Verwendung.<br />

Eine komplette Liste<br />

der Apps finden Sie in der Tabelle<br />

Qt-Apps in Siduction Razor-Qt.<br />

Nach dem Start<br />

Der Start von Siduction selbst<br />

geht recht flott vonstatten. Auf<br />

einem älteren Notebook, das als<br />

Testgerät diente, erschien der<br />

Login-Screen nach 28 Sekunden,<br />

von dort zum fertig aufgebauten<br />

Desktop dauerte es weitere 4 Sekunden.<br />

Auf einem Sandy-Bridge-<br />

PC mit Intel Core i7 2600K und<br />

SSD nahm – bei ausgeschaltetem<br />

Login-Manager – der Startvorgang<br />

bis zum fertigen Desktop lediglich<br />

11 Sekunden in Anspruch.<br />

Auf dem Desktop befinden sich<br />

neben einem Panel noch drei<br />

Icons sowie eine Analog-Uhr. Die<br />

drei Icons verlinken das Siduction-Handbuch,<br />

den Installer und<br />

Name<br />

BSC<br />

JuffEd<br />

Nomacs<br />

QasMixer<br />

Qlipper<br />

Qmmp<br />

Qterminal<br />

QupZilla<br />

QutIM<br />

QXKB<br />

Screengrab-qt<br />

Silicon<br />

Empire<br />

Funktion<br />

den IRC-Kanal #siduction‐de. Im<br />

Panel gibt es am linken Rand neben<br />

dem Startmenü noch Startknöpfe<br />

für den Browser QupZilla<br />

(Abbildung A), Qterminal und<br />

den Texteditor JuffEd. Am rechten<br />

Rand beherbergt das Panel einen<br />

Ausschalter, zwei Symbole<br />

für virtuelle Desktops, das Clipboard<br />

Qlipper, den Tastatur-<br />

A QupZilla und Kvirc<br />

laden ins Internet ein.<br />

Qt-Apps in Siduction Razor-Qt<br />

Der Zwei-Fenster-Dateimanager Beesoft Commander lehnt sich an den Norton Commander an und<br />

bringt viele Eigenschaften des Urahns mit.<br />

Ein Texteditor, File-Browser und Terminal in einer Oberfläche, der in C++ geschrieben ist und Qt4<br />

als grafische Oberfläche nutzt. Er lässt sich über Plugins erweitern und lässt sich vielseitig konfigurieren.<br />

Ein Betrachter für alle gängigen Bildformate mit verschiedenen Bearbeitungsfunktionen wie Beschneiden,<br />

Drehen und Skalieren. Er unterstützt das Öffnen mehrerer Viewer-Fenster auf einem<br />

Rechner oder im LAN und synchronisiert diese.<br />

Ein Desktop-Mixer für das Simple Mixer Interface von Alsa, der einen ähnlichen Funktionsumfang<br />

bietet wie Alsamixer. Er beinhaltet auch ein Tray-Icon mit grundlegenden Mixer-Funktionen.<br />

Ein leichtgewichtiges, plattformübergreifendes Applet für die Zwischenablage.<br />

Der Audio-Player basiert auf den Qt-Bibliotheken und hat eine ähnliche Nutzerschnittstelle wie Winamp<br />

oder XMMS.<br />

Der Multitab-Terminal-Emulator basiert auf dem QtermWidget von Qt. Er lässt sich im normalen<br />

Fenster oder als Dropdown-Terminal à la Yakuake konfigurieren.<br />

Der schnelle Multi-Plattform-<strong>Web</strong>browser nutzt als HTML-Rendering-Engine Qt<strong>Web</strong>Kit.<br />

Der Multiprotokoll-Instant-Messenger unterstützt die gängigen Protokolle (ICQ, Jabber, Mail.Ru,<br />

IRC, VKontakte).<br />

Ein simpler Tastatur-Layout-Umschalter.<br />

Das Tool erstellt Bildschirmfotos und legt diese in der Zwischenablage ab oder lädt sie ins Internet<br />

hoch.<br />

Ein Brenn-, Kopier- und Löschprogramm für optische Medien. Es arbeitet auf CDs, DVDs und Bluray-Disks,<br />

zeigt alle Informationen der benutzten Medien vor dem eigentlichen Brennprozess an<br />

und beherrscht Drag & Drop. Es kann mit vielen Image-Formaten (ISO, NRG, BIN, MDF und IMG)<br />

umgehen.<br />

www.linux-user.de<br />

08 | 12 7


heft-dvd<br />

Siduction Razor-qt 12.1<br />

box selbst konfigurieren Sie dort.<br />

Autosuspend per Menü oder durch<br />

Schließen des Notebook-Deckels<br />

funktionierte ebenso wie der<br />

Mount-Button ohne weitere<br />

Nacharbeit sofort.<br />

Insgesamt erfordert Razor-qt<br />

nicht viel Eingewöhnung, sobald<br />

man sich einmal mit den vorinstallierten<br />

Qt-Apps vertraut gemacht<br />

hat. Herausragend präsentieren<br />

sich in jedem Fall der<br />

Browser QupZilla und das Brennprogramm<br />

Silicon Empire (Abbildung<br />

C). Angenehm benutzen<br />

lässt sich auch Qterminal, da es<br />

neben dem normalen Fenstermodus<br />

einen Dropdown-Mode à la<br />

Yakuake bietet.<br />

B Das Razor Konfigurations<br />

Center fasst<br />

alle Einstellungen<br />

übersichtlich für das<br />

System zusammen.<br />

Interview mit einem Razor-qt-Entwickler<br />

Layout-Umschalter sowie Screengrab<br />

für Screenshots. Insgesamt<br />

erscheint der Desktop sehr aufgeräumt.<br />

Im Startmenü findet sich unter<br />

Einstellungen | Razor-qt Settings<br />

das Razor Konfigurations Center,<br />

das – angelehnt an die System-<br />

Settings von KDE SC 4 – alle<br />

wichtigen Einstellungen beherbergt<br />

(Abbildung B). Auch Open-<br />

Alexander Sokoloff, Initiator und einer der Hauptentwickler<br />

hinter Razor-qt hat uns freundlicherweise ein<br />

paar Fragen zum Projekt beantwortet.<br />

<strong>LinuxUser</strong>: Alexander, es gibt mit KDE SC, Gnome,<br />

XFCE, LXDE und anderen eine ganze Menge an<br />

Desktop-Umgebungen auf dem Markt. Woher kam<br />

die Idee, eine weitere zu programmieren – und warum<br />

mit Qt?<br />

Alexander Sokoloff: Ich benutzte KDE seit Version 2<br />

und mochte es sehr. Jedoch empfand ich KDE immer<br />

als zu langsam. Vor Jahren habe ich dann einmal<br />

einen schlanken Desktop getestet (ich glaube,<br />

es war IceWM) und war fasziniert davon, wie schnell<br />

mein Computer sein konnte. Da verstand ich, dass<br />

ich eine kleine, schnelle, aber dennoch gut aussehende<br />

Desktop-Umgebung haben wollte. Als Ersatz<br />

für Gnome gibt es leichtgewichtige Alternativen mit<br />

XFCE und LXDE – für KDE gab es nichts. Das haben<br />

wir korrigiert. Die Frage, warum wir Qt benutzen, ist<br />

einfach zu beantworten: Wir mögen C++, und Qt ist<br />

meiner Meinung nach das beste Toolkit für C++.<br />

LU: Razor-qt 0.4.1 ist bereits erstaunlich stabil und<br />

benutzbar. Welche Features fehlen Dir am meisten,<br />

und was dürfen wir für Version 0.5 erwarten?<br />

AS: In die nächste Version werden viele Bugfixes<br />

und Verbesserungen an bestehenden Komponenten<br />

wie dem Application Runner und dem Panel mit seinen<br />

Plugins einfließen. Weitere Verbesserungen gibt<br />

es an der GUI für die Razor-qt-Einstellungen. Wir arbeiten<br />

aber auch an neuen Features wie einem Notification-Daemon<br />

und einer Qt-basierten GUI für<br />

LightDM, die wir hoffentlich noch in 0.5 einbringen<br />

können. Nicht unerwähnt bleiben soll unser Übersetzer-Team:<br />

Razor-qt gibt es mittlerweile in 20 Sprachen,<br />

bis hin zu Exoten wie Esperanto.<br />

LU: Das Interesse seitens der Linux-Szene an Razorqt<br />

ist enorm: Es gibt Zusammenarbeit mit Suse,<br />

Gentoo und Mageia führen die Pakete in ihren jeweiligen<br />

Repositories, und zu guter Letzt hat Siduction<br />

eine Live-CD (siehe Heft-DVD) mit Razor-qt und vielen<br />

Qt-Apps veröffentlicht.<br />

AS: Ich war selbst erstaunt über so viel Interesse.<br />

Es sieht so aus, als sei ein schlanker, eleganter<br />

Desktop auf Qt-Basis für viele von Interesse. Natürlich<br />

schauen wir auch andere Desktops an und werden<br />

Funktionen von dort integrieren. Unser Ziel:<br />

Razor-Qt soll nach der Installation betriebsbereit<br />

sein und sich per GUI weiter individuell konfigurieren<br />

lassen. Wer keine Konsole mag, sollte sie auch<br />

nicht benutzen müssen.<br />

LU: Danke, Alexander, für Deine Ausführungen.<br />

Das Interview mit Alexander Sokoloff führte Ferdinand<br />

Thommes. Er übernahm auch das Übersetzen<br />

aus dem Englischen.<br />

Was kann Razor-qt?<br />

Razor-qt besteht derzeit aus den<br />

Hauptmodulen Panel, Desktop,<br />

Programmstarter, Einstellungszentrum<br />

und Sitzungsverwaltung.<br />

Neu in der derzeit aktuellen<br />

Version 0.4.1 sind ein PolicyKit-<br />

Modul zur Rechteverwaltung, ein<br />

Powermanagement- sowie ein Auto-Suspend-Modul.<br />

Als Fenstermanager<br />

dient bei Siduction der<br />

von Razor-qt standardmäßig gestartete<br />

Openbox.<br />

Alternativ können Sie den Qt4-<br />

basierten Window-Manager Egg-<br />

WM [7] sowie Metacity oder Sawfish<br />

einsetzen. Theoretisch kooperiert<br />

der KDE-Window-Manager<br />

KWin mit Razor-qt, dessen<br />

Einsatz aber wegen der umfangreichen<br />

Abhängigkeiten zu den<br />

Kdelibs und Plasma jedoch nur<br />

wenig Sinn ergibt. Das könnte<br />

sich ändern, sobald KWin einmal<br />

auf Qt5 und KDE Frameworks 5<br />

aufbaut: Durch die weitere Aufsplittung<br />

von Funktionalitäten<br />

bei KDE SC 5 wäre es möglich, ein<br />

KWin ohne Kdelibs- und Plasma-<br />

Funktionalität zu bauen.<br />

Wer braucht Razor-qt?<br />

Razor-qt ist für alle interessant,<br />

die eine schnelle und ressourcenschonende<br />

Desktop-Umgebung<br />

bevorzugen und dabei gerne auf<br />

Qt setzen möchten. Mit einem<br />

info<br />

[1] Razor-qt: http:// razor‐qt. org<br />

[2] Siduction: http:// siduction. org<br />

[3] Live-CDs mit Razor-qt :<br />

http:// razor‐qt. org/ install/ live. php<br />

[4] Offizielle Qt-Apps-Seite: http:// qt‐apps. org<br />

[5] Browser QupZilla: http:// www. qupzilla. com<br />

[6] Silicon Empire: http:// getsilicon. org<br />

[7] EggWM: http:// code. google. com/ p/​<br />

eggwm/ wiki/ Main? tm=6<br />

8 08 | 12<br />

www.linux-user.de


Siduction Razor-qt 12.1<br />

heft-dvd<br />

Footprint von nur 170 MByte eignet<br />

sich Razor-qt auch für ältere<br />

Geräte, die lediglich 256 MByte<br />

Hauptspeicher mitbringen. Von<br />

der Funktionalität und Stabilität<br />

her lässt es sich für die meisten<br />

Belange bereits problemlos einsetzen<br />

– Abstürze verzeichneten<br />

wir in den Tests nicht. So wurde<br />

dieser Artikel zu 100 Prozent mit<br />

dem Siduction-Release von Razorqt<br />

erstellt. Dazu kam zum Schreiben<br />

der Editor JuffEd zum Einsatz.<br />

Als Tool für die Zwischenablage<br />

diente Qlipper, die Bilder<br />

wurden mit Screengrab-qt erstellt.<br />

Alle Links testeten wir mit dem<br />

Browser QupZilla.<br />

Fazit<br />

Das vielversprechende junge Projekt<br />

Razor-qt findet bereits viel<br />

Anklang und Unterstützung im<br />

Linux-Umfeld, die Entwicklung<br />

geht stetig voran. Schaut man<br />

zwei Tage nicht ins Git-Repository,<br />

gibt es stets eine Menge neuer<br />

Code-Einträge („Commits“) nachzulesen.<br />

Es bleibt zu erwarten,<br />

dass Version 0.5 alle gängigen<br />

Module einer Desktop-Oberfläche<br />

liefern wird und Razor-qt<br />

weiter zu einem schnellen und<br />

stabilen Environment reift. Das<br />

Siduction-Projekt plant, Razor-qt<br />

mit dem nächsten Release in einigen<br />

Monaten in den Release-Zyklus<br />

zu übernehmen. (jlu) n<br />

C Mit Silicon brennen,<br />

während Qmmp den<br />

Soundtrack liefert.<br />

Kann eine<br />

Schulungseinrichtung<br />

für mehr als EINEN<br />

Themenbereich<br />

berühmt werden?<br />

Das Linuxhotel ist bekannt für erstklassige Open-Source-Schulungen. In den letzten Jahren kamen Java<br />

und andere Programmiersprachen hinzu - wie immer in Kooperation mit führenden Spezialisten, und in<br />

abgeschiedener, konzentrierter, aber auch ziemlich verspielter Umgebung. Es ist so naheliegend, auch<br />

Entwicklerthemen bei den OpenSource‘lern zu lernen, weil man dort schon immer sehr „unter die<br />

Haube“ guckte und mit viel Freude intensivst arbeitet. Das weiss ein Großteil der deutschen Admins, nur<br />

unter Entwicklern hat's sich noch nicht so ganz herumgesprochen.<br />

Mehr siehe www.linuxhotel.de


aktuelles<br />

Angetestet<br />

JJJII<br />

Seine intuitive Bedienbarkeit<br />

macht Converseen<br />

zum idealen Helfer<br />

für das Konvertieren und<br />

Bearbeiten zahlreicher<br />

Bilddaten in einem<br />

Rutsch.<br />

Große Bildergalerien im Handumdrehen konvertieren<br />

Um alle Bilder der eigenen Fotogalerie<br />

zu konvertieren oder neu<br />

zu skalieren, würden alte Linux-<br />

Hasen vermutlich ein Batch-<br />

Skript entwickeln – bequemer<br />

und nicht weniger effizient geht<br />

es mit Converseen. Der Entwickler<br />

des Qt4-basierten Image-Generators<br />

verspricht eine spürbare<br />

Zeitersparnis bei der Massenbearbeitung<br />

von Bildern, und das bei<br />

einfacher Bedienung. Tatsächlich<br />

lässt sich Converseen intuitiv<br />

handhaben. Sie fügen die zu bearbeitenden<br />

Bilder einfach per<br />

Drag & Drop der Konvertierungliste<br />

hinzu. Sobald Sie ein Bild<br />

in der Liste anklicken, erhalten Sie<br />

weitere Informationen wie Format,<br />

Datei- und Bildgröße. Auf<br />

Wunsch zeigt Converseen ein <strong>Vorschau</strong>bild.<br />

Sie haben die Möglichkeit,<br />

Format und Dateinamen anzupassen,<br />

Skalierung oder Auflösung<br />

zu ändern, ein <strong>Vorschau</strong>bild<br />

zu erzeugen oder ein alternatives<br />

Zielverzeichnis anzugeben. Enthält<br />

das Bild einen transparenten<br />

Hintergrund, bietet Converseen<br />

die Option, den Hintergrund mit<br />

einer Farbe Ihrer Wahl zu füllen.<br />

Wollen Sie die Änderungen bei<br />

mehreren Bildern vornehmen,<br />

müssen Sie diese vorher in der<br />

Konvertierungsliste mit einem Haken<br />

markieren. Da Converseen auf<br />

die Bibliotheken von Magick++ zurückgreift,<br />

unterstützt es rund 100<br />

verschiedene Grafikformate.<br />

Converseen 0.5<br />

Lizenz: GPLv3<br />

Quelle:<br />

http:// converseen. sourceforge. net/<br />

JJJJI<br />

Devede macht das Erstellen<br />

eigener Video-<br />

CDs oder ‐DVDs zum<br />

Kinderspiel. Das Tool<br />

leitet Sie schrittweise<br />

durch den Erstellungsprozess<br />

und bietet zahlreiche<br />

Einstellungsmöglichkeiten.<br />

Video-DVDs und VCDs unkompliziert selbst zusammenstellen<br />

Linux bietet zahlreiche nützliche<br />

Konsolenprogramme, um aus eigenen<br />

Filmen eine Video-DVD<br />

oder VCD zu erzeugen. Die grafische<br />

Oberfläche Devede macht<br />

sich einiger dieser Tools zunutze,<br />

um das Mastering zu erleichtern,<br />

darunter Dvdauthor, Vcdimager,<br />

Mplayer und Mencoder. So kann<br />

das Programm alle Bildformate<br />

verarbeiten, die Mencoder unterstützt.<br />

Es arbeitet nach dem Wizard-Prinzip<br />

und führt Sie daher<br />

schrittweise durch den Prozess<br />

der Medienerstellung.<br />

Am Anfang steht die Entscheidung<br />

für eines der Medienformate<br />

DVD, VCD, SVCD oder DivX. Anhand<br />

des gewählten Formats berechnet<br />

die Software die Mediengröße<br />

und stellt fest, ob der Platz<br />

auf dem Datenträger für die<br />

gewählten<br />

Videos ausreicht.<br />

Im<br />

nächsten<br />

Schritt legen<br />

Sie die inhaltliche<br />

Struktur<br />

fest. Zu diesem<br />

Zweck<br />

nehmen Sie<br />

Filme komfortabel<br />

mit<br />

Drag & Drop<br />

in die Dateiliste auf, wo Sie deren<br />

Abfolge beliebig variieren. Wählen<br />

Sie stattdessen den Weg über das<br />

Menü Hinzufügen, können Sie hier<br />

schon Einfluss auf das Video-Format<br />

nehmen, die Video-Datei aufteilen<br />

oder ein File mit Untertiteln<br />

hinzufügen. Alternativ besteht die<br />

Möglichkeit, über das Menü Eigenschaften<br />

diese Einstellungen später<br />

anzupassen. Haben Sie den Inhalt<br />

des Mediums zusammengestellt,<br />

leitet ein Klick auf den Vorwärts-<br />

Knopf die Erstellung des DVDrespektive<br />

CD-Images ein. Die<br />

Applikation erzeugt ein Bin/​Cue-<br />

Paar, das Sie nur noch mit einem<br />

geeigneten Brennprogramm wie<br />

zum Beispiel K3B auf den Rohling<br />

bringen müssen.<br />

DeVeDe 3.22<br />

Lizenz:GPLv3<br />

Quelle: http:// www. rastersoft. com/​<br />

programas/ devede. html<br />

10 08 | 12<br />

www.linux-user.de


Angetestet<br />

aktuelles<br />

Passwörter und Zugangsdaten einfach verwalten mit Revelation<br />

Die Authentifikation via Passwort<br />

oder PIN stellt heute auf vielen<br />

Systemen den Standard dar. Sicherheitsexperten<br />

empfehlen dabei,<br />

für jeden Zugang ein unterschiedliches<br />

Passwörter zu verwenden.<br />

Wer da nicht den Überblick<br />

verlieren möchte, braucht<br />

ein phänomenales Gedächtnis –<br />

oder ein Tool wie Revelation.<br />

Der Passwortmanager für<br />

Gnome besticht durch eine benutzerfreundliche<br />

Oberfläche, die<br />

sich am Standard der Gnome Human<br />

Interface Guidelines orientiert.<br />

Revelation bietet für jeden<br />

Zugangs typ ein passendes Formular,<br />

um die Zugangsdaten zu erfassen.<br />

Die Palette reicht dabei<br />

Revelation 0.4.13<br />

Lizenz:GPLv2<br />

Quelle:<br />

http:// revelation. olasagasti. info/<br />

vom SSH- oder FTP-Zugang über<br />

die Erfassung von Kreditkartendaten<br />

bis hin zur PIN des Mobiltelefons.<br />

Welche Daten Sie beim Anlegen<br />

eines Eintrags hinterlegen<br />

können, hängt vom Zugangstyp<br />

ab. In jedem Fall braucht der Eintrag<br />

einen Namen, unter dem Sie<br />

ihn später finden. Sämtliche Einträge<br />

verwaltet Revelation in einer<br />

Baumstruktur. Hierbei besteht<br />

die Möglichkeit, mehrere<br />

Einträge über sogenannte Ordner<br />

zu einer Gruppe zusammenzufassen.<br />

Revelation legt alle Einträge<br />

in einer passwortgeschützten,<br />

verschlüsselten Datei ab; Sie müssen<br />

sich nur noch das Revelation-<br />

Passwort merken.<br />

Obendrein besteht die Möglichkeit,<br />

Zugangsdaten für bestimmte<br />

Bereiche in unterschiedlichen Dateien<br />

zu verwalten. Zur Interaktion<br />

mit anderen Passwortmanagern<br />

besitzt Revelation eine Reihe<br />

von Import/​Export-Funktionen.<br />

Es kann nicht nur mit XML, CSV<br />

oder Plaintext umgehen, sondern<br />

auch mit den Formaten von Password<br />

Safe, GPass oder Figaro’s<br />

Password Manager.<br />

Auf Wunsch generiert Revelation<br />

Passwort-Vorschläge, wobei<br />

es das erzeugte Passwort jedoch<br />

nicht anzeigt. Bei Bedarf ändern<br />

Sie das über die Konfiguration.<br />

JJJJJ<br />

Mit Revelation verwalten<br />

Sie all Ihre Passwörter,<br />

Zugangsdaten und sogar<br />

Mobilfunk- und Kreditkarten-PINs<br />

bequem<br />

und übersichtlich.<br />

Programme schnell und einfach starten mit Runner<br />

Hinter dem schlichten Namen führten Befehle oder Programme.<br />

Runner verbirgt sich ein Menü Sie starten nun entweder ein Tool<br />

zum Starten von Programmen. aus dieser Historie oder rufen<br />

Dabei ist Runner besonders für über das Eingabefeld ein neues<br />

jene Anwender interessant, die Programm auf, das Runner dann<br />

auf verschiedenen Benutzeroberflächen<br />

unterwegs sind: Das Tool grammstarter unterstützt im<br />

in seine Liste aufnimmt. Der Pro-<br />

benötigt lediglich eine X11-Umgebung<br />

und lässt sich komplett gewohnte Vervollständigung via<br />

Eingabefeld auch die aus der Shell<br />

per Tastatur bedienen. Nach dem Tabulatortaste.<br />

Start von Runner erscheint ein Nutzen Sie regelmäßig dieselben<br />

Tools, legen Sie am besten<br />

schlichtes Fenster mit einer Liste<br />

aller bereits mit Runner ausge-<br />

eine entsprechende Programmliste<br />

an. Dabei handelt es sich um<br />

Runner 0.2<br />

eine schlichte Textdatei, die für<br />

Lizenz:GPLv2<br />

jedes Programm ein Label und<br />

Quelle: http:// www. boomerangsworld.​ den Programmaufruf enthält.<br />

000_LU1106_F-<strong>Web</strong>er_neu1.qxd<br />

de/ cms/ tools/ runner<br />

18.09.2006 Runner 19:00 erwartet Uhr Seite diese 1Aufrufliste<br />

unter dem Namen program_list im<br />

Verzeichnis ~/.runner. Im selben<br />

Verzeichnis liegt die Datei history<br />

mit der Aufrufliste. Um Runners<br />

Historienliste zu leeren, genügt<br />

es, diese Datei zu löschen. (jlu) n<br />

JJJII<br />

Mit dem Programmstarter<br />

Runner legen Sie im<br />

Handumdrehen eine<br />

Lis te aller regelmäßig genutzten<br />

Programme an<br />

und starten bei Bedarf<br />

auch andere Programme<br />

über ein Eingabefeld.<br />

X23


Aktuelles<br />

Neues rund um Linux<br />

Das Bugfix-Release Owncloud<br />

4.0.4 behebt etliche Fehler und<br />

bringt zahlreiche Neuerungen<br />

mit. (Bild: Frank Karlitschek)<br />

Owncloud 4.0.4 mit zahlreichen Bugfixes und Versionierung<br />

Mit Owncloud 4.0.4 liegt jetzt<br />

eine umfassend fehlerbereinigte<br />

Version der vierten Inkarnation<br />

der freien Server-<br />

Software vor (http:// owncloud.​<br />

or g ). Die Entwickler betrachteten<br />

das Release als stabil genug,<br />

um es auch in der Business-Variante<br />

zu veröffentlichen.<br />

Damit dürfen auch viele<br />

der Schwachstellen ausgeräumt<br />

sein, die unser ausführlicher<br />

Test in der letzten Ausgabe<br />

(http:// www. linux‐community.​<br />

de/ 25950) zutage förderte.<br />

Wie Owncloud-Entwickler<br />

Frank Karlitschek mit einem<br />

Augenzwinkern in seinem Blog<br />

(http:// blog. karlitschek. de)<br />

kommentierte, sei Owncloud<br />

4.0 wohl der KDE-Tradition gefolgt<br />

und wie KDE 4.0 nicht<br />

eben das Release mit dem<br />

gründlichsten Feinschliff gewesen.<br />

Owncloud 4.0.4 bietet<br />

eine verbesserte LDAP-Integration,<br />

eine umfassende Versionskontrolle<br />

samt der Möglichkeit<br />

zu Rollbacks sowie<br />

Theming zur optischen Anpassung<br />

an die eigenen Wünsche.<br />

Ein neues API soll es Entwicklern<br />

ermöglichen, eigene Anwendungen<br />

zu Owncloud zu<br />

programmieren. Parallel zu<br />

Owncloud 4.0.4 beginnt auch<br />

der Betatest für Version 1.1<br />

einer App für Android-Systeme.<br />

(uba/​jlu)<br />

kurz notiert<br />

Statt am 11. Juli soll OpenSuse<br />

12.2 jetzt erst Mitte September<br />

2012 erscheinen: Noch gibt es zu<br />

viele kaputte Pakete. Man müsse<br />

den Release-Prozess überdenken<br />

und eventuell nur noch einmal<br />

jährlich veröffentlichen,<br />

meint Release-Manager Stephan<br />

Kulow (http:// tinyurl. com/​<br />

lu0812‐opensuse).<br />

Die Linux Foundation (http://​<br />

www. linuxfoundation. org) bekommt<br />

mit Samsung Electronics<br />

ein siebtes sogenanntes Platinum-Mitglied.<br />

Diese Sponsoren<br />

zahlen einen jährlichen Beitrag<br />

von je 500 000 US-Dollar und bekommen<br />

einen Sitz im Board of<br />

Directors der Stiftung.<br />

Rund 100 neue Netzwerkprotokolle<br />

beherrscht Wireshark 1.8.0<br />

und kann daneben erstmals den<br />

Netzwerkverkehr mehrerer<br />

Schnittstellen gleichzeitig aufzeichnen<br />

(http:// www. wireshark.​<br />

o rg). Als Speicherformat dient<br />

nun Pcap-ng, die ältere Pcap-<br />

Notation unterstützt die neue<br />

Version aber weiter.<br />

Anfang Juli haben die Entwickler<br />

für Debian 7.0 „Wheezy“ planmäßig<br />

den Freeze eingeleitet<br />

(http:// tinyurl. com/ lu0812‐<br />

wheezy). Damit fließen ab sofort<br />

nur noch Release-relevante Änderungen<br />

wie etwa wichtige<br />

Bugfixes in die Software ein.<br />

Linux-Essentials-Programm startet durch<br />

Das Linux Professional Institut<br />

hat den offiziellen Startschuss<br />

für das Linux-Essentials-Programm<br />

(http:// tinyurl. com/​<br />

lu0812‐lpi) gegeben, das sich<br />

an Neueinsteiger und Jugendliche<br />

richtet. Die Prüfung ist ab<br />

Killerdrohne mit Linux-Steuerung: MQ-8B<br />

der US-Navy. (Bild: Northrop Grumman)<br />

sofort auf diversen Events im<br />

Angebot, etwa bei der Campus-<br />

Party Berlin am 21. August und<br />

bei der FrOSCon in St. Augustin<br />

am 25. August. Das Essentials-Programm<br />

enthält unter<br />

anderem Themengebiete wie<br />

US-Navy steuert Kampfdrohnen künftig mit Linux<br />

Für knapp 28 Millionen Dollar<br />

rüstet die US-Marine die Kontrollsoftware<br />

für die nächste<br />

Generation ihrer schiffsgestützten<br />

Drohnen von Windows<br />

auf Linux um (http://​<br />

tinyurl. com/ lu0812‐register).<br />

Dem Vernehmen nach hängt<br />

diese Umstellung nicht zuletzt<br />

mit den Schwierigkeiten durch<br />

Schadsoftware zusammen,<br />

welche die<br />

US-Luftwaffe bei den<br />

Steuerungssystemen<br />

ihrer Drohnenflotte<br />

hatte (http:// tinyurl.​<br />

com/ lu0812‐wired).<br />

So manchem Linux-<br />

Protagonisten stößt<br />

diese Maßnahme<br />

sauer auf: Im Gegensatz<br />

zum rein für Aufklärungszwecke<br />

ausgelegten<br />

Vorgänger<br />

Northrop-Grumman<br />

RQ-8A handelt es<br />

sich bei den künftig<br />

via Linux gesteuerten<br />

168 MQ-8B-UAVs um<br />

Linux-Community und berufliche<br />

Laufbahn im Bereich<br />

Open Source, gängige Betriebssysteme<br />

und wichtige Open-<br />

Source-Anwendungen, Lizenzen<br />

oder Grundlagen der Linux-Kommandozeile.<br />

(uba)<br />

eine bewaffnete Version, die<br />

an zwei Stummelflügeln lasergelenkte<br />

Waffen wie die Panzerabwehrrakete<br />

AGM-114<br />

Hellfire, die Gleitbombe<br />

GBU-44/​B Viper Strike oder<br />

das „Advanced Precision Kill<br />

Weapon System“ APKWS auf<br />

Basis von 70-mm-FFAR-Raketen<br />

mitführen kann (http://​<br />

tinyurl. com/ lu0812‐firescout).<br />

Dass Linux jetzt zum ferngesteuerten<br />

Töten von Menschen<br />

dienen soll, treibt viele<br />

auf die verbalen Barrikaden.<br />

Wie allerdings zahlreiche<br />

Kommentatoren anmerkten,<br />

gibt die GPL keine Handhabe<br />

gegen solche Verwendungen<br />

freier Software her: Schon die<br />

„Freiheit Null“ schreibt vor,<br />

dass ein Anwender freie Software<br />

für beliebige Zwecke ausführen<br />

können muss. (jlu)<br />

12<br />

08 | 12<br />

Das Neueste rund um Linux, aktuelle Kurztests und Artikel aus<br />

<strong>LinuxUser</strong> finden Sie täglich auf www.linux-community.de


Neues rund um Linux<br />

aktuelles<br />

Pfiffiger Mini-Rechner mit vorinstalliertem Linux Mint<br />

Als „Mintbox“ vertreibt der<br />

Hersteller Compulab ab sofort<br />

eine Version seines bekannten<br />

Fit-PC 3 mit vorinstalliertem<br />

Linux Mint 13, einer auf<br />

Ubuntu 12.04 basierenden LTS-<br />

Version mit fünf Jahren Support<br />

und Cinnamon-Desktop<br />

(http:// tinyurl. com/ lu0812‐<br />

mintbox). Die zwei erhältlichen<br />

Varianten Mintbox Basic und<br />

Mintbox Pro unterscheiden sich<br />

zum einen durch die Ausführung<br />

des Metallgehäuses: Die<br />

Pro-Ausführung steckt in einem<br />

zur Wärmeableitung gerippten<br />

Gehäuse statt in einem<br />

glatten Case wie die Basic. Zum<br />

anderen bringt die Pro-Version<br />

ein deutlich stärkeres CPU/​<br />

GPU-SoC (AMD G-T56N, 18W<br />

vs. G-T40N, 9W) und 8 statt<br />

4 GByte RAM mit. Beide Varianten<br />

verfügen über eine<br />

250-GByte-Festplatte, Gigabit-<br />

Ethernet, 802.11b/​g/​n-WLAN<br />

sowie je zwei USB3- und USB2-<br />

Ports. Die weiteren Anschlüsse<br />

umfassen je zwei Mini-PCIeund<br />

eSATA-Buchsen sowie einen<br />

mSATA- und einen seriellen<br />

Port. Zur Grafikausgabe<br />

gibt es zwei HDMI-Ausgänge<br />

und einen Displayport, für Audio<br />

sorgen Digital-7.1-S/​PDIF<br />

und Analog-2.0-Audio. Die<br />

Mintbox mit einer Standfläche<br />

etwa in der Größe eines CD-<br />

Cases verzichtet auf einen Lüfter.<br />

Laut Mint-Chef Clement<br />

Lefebvre beherrschen beide<br />

Mintbox-Varianten die ruckelfreie<br />

Wiedergabe von<br />

Videos bis 1080p (http://​<br />

blog. linuxmint. com/ ? p=<br />

2055). Die Mintbox Basic kostet<br />

476 US-Dollar, die Pro-Version<br />

549 Dollar. Hinzu kommen<br />

für deutsche Kunden 55 Dollar<br />

Versandgebühren sowie Mehrwertsteuer<br />

und Zoll. (jlu)<br />

Anschlusswunder mit Mint 13:<br />

die Mintbox von Compulab.<br />

(Bild: Linuxmint.com)<br />

Grub2 erreicht endlich Final-Status<br />

Mit einem neuen Menü-Theme, Treiberupdates<br />

und vielen Verbesserungen hat<br />

sich der Grand Unified Bootloader 2 aus der<br />

Beta-Phase verabschiedet und gilt nun als<br />

final. Laut Entwickler Wladimir Serbinenko<br />

(http:// tinyurl. com/ lu0812‐grub2) feiert in<br />

der Final-Version nicht nur das offizielle<br />

Gfxmenu-Theme „Starfield“ Premiere, sondern<br />

auch Grub2-Ports für Itanium- und<br />

SGI-Mips-Systeme. Zu den weiteren Neuerungen<br />

zählen diverse Treiber-Updates und<br />

Neuaufnahmen, etwa für EHCI. (uba)<br />

Remotebox 1.3 hält Verbindung<br />

Remotebox, eine Verwaltungsoberfläche<br />

für Virtualbox auf<br />

dem lokalen und auf entfernten<br />

Rechnern, liegt jetzt in Version<br />

1.3 vor. Das in Perl und<br />

GTK umgesetzte Remotebox<br />

(http:// remotebox. knobgoblin.​<br />

or g. uk) verwaltet lokale oder<br />

entfernte Virtualbox-Instanzen.<br />

Dabei erfolgt die Verbindung<br />

mit der Anzeige des Gastsystems<br />

via RDP. Die Anwendung<br />

kann Gäste erstellen,<br />

konfigurieren, starten, stoppen<br />

Die GUI Remotebox erlaubt unter anderem das<br />

Verwalten von Virtualbox-Instanzen aus der Ferne.<br />

und pausieren. Das neue<br />

Release verwendet einen<br />

Heartbeat, der für das Weiterbestehen<br />

der Netzwerkverbindungen<br />

sorgt. Daneben<br />

gibt es weitere Verbesserungen<br />

beim Connection<br />

Handling. USB-Geräte lassen<br />

sich jetzt während des<br />

Betriebes an den Gast anschließen<br />

oder entfernen.<br />

Außerdem verbesserten die<br />

Entwickler die Reaktionsfreudigkeit<br />

der Oberfläche.<br />

Weitere Neuerungen<br />

finden<br />

sich in<br />

der Ankündigung<br />

des Projektes.<br />

R e mo te b ox<br />

1.3 steht unter<br />

der GPL<br />

als Quelltext-<br />

Tar ball zum<br />

Download<br />

bereit.<br />

(mhu/jlu) n<br />

Linux<br />

Das umfassende Handbuch<br />

openbook<br />

online!<br />

1.282 S., 5. Auflage, mit 2 DVDs, 49,90 €<br />

» www.GalileoComputing.de/2963<br />

LPIC-1<br />

Erfolgreiche Linux-Zertifizierung<br />

545 S., 3. Auflage 2012, mit DVD, 34,90 €<br />

» www.GalileoComputing.de/2653<br />

Für Linux-User<br />

Android-Apps entwickeln<br />

398 S., 2. Auflage, mit DVD, 24,90 €<br />

» www.GalileoComputing.de/3158<br />

www.GalileoComputing.de<br />

Linux-Server<br />

1.100 S., 2. Auflage, 49,90 €<br />

» www.GalileoComputing.de/3051<br />

Wissen, wie’s geht.


eport<br />

Interview: Mandriva<br />

Im Gespräch mit Jean-Manuel Croset, CEO von Mandriva SA,<br />

Auf neuem Kurs<br />

Das mehrfach beinahe havarierte<br />

Schiff Mandriva SA hat einen neuen<br />

Kapitän. <strong>LinuxUser</strong> sprach mit dem neuen CEO<br />

Jean-Manuel Croset über dessen aktuelle Pläne und<br />

die Aussichten für das Unternehmen. Wolfgang Bornath<br />

© James Steidl, 123RF<br />

README<br />

Nach einer weiteren<br />

Beinahe-Pleite im Zuge<br />

einer fast zehnjährigen<br />

Serie von Krisen präsentiert<br />

sich Mandriva<br />

derzeit wieder einmal finanziell<br />

stabilisiert und<br />

peilt eine Erneuerung<br />

des Unternehmens an.<br />

Der neue CEO Jean-Manuel<br />

Croset sprach mit<br />

<strong>LinuxUser</strong> über seine<br />

Pläne für die Zukunft<br />

des Unternehmens.<br />

Mandriva SA, der französische<br />

Herausgeber der Distribution<br />

Mandriva Linux, hat ein sehr unruhiges<br />

Jahrzehnt hinter sich.<br />

Anfänglich unter dem Namen<br />

Mandrakesoft als erfolgreicher<br />

Distributor hochgelobt und von<br />

den Investoren der Dotcom-Ära<br />

begehrt, geriet das Unternehmen<br />

im Rahmen des bald folgenden<br />

Dotcom-Strudels in so ernsthafte<br />

Schwierigkeiten, dass 2003 nur<br />

noch die Inanspruchnahme des<br />

Gläubigerschutzes Mandrakesoft<br />

vor der Insolvenz rettete.<br />

In der Folgezeit konnte sich der<br />

ab 2005 als Mandriva SA firmierende<br />

Distributor wieder aus dem<br />

Tief hervorkämpfen, litt aber immer<br />

wieder unter Finanznöten<br />

und wurde 2010 erneut nur durch<br />

das Auftauchen des Finanzinvestors<br />

Townarea Ltd. vor dem Aus<br />

bewahrt. Im Rahmen dieser Rettungsaktion<br />

musste sich Mandriva<br />

SA von seinem Geschäftsteil<br />

EdgeIT trennen, in dem die meisten<br />

Entwickler der Distribution<br />

Mandriva Linux beschäftigt waren.<br />

Das hatte unter anderem zur<br />

Folge, dass der Fork Mageia entstand,<br />

über dessen jüngstes Release<br />

wir kürzlich berichteten [1].<br />

2012 stand Mandriva SA wieder<br />

vor der Insolvenz, da einer der Investoren<br />

sich gegen eine dringend<br />

benötigte Kapitalerhöhung sperrte.<br />

In dieser Situation machte der<br />

damalige COO der Firma, Jean-<br />

Manuel Croset, durch die Übernahme<br />

der Aktien des Investors den<br />

Weg für die benötigte Kapitalerhöhung<br />

frei. Im Unterschied zu anderen<br />

Investoren übernahm er gleichzeitig<br />

als CEO das Steuer des Unternehmens<br />

und plant Mandriva<br />

SA durch einige Maßnahmen in ein<br />

ruhigeres Fahrwasser zu führen.<br />

<strong>LinuxUser</strong> freut sich, dass Jean-<br />

Manuel Croset sich als erstes Mitglied<br />

eines Mandriva-Managements<br />

einem deutschen Fachmagazin<br />

für ein Interview zur Verfügung<br />

stellte.<br />

<strong>LinuxUser</strong>: Zunächst danken wir<br />

Ihnen, dass Sie sich bei all Ihren<br />

Verpflichtungen die Zeit für ein<br />

ausführliches Interview nehmen.<br />

In der „Szene“ weiß man bisher –<br />

außer Ihren Schweizer Wurzeln –<br />

wenig über die Person Jean-Manuel<br />

Croset. Wären Sie so freundlich,<br />

uns etwas über Ihren Hintergrund<br />

zu erzählen?<br />

Jean-Manuel Croset: Vielleicht<br />

liegt es gerade an meinen Schweizer<br />

Wurzeln, dass ich die produktive<br />

Arbeit ausführlichen Statements<br />

und sensationellen Meldungen<br />

vorziehe.<br />

Ich habe nach dem Abschluss<br />

der Höheren Handelsschule mit<br />

anschließender technischer Weiterbildung<br />

meine Karriere in verschiedenen<br />

Großunternehmen in<br />

der Schweiz und im näheren Ausland<br />

begonnen. Nach einer Weltreise<br />

verbrachte ich zehn Jahre in<br />

leitenden Positionen bei verschiedenen<br />

Projekten des Schweizer<br />

Bundesheeres (Einführung, Verkauf<br />

und Ausbildung von Telematik<br />

und IT-Systemen). 2010 gründete<br />

ich ein IT-Unternehmen in<br />

der Schweiz, das in den Bereichen<br />

Netzwerk, Hosting und Services<br />

sowie Consulting aktiv ist. In diesem<br />

Rahmen wurde ich beauftragt,<br />

bei der Umstrukturierung<br />

von Mandriva SA mitzuarbeiten.<br />

14 08 | 12<br />

www.linux-user.de


Interview: Mandriva<br />

report<br />

LU: Wie wurden Sie auf Mandriva<br />

aufmerksam, und was bewog Sie<br />

letztendlich dazu, sich in diesem<br />

umfassenden Ausmaß mit dem<br />

Unternehmen zu verbinden?<br />

JMC: Ich habe im Oktober 2011<br />

im Rahmen eines Consulting-<br />

Auftrags als COO bei Mandriva<br />

SA begonnen. Dabei wurde mir<br />

schnell klar, dass einerseits viel<br />

Arbeit nötig sein würde, um das<br />

Unternehmen in den Fokus des<br />

Marktes zurückzubringen, dass<br />

sich aber mit dem vorhandenen<br />

riesigen Potenzial des Unternehmens<br />

viel erreichen ließe. Überzeugt<br />

durch die im Unternehmen<br />

vorhandenen Fähigkeiten, habe<br />

ich mich auch im Rahmen der Kapitalerhöhung<br />

zur persönlichen<br />

Beteiligung durchgerungen.<br />

„Zehn neue Stellen<br />

innnerhalb der nächsten<br />

sechs Monate.”<br />

LU: Derzeit scheint die Lage<br />

durch Ihren Einstieg und die aktuelle<br />

Kapitalspritze stabilisiert –<br />

zumindest fürs Erste. Natürlich<br />

fragen sich Beobachter: Ist die finanzielle<br />

Lage nachhaltig stabilisiert?<br />

Wie lange reicht das frische<br />

Geld? Muss man nicht davon ausgehen,<br />

dass spätestens in zwei<br />

Jahren Mandriva wieder wackelt?<br />

JMC: Die finanzielle Lage des Unternehmens<br />

ist sehr stabil. Wir<br />

haben jetzt die Mittel zur geplanten<br />

Restrukturierung sowie für<br />

das Einführen und Unterstützen<br />

der Produkte und Dienstleistungen,<br />

welche die Zukunft der Firma<br />

innerhalb der nächsten zwei<br />

Jahre sichern sollen. Zudem bezahlen<br />

wir die langjährigen Schulden<br />

in ein paar Monaten vollständig<br />

zurück, was in der Geschichte<br />

der Firma ein Novum darstellt.<br />

Mandriva SA wird in zwei Jahren<br />

noch auf dem Markt und sogar<br />

sehr erfolgreich sein, wenn es<br />

uns gelingt, innovative und konkurrenzfähige<br />

Dienste und Produkte<br />

erfolgreich zu vermarkten.<br />

Dies setzt ein Umdenken voraus,<br />

das zurzeit auch stattfindet.<br />

LU: Als Kapital eines Unternehmens<br />

gilt ja nicht nur das Bare,<br />

sondern insbesondere auch das<br />

sogenannte Humankapital, also<br />

die Innovationskraft und das<br />

Können der Mitarbeiter. Wie viel<br />

Personal beschäftigt Mandriva SA<br />

momentan, und bei wie vielen der<br />

Mitarbeiter handelt es sich um<br />

Entwickler? Erlaubt die finanzielle<br />

Erholung Neueinstellungen,<br />

und falls ja: Wie viele Entwickler<br />

planen Sie einzustellen?<br />

JMC: Mandriva SA beschäftigt<br />

heute rund 40 Mitarbeiter an<br />

sechs Standorten, 80 Prozent<br />

davon sind in der Entwicklung<br />

tätig. Gleichzeitig investieren<br />

wir durch unsere Tätigkeit in<br />

Forschungsprojekten in beträchtlichem<br />

Ausmaß in die Zukunft<br />

des Unternehmens. Wir<br />

werden innerhalb der nächsten<br />

sechs Monate rund zehn Mitarbeiter<br />

einstellen.<br />

LU: In der Vergangenheit musste<br />

Mandriva immer wieder empfindliche<br />

Rückschläge bei seinen Geschäften<br />

hinnehmen, wie etwa<br />

die spektakuläre Entscheidung<br />

der französischen Gendarmerie<br />

Nationale zugunsten von Ubuntu<br />

statt des heimischen Mandrivas<br />

auf ihren 80 000 Desktops. Auch<br />

in anderen ins Auge gefassten<br />

Märkten (beispielsweise Südamerika)<br />

hatten konkurrierende Unternehmen<br />

die größeren Erfolge.<br />

Welche Märkte will Mandriva in<br />

Zukunft mit welchen Produkten<br />

adressieren? Spielt Europa<br />

dabei noch eine<br />

wesentliche Rolle?<br />

JMC: Europa spielt in<br />

unseren Zukunftsplänen<br />

eine wichtige Rolle. Wir<br />

betrachten diesen Markt<br />

als sehr reif und anspruchsvoll;<br />

gerade hier<br />

müssen wir durch konsequente<br />

Verbesserung<br />

des Angebots und bessere<br />

Qualität der Produkte<br />

überzeugen. In Brasilien<br />

sind wir stark aufgestellt<br />

und möchten diesen<br />

Markt sowie andere zukunftsträchtige<br />

Märkte künftig<br />

konsequent und systematisch<br />

adressieren.<br />

Für uns zählt aber die Übereinstimmung<br />

unserer Produkte mit<br />

den Marktbedürfnissen (jetzige<br />

und künftige) mehr als ein rein<br />

geografischer Ansatz. Wir konzentrieren<br />

uns künftig auf Unternehmen,<br />

mit Produkten und<br />

Dienstleistungen für Server und<br />

IT-Management – auch in der<br />

Cloud. Zudem wird der Bildungsbereich<br />

nach wie vor eine wichtige<br />

Rolle für uns spielen.<br />

LU: Wie will sich Mandriva dabei<br />

gegen die dominante Konkurrenz<br />

durchsetzen? Warum sollte ein<br />

Kunde Mandriva statt Red Hat<br />

oder Canonical wählen? Und wie<br />

wollen Sie angesichts der in der<br />

Vergangenheit periodisch immer<br />

wieder bei Mandriva auftretenden<br />

Finanzkrisen neues Vertrauen<br />

bei den Kunden im Unternehmensmarkt<br />

wecken?<br />

JMC: Primär sollten sich die Kunden<br />

aufgrund der Qualität sowie<br />

entscheidender Vorteile für unsere<br />

Produkte entscheiden. Die klar<br />

identifizierte Herkunft unserer<br />

Lösungen und Produkte wird uns<br />

zusammen mit unserer Innovationsfähigkeit<br />

dabei helfen, das<br />

Vertrauen der Kunden zurückzuerobern.<br />

Dazu soll außerdem die<br />

klar definierte Strategie und die<br />

daraus entstehende Stabilität im<br />

Unternehmen mittel- und langfristig<br />

beitragen.<br />

Glossar<br />

COO: Chief Operations<br />

Officer. Ein Manager,<br />

der das operative Geschäft<br />

eines Unternehmens<br />

leitet, aber nicht<br />

dessen strategische<br />

Planung.<br />

CEO: Chief Executive<br />

Officer. Das geschäftsführende<br />

Vorstandsmitglied<br />

beziehungsweise<br />

der Vorstandsvorsitzende<br />

oder Generaldirektor<br />

eines Unternehmens.<br />

Jean-Manuel Croset<br />

tritt als CEO an, um<br />

Mandriva SA wieder in<br />

ein ruhigeres Fahrwasser<br />

zu bringen.<br />

www.linux-user.de<br />

08 | 12 15


eport<br />

Interview: Mandriva<br />

LU: Das Mandriva-Kernprodukt<br />

„Server“ soll ja künftig auf Mageia-Code<br />

basieren. Will Mandriva<br />

dazu den Mandriva-Fork Mageia<br />

zurückforken? Oder setzt<br />

das Unternehmen eher auf eine<br />

konstruktive Zusammenarbeit<br />

mit der Mageia-Community?<br />

Falls ja, will sich Mandriva an den<br />

Mageia-Gremien beteiligen, und<br />

wie? Und planen Sie ein Sponsoring<br />

für Mageia?<br />

„Wir setzen konsequent<br />

auf Zusammenarbeit.”<br />

JMC: Wir setzen konsequent auf<br />

Zusammenarbeit und eine harmonische<br />

Entwicklung der Partner.<br />

Es ist keineswegs geplant, irgendwelche<br />

Produkte zu „forken“,<br />

und wir unterhalten sehr gute Beziehungen<br />

zu sämtlichen Partnern.<br />

Für uns zählen Offenheit,<br />

Klarheit und als Konsequenz Vertrauen<br />

zu den Grundwerten des<br />

Unternehmens.<br />

Wir möchten bei Partnern oder<br />

Communities keine leitenden<br />

Positionen übernehmen, leisten<br />

aber gerne Unterstützung im jeweils<br />

gewünschten Rahmen. Dies<br />

wird primär auf technischem Gebiet<br />

durch entsprechende Beiträge<br />

geschehen, könnte aber auch<br />

in beiderseitigem Einvernehmen<br />

mit anderen Mitteln erfolgen.<br />

Mandriva SA beabsichtigt nicht,<br />

sich – gleich in welcher Weise –<br />

aufzudrängen, sondern zielt darauf<br />

ab, sich stets vorab mit den<br />

Partnern zu einigen.<br />

Ich möchte hier hervorheben,<br />

dass zwar Mageia als Basis für<br />

Server-Produkte ausgewählt wurde,<br />

dass aber für den Desktop-<br />

Einsatz weiter Mandriva Linux<br />

als Grundlage dienen soll.<br />

LU: Apropos Desktop: Sie haben<br />

ja dieser Tage in einem Eintrag<br />

auf dem Firmenblog die Rückkehr<br />

Mandrivas zu einer Communitygetriebenen<br />

Entwicklung propagiert.<br />

Wie viel Community (in Ziffern)<br />

hat Mandriva denn überhaupt<br />

noch, nachdem ein Großteil<br />

der Entwickler und Anwender<br />

zu Mageia abgewandert ist? Wie<br />

wichtig ist für Sie eine eigene<br />

Community, die das Unternehmen<br />

unterstützt, wobei zur<br />

„Community“ ja sowohl freiwillige<br />

Kontributoren gehören, als<br />

auch eine Benutzerbasis der<br />

Enduser-Distribution Mandriva<br />

Linux? Und welchen Sinn sehen<br />

Sie darin, künstlich eine zweite<br />

Community parallel zur lebendigen<br />

und hochproduktiven Mageia-Gemeinschaft<br />

zu implementieren,<br />

die bereits zwei Releases<br />

vorgelegt hat?<br />

JMC: Es liegt in der Natur der<br />

Sache, dass sich eine Community<br />

schwer zahlenmäßig abschätzen<br />

lässt. Ich kann Ihnen aber versichern,<br />

dass die Mandriva-Linux-<br />

Community existiert und dass<br />

eine große Anzahl von Kontributoren<br />

und Benutzern bereit sind,<br />

wieder in die aktive Arbeit an der<br />

Distribution einzusteigen. Mandriva<br />

SA wünscht, dass sich die<br />

Community dem Projekt widmet,<br />

nicht das Unternehmen.<br />

In diesem Sinn haben wir eine<br />

initiale Auswahl von Protagonisten<br />

der Entwickler- und Benutzer-Gemeinschaft<br />

dazu eingeladen,<br />

in einem Kick-Off-Meeting<br />

die Rahmenbedingungen, Strukturen<br />

und Lenkungsaspekte der<br />

künftigen Mandriva-Linux-Organisation<br />

gemeinsam zu definieren.<br />

Als Basisbegriffe für diese<br />

Organisation wünschen wir uns<br />

die Begriffe „unabhängig“, „transparent“<br />

und „meritokratisch“.<br />

Ich genieße dabei den persönlichen<br />

Vorteil, frei von irgendwelchen<br />

Vorurteilen aufgrund alter<br />

Streitigkeiten zu sein, und so<br />

wünsche ich mir für die Zukunft,<br />

dass sich Mandriva Linux frei, eigenständig<br />

und offen für jedwede<br />

Zusammenarbeit entwickelt.<br />

LU: Wie viel Einfluss will Mandriva<br />

in der Community ausüben,<br />

und wie? Behalten Sie sich da<br />

eine Richtlinienkompetenz, ein<br />

Veto-Recht oder Ähnliches in den<br />

Gremien vor? Was bekommt die<br />

Community von Mandriva, was<br />

sie von Mageia nicht haben kann?<br />

JMC: Mandriva SA möchte keine<br />

besonderen Rechte in der Community<br />

ausüben. Wir wollen die<br />

Eigenständigkeit und Freiheit<br />

von Mandriva Linux sichern und<br />

keine Richtlinien oder Gesetze<br />

vorschreiben. Diese Funktion sehen<br />

wir als Aufgabe der Community<br />

selbst. Es ist zurzeit schwierig<br />

zu beurteilen, welche Vorteile<br />

Mandriva Linux als Community-<br />

Projekt gegenüber gleichartigen<br />

Projekten anderer Communities<br />

bieten kann, da sich das Projekt<br />

erst in der Entstehung befindet.<br />

Wir als Unternehmen sehen aber<br />

keinerlei Hindernisse, in verschiedenen<br />

Projekten tätig zu<br />

sein und darzu beizutragen.<br />

„Nächstes Jahr ausgereifte,<br />

innovative Unternehmensprodukte”<br />

LU: Wo sehen Sie das Unternehmen<br />

nächstes Jahr um diese Zeit?<br />

Wo in fünf Jahren?<br />

JMC: Ich sehe das Unternehmen<br />

nächstes Jahr erfolgreich mit ausgereiften<br />

und gleichzeitig innovativen<br />

Unternehmensprodukten<br />

und in mittelfristiger Zukunft als<br />

führender europäischer Anbieter<br />

alternativer und solider Lösungen<br />

sowie als Referenz für die erfolgreiche<br />

Industrialisierung innovativer<br />

Forschungsprojekte. Ganz<br />

sicher werden wir dem Cloud-Bereich<br />

einen großen Teil unserer<br />

Aktivität widmen.<br />

LU: Herr Croset, wir danken Ihnen<br />

für den Dialog und wünschen<br />

Ihnen und Mandriva viel Erfolg.<br />

Das Interview führte Wolfgang<br />

„wobo“ Bornath im Umfeld der jährlich<br />

stattfindenden Open-Source-<br />

Messe Solutions Linux [2] in Paris.<br />

Wolfgang Bornath ist ein langjähriges<br />

Mitglied der Mandriva-Community<br />

und seit Anfang an im Mageia-<br />

Projekt aktiv. (jlu) n<br />

info<br />

1] Mageia 2: Wolfgang Bornath, „Langsamer<br />

Steigflug“, LU 07/​2012, S. 12,<br />

http:// www. linux‐community. de/ 25935<br />

[2] Solutions Linux: http:// solutionslinux. fr<br />

16 08 | 12<br />

www.linux-user.de


1&1 WEBHOSTING<br />

BESSER HOSTEN!<br />

Kein anderer <strong>Web</strong>hoster<br />

überzeugt durch so viel<br />

Kompetenz, Know-how<br />

und Qualität wie 1&1.<br />

✓<br />

Maximal sicher:<br />

Paralleles Hosting Ihrer<br />

<strong>Web</strong>site in zwei Hightech-<br />

Rechenzentren an verschiedenen<br />

Orten!<br />

✓ Superschnell:<br />

275 GBit/s Anbindung!<br />

✓<br />

Umweltschonend:<br />

Grüner Strom!<br />

✓ Zukunftssicher:<br />

1.300 eigene Entwickler!<br />

Ausgabe 05/12<br />

Ausgabe 07/12<br />

Komplett-Paket für professionelle <strong>Web</strong>sites:<br />

■ 4 Domains inklusive (Auswahl aus .de, .com, .net, .org,<br />

.biz, .info, .name, .eu, .at)<br />

■ 4 GB <strong>Web</strong>space<br />

■ UNLIMITEDTraf fi c<br />

■ 5 FTP-Accounts<br />

■ 5 MySQL Datenbanken (je 1 GB)<br />

■ 1&1 <strong>Web</strong>analytics<br />

■ UNLIMITED Click & Build Apps (Auswahl aus 65 Anwendungen,<br />

z. B. Joomla!, WordPress, eCommerce, CMS)<br />

■ PHP5, Zend Framework, Perl, Python, Ruby, SSI<br />

■ NUR BEI 1&1: GEO-REDUNDANZ!<br />

Maximale Verfügbarkeit durch paralleles Hosting<br />

in zwei örtlich getrennten Hightech-Rechenzentren<br />

■ u. v. m.<br />

1&1 DUAL BASIC<br />

1 JAHR FÜR<br />

6, 99<br />

€/Monat*<br />

danach<br />

6,99 €/Monat*<br />

0,–€/Monat,<br />

DOMAINS OHNE EINRICHTUNGSGEBÜHR:<br />

€/Monat<br />

€/Monat<br />

29<br />

(im 1. Jahr)<br />

69<br />

.de 0, 0, 49 €<br />

.com/.net/.org 0, * (im 1. Jahr) 1, *<br />

1, 49 €<br />

0 26 02 / 96 91<br />

0800 / 100 668 www.1und1.info<br />

* 1&1 Dual Basic im 1. Jahr 0,– €/Monat, danach 6,99 €/Monat. .de Domain im 1. Jahr 0,29 €/Monat, danach 0,49 €/Monat, .com, .net, .org im 1. Jahr 0,69 €/Monat, danach 1,49 €/Monat.<br />

Einmalige Einrichtungsgebühr 9,60 € (entfällt bei Domains). 24 Monate Mindestvertragslaufzeit (12 Monate bei Domains). Preise inkl. MwSt.


eport<br />

Linux & Mobile<br />

© Lawren, 123rf.com<br />

Mobile Systeme im Wandel der Zeit<br />

Generationenvertrag<br />

Als vor über 20 Jahren die ersten Mobilgeräte das Licht der Welt erblickten, wurden sie oft nur milde belächelt.<br />

Heute zählen sie zum unentbehrlichen Zubehör des täglichen Lebens – oft mit Linux als Motor. Andrzej Wiencek<br />

README<br />

Palm und Apple sahen<br />

bereits in den Neunzigern<br />

das Potenzial<br />

mobiler Handhelds, und<br />

brachten die ersten auf<br />

den Markt. Die Zeit war<br />

zu dieser Zeit jedoch<br />

noch nicht reif für diese<br />

Technik, und so vergingen<br />

etwa 10 Jahre, bevor<br />

Geräte dieser Gattung<br />

eine breitere Anerkennung<br />

fanden. Den<br />

Run der breiten Masse<br />

losgetreten hat aber<br />

letztendlich Apple mit<br />

dem iPhone.<br />

Wer noch vor wenigen Jahren im<br />

Zusammenhang mit seinem Mobiltelefon<br />

das Wort „Betriebssystem“<br />

verwendete, wurde meist<br />

eher stirnrunzelnd gemustert.<br />

Kein Wunder, denn die Software<br />

der Geräte erinnerte kaum an<br />

das, was sich die meisten bis dahin<br />

unter einem Betriebssystem<br />

vorstellten: Klickintensive Balkenmenüs<br />

auf briefmarkengroßen<br />

Displays ließen nicht wirklich<br />

den Eindruck von einer produktiven<br />

Arbeitsumgebung aufkommen.<br />

Erst größere Displays in<br />

Kombination mit leistungsfähigen<br />

Prozessoren machten die weitere<br />

Entwicklung möglich.<br />

Doch auch damals gab es durchaus<br />

schon erfolgreiche und visionäre<br />

Konzepte. Von Palm OS und<br />

Symbian über Windows Mobile<br />

bis hin zu iOS und Android ist die<br />

Entstehung der mobilen Betriebssysteme<br />

bis heute eine faszinierende<br />

Geschichte – mit vielen<br />

neuen Ansätzen in der Gegenwart<br />

und einem spannenden Ausblick<br />

auf die Zukunft.<br />

Vorreiter<br />

Als Pionier in Sachen mobile<br />

Computer trat eine kleine Firma<br />

namens Palm auf den Plan, die<br />

1992 auf die Idee kam, dass man<br />

mit einer Displaytastatur und<br />

Stifteingabe die Plastiktasten<br />

doch zugunsten eines größeren<br />

Displays ersetzen könnte (Abbildung<br />

A). Ihr Visionär und Gründer<br />

Jeff Hawkings war es dann<br />

auch, der die Schreiberkennung<br />

namens Graffiti entwickelte, die<br />

später bei vielen verschiedenen<br />

Herstellern unter diversen Bezeichnungen<br />

zum Einsatz kam.<br />

Das erste PDA-Projekt war somit<br />

geboren: Palm lieferte die Idee,<br />

Casio die Hardware und Geoworks<br />

das Betriebssystem. Tandy<br />

übernahm letztendlich den Vertrieb,<br />

unter dessen Namen „Zoomer“<br />

der erste PDA das analoge<br />

Backlight der Welt erblickte.<br />

Fast zeitgleich brachte ein anderer<br />

Global-Player seinen ersten<br />

PDA auf den Markt, der zwar bereits<br />

über eine neuronale Handschriftenerkennung<br />

verfügte,<br />

aber noch erhebliche Schwachstellen<br />

in Hard- und Software<br />

zeigte und teilweise schlichtweg<br />

nicht funktionierte. Die Rede ist<br />

von Apple und seinem ersten<br />

Newton MessagePad (Abbildung<br />

B). Das Gerät verfügte<br />

schon 1993 über einige Innovationen,<br />

die kurioserweise erst heute<br />

wieder in aktuellen Betriebssystemen<br />

wie Windows Vista auftauchten:<br />

So konnte der Newton<br />

unabhängige Daten, die soge-<br />

18 08 | 12<br />

www.linux-user.de


Linux & Mobile<br />

report<br />

nannten „Soups“, verwalten, die<br />

von mehreren Anwendungen<br />

gleichzeitig genutzt wurden. Allerdings<br />

wurde der Newton viel<br />

zu früh und unausgereift regelrecht<br />

auf den Markt geworfen.<br />

Sowohl mit dem Tandy Zoomer<br />

als auch dem Apple Newton erfuhren<br />

Betriebssysteme auf mobilen<br />

Geräten letztendlich ihre Geburtsstunde.<br />

Tatsächlich war die<br />

Welt aber noch nicht bereit für<br />

dieses Novum, denn beide Geräte<br />

hatten nicht nur äußerlich viel<br />

gemeinsam, sondern floppten<br />

auch gleichermaßen. Trotz dieser<br />

finanziellen Misserfolge wurden<br />

die Entwicklungen von Palm OS<br />

und Newton OS aber weiter voran<br />

getrieben, bis dann schließlich<br />

1996 der erste Palm Pilot mit<br />

dem Palm OS 1.0 auf den Markt<br />

kam. Der Rest ist eine Erfolgsgeschichte,<br />

die sich bis zum Palm<br />

OS Cobalt fortsetzte und bis heute<br />

seine Spuren in dem von Hewlett-Packard<br />

übernommenen Betriebssystem<br />

<strong>Web</strong>OS hinterlässt.<br />

Doch auch andere Hersteller<br />

schliefen nicht: Eine Arbeitsgemeinschaft<br />

aus Ericsson, Motorola<br />

und Nokia bastelte ab 1998 zusammen<br />

mit Psion an einem neuen<br />

Betriebssystem namens Symbian<br />

OS. Als Resultat erschien im<br />

Jahr 2000 das Ericsson R380: Der<br />

Klappknochen aus zeitgemäßem<br />

Anthrazit-Plastik kombinierte<br />

dank Symbian erstmals die Funktionen<br />

eines PDAs mit einem Mobiltelefon.<br />

Das herausstechende<br />

Merkmal war sicher die E-Mail-<br />

Funktion, mit der sich die Post<br />

nun endlich auch von unterwegs<br />

abrufen ließ.<br />

Überhaupt schien 2000 das Jahr<br />

der beginnenden Smartphone-<br />

Revolution zu werden. Neben<br />

Symbian brachte auch Microsoft<br />

mit dem Windows CE / Mobile<br />

sein erstes mobiles Betriebssystem<br />

auf den Markt. Ab diesem<br />

Punkt konnten nun verschiedene<br />

Hersteller die neue Geräteklasse<br />

produzieren und mit dem Allround-OS<br />

aus Redmond bestücken<br />

– der Markt für weitere Geräte<br />

dieser Klasse war geöffnet. In<br />

den darauffolgenden Jahren kamen<br />

immer mehr PDAs mit integriertem<br />

Telefon auf den Markt.<br />

Neben Handspring, Palm und<br />

Blackberry brachte auch Nokia<br />

seine erfolgreiche Communicator<br />

Produktlinie heraus.<br />

Die Touch-Revolution<br />

Im Jahr 2007 meldete sich Apple<br />

auf dem Mobilfunkmarkt zurück,<br />

und brachte mit dem iPhone wohl<br />

eines der signifikantesten Geräte<br />

des vergangenen Jahrzehnts auf<br />

den Markt: Erstmals wurde die<br />

Stifteingabe bewusst weggelassen.<br />

Stattdessen kam als wirksamste<br />

Neuerung neben dem einfachen<br />

Bedienkonzept die Fingerbedienung,<br />

die dank Multitouch<br />

auch Gesten wie das „Pinchen“<br />

zum schnellen Vergrößern und<br />

Verkleinern erlaubte.<br />

Doch damit nicht genug: Apples<br />

jahrelange Erfahrung im Bereich<br />

der Desktop-Betriebssysteme<br />

wirkte fast wie eine Waffe, der die<br />

anderen Hersteller vorerst nichts<br />

entgegenzusetzen hatten. Das<br />

Unternehmen portierte seinen<br />

Unix-Unterbau von Mac OS X einfach<br />

auf das iPhone. Das Gerät<br />

ging weg wie warme Semmeln<br />

und machte Apple in den kommenden<br />

Jahren zum reichsten<br />

Unternehmen der Welt. Neben<br />

Nokia und Motorola kämpfen die<br />

Größen der Telefonbranche bis<br />

heute mit den Umsatzverlusten<br />

durch den iPhone-Einschlag.<br />

Der offene Markt<br />

Vor allem Nokia, der bis heute<br />

globalen Nummer eins des Handymarktes,<br />

stand die Panik ins<br />

Gesicht geschrieben: Schnell<br />

kauften die Finnen noch das norwegische<br />

Unternehmen Trolltech,<br />

um mit der betriebssystemübergreifenden<br />

GUI-Bibliothek Qt [1]<br />

ihre bisherigen Symbian-Geräte<br />

fit für Multitouch und neue Anwendungen<br />

zu machen. Weiter<br />

arbeitete das Unternehmen eng<br />

mit der Linux-Community zusammen<br />

und brachte schließlich<br />

mit Intel<br />

das Betriebssystem<br />

Meego für<br />

<strong>Web</strong>-Tablets und<br />

Smartphones an<br />

den Start.<br />

Doch Nokia verschlief<br />

die rechtzeitige GSM-Integration:<br />

Seine Tablets, wie das N800 und<br />

N810 kamen außerhalb einer<br />

WLAN-Verbindung nur mithilfe<br />

eines Handys ins Internet. Zusätzlich<br />

fehlten durch die verpasste<br />

SIM-Integration auch Telefon-<br />

und SMS-Apps. Durch diese<br />

Nachteile wurden die sonst ausgereiften<br />

Produkte auf den Status<br />

eines PDA degradiert und floppten<br />

in der Folge.<br />

Als dann schließlich das Nokia<br />

N900 ausgestattet mit allen<br />

Funktionen eines Smartphones<br />

herauskam, war Apple bereits bei<br />

seiner dritten iPhone Generation<br />

angekommen. So entschied sich<br />

Nokia letztendlich dafür, das vielversprechende<br />

Linux-System kurzerhand<br />

fallen zu lassen und<br />

stattdessen Microsofts Betriebssystem<br />

Windows Phone 7 auf alle<br />

Smartphones zu bringen.<br />

A Das Palmpilot 5000<br />

gilt als das Urgestein<br />

unter den Handhelds.<br />

B Auch Apple<br />

versuchte mit<br />

dem Newton<br />

Messagepad 2000<br />

sein Glück, scheiterte<br />

damals aber ebenso<br />

wie Palm.<br />

C RIM hat die Zeichen<br />

der Zeit erkannt und<br />

stattet sein Blackberry<br />

Playbook OS 2.0 mit einem<br />

Support für Android-Apps<br />

aus.<br />

www.linux-user.de<br />

08 | 12 19


eport<br />

Linux & Mobile<br />

D Nokia zeigt<br />

mit dem Morph-<br />

Conceptphone-Armband,<br />

wie die mobile<br />

Zukunft aussehen<br />

könnte.<br />

E Geht es nach<br />

Google, laufen wir<br />

künftig mit einem Mobilgerät<br />

im Brillenformat<br />

durchs Leben.<br />

(Bild: Google)<br />

Linux kontert<br />

Die ehemals kleine<br />

Firma namens<br />

Android, die der Ex-<br />

Apple- Mitarbeiter Andy<br />

Rubin gegründet hatte, war bereits<br />

2005 von Google eingekauft<br />

worden. Google präsentierte nun<br />

mit der Android-Oberfläche ein<br />

angepasstes Linux, das genau wie<br />

Apples System multitouchfähig<br />

war, eine eigene App-Integration<br />

mitbrachte und im Gegensatz zu<br />

iOS ganz ohne Hardware-Bindung<br />

auf verschiedenen Architekturen<br />

diverser Hersteller lief.<br />

Mit der Markteinführung des<br />

Nexus One wurde Android über<br />

Nacht populär. Damit waren alle<br />

Hersteller happy – mit Ausnahme<br />

natürlich von Apple: Steve Jobs<br />

brachte das Konkurrenzprodukt<br />

so in Rage, dass er von „Diebstahl“<br />

sprach und davon, gegen<br />

Android in einen „thermonuklearen<br />

Krieg“ ziehen zu wollen.<br />

Doch mit seiner neuen Freiheit<br />

sorgte Android dafür, dass wir<br />

heute neben dem iPhone eine<br />

Vielfalt an Geräten im Regal finden.<br />

Schnell entwickelten sich in<br />

diesem Zuge Plattformen wie das<br />

Blackberry Playbook OS (Abbildung<br />

C, vorherige<br />

Seite),<br />

der Palm-<br />

Nachfolger<br />

<strong>Web</strong>OS und<br />

Windows<br />

Phone 7, die<br />

auf einen<br />

mehr oder weniger<br />

üppigen<br />

Marktplatz<br />

mit Apps zugreifen<br />

und<br />

Fingerbedienung<br />

fließend<br />

beherrschen.<br />

Die Kandidaten der mobilen Betriebssysteme<br />

lassen sich grundsätzlich<br />

in zwei Kategorien aufteilen:<br />

Zum einen wären da mit<br />

Android, Meego beziehungsweise<br />

Tizen [2] und bald <strong>Web</strong>OS [3] die<br />

offenen Systeme, zum anderen<br />

mit Windows Phone 7 [4], dem<br />

Blackberry Playbook OS 2.0 [5]<br />

und Apples iOS [6] die Closed-<br />

Source-Systeme.<br />

Es liegt in der Natur der Sache,<br />

dass sich die grundsätzliche Bedienung<br />

unter allen Betriebssystemen<br />

nicht signifikant unterscheidet<br />

– schließlich wurde jedes<br />

System für Fingerbedienung und<br />

Gesten optimiert. Natürlich gibt<br />

es Unterschiede, vor allem hinsichtlich<br />

der Art und Vielfalt von<br />

Anwendungen. Doch die Grundfunktionen<br />

wie Kopieren und<br />

Einfügen, Scrollen und Blättern<br />

oder Zoomen und Verkleinern ähneln<br />

sich bei allen Systemen.<br />

Die Tops und Flops<br />

Während Android und iOS bisher<br />

als klare Gewinner der mobilen<br />

Betriebssysteme gelten, gibt es<br />

natürlich auch Verlierer. Auf der<br />

Kippe standen dabei weniger die<br />

kleinen Anbieter, sondern vielmehr<br />

große Konzerne. Der<br />

Grund: Während Nischenprodukte<br />

und No-Name-Geräte kleinerer<br />

Hersteller eher auf Android setzen,<br />

mussten viele der Big Player<br />

die schmerzhafte Erfahrung machen,<br />

dass der Zug für eigene<br />

Softwarelösungen im mobilen<br />

OS-Bereich schon längst abgefahren<br />

war. Allenfalls Microsoft wird<br />

es vermutlich noch gelingen, sich<br />

mit Windows Phone 7 auch als<br />

Späteinsteiger erfolgreich zu positionieren.<br />

Und auch wenn der Neueinsteiger<br />

Windows Phone 7 noch weit<br />

von Android und iOS entfernt ist,<br />

so kann man mit der konstanten<br />

Entwicklungssicherheit und den<br />

künftigen Tablet-Anbietern kombiniert<br />

mit der Marktposition<br />

von Microsoft davon ausgehen,<br />

dass der Marktanteil für den<br />

Software-Riesen steigen wird,<br />

spätestens mit Windows Phone 8<br />

und den ARM-Versionen des<br />

kommenden Windows 8.<br />

Zu den erwähnten großen Unternehmen<br />

auf der Verliererseite<br />

gehörte aber auch Hewlett<br />

Packard: Der IT-Riese scheiterte<br />

mit seinem Touchpad, das mit<br />

dem Palm OS Nachfolger <strong>Web</strong>OS<br />

bestückt war. Nach nur sieben<br />

Wochen nahm der Hersteller das<br />

Gerät wieder vom Markt, feuerte<br />

den Chef Leo Apotheker und<br />

setzte Milliarden in den Sand.<br />

Nach der Übernahme von Palm<br />

und dem Linux-basierten <strong>Web</strong>OS<br />

sah man schnell ein, dass es offenbar<br />

keinen Platz mehr für ein<br />

weiteres mobiles Betriebssystem<br />

auf dem Markt gab – die meisten<br />

Entwickler hatten sich einfach<br />

auf Android oder iOS festgelegt.<br />

Die Folge: In einer „Alles-mussraus“-Aktion,<br />

die wohl vielen<br />

noch im Gedächtnis sein dürfte,<br />

verramschte HP weltweit seine<br />

<strong>Web</strong>OS-Geräte zum Kampfpreis<br />

von etwa 130 Euro, um wenigstens<br />

einen Teil der Kosten wieder<br />

hereinzubekommen. Immerhin<br />

freuten sich Millionen Schnäppchenjäger<br />

über die schicken Geräte<br />

und warten nun gespannt auf<br />

die Freigabe von <strong>Web</strong>OS zur<br />

Open-Source-Plattform, die noch<br />

in diesem Sommer über die Bühne<br />

gehen soll.<br />

Auch RIM stolperte zunächst<br />

aus ähnlichen Gründen mit seinem<br />

bereits erwähnten Playbook<br />

und dem ebenfalls unixoiden System<br />

QNX beziehungsweise Playbook<br />

OS. Immerhin versah der<br />

Blackberry-Produzent das Betriebssystem<br />

jüngst mit einem<br />

Update auf die Version 2.0 und<br />

rüstete viele überfällige Funktionen,<br />

etwa den Mail-Client, erfolgreich<br />

nach. Auch eine Twitterund<br />

Facebook-Integration wurden<br />

hinzugefügt und Adressbuchsowie<br />

Kalender-App endlich<br />

nachgeliefert. Die vielversprechendste<br />

Neuerung aber kam mit<br />

der Möglichkeit, nun auch Android-Apps<br />

zu starten. Allerdings<br />

beschneidet RIM hier die App-<br />

20 08 | 12<br />

www.linux-user.de


Linux & Mobile<br />

report<br />

Auswahl des Android Market und<br />

riskiert damit, Sympathien zu<br />

verspielen, die das Gerät doch<br />

noch erfolgreich machen könnten.<br />

Ebenfalls fristet das anfangs<br />

vielversprechende Linux-System<br />

Meego mittlerweile ein Nischendasein.<br />

Aktuell läuft es immerhin<br />

auf dem Nokia N9 und dem<br />

WeTab von 4tiitoo [7]. Das mit<br />

Samsung, Intel und Nokia konzipierte<br />

System bringt beim WeTab<br />

interessante Bedienkonzepte mit:<br />

Unter anderem präsentiert sich<br />

der Desktop hier als ein großes<br />

Scrollfeld, auf dem die Programme<br />

vertikal angeordnet sind, was<br />

konzeptionell etwas an die Metro-Oberfläche<br />

der neuen Microsoft-Systeme<br />

erinnert.<br />

Doch seit der Entscheidung Nokias,<br />

seine neuen Geräte zukünftig<br />

mit Windows Phone 7 beziehungsweise<br />

8 zu bespielen, gelang<br />

Meego nie wirklich der große<br />

Durchbruch. Daher wird das Betriebssystem<br />

jetzt vom neuen<br />

Open-Source-Projekt Tizen ersetzt,<br />

das laut der Linux Foundation<br />

auf HTML5-basierende Apps<br />

setzt. Auf diese Weise sollen flexible<br />

Schnittstellen für ein enorm<br />

hohes Maß an Anpassungsfähigkeit<br />

beim Programmieren sorgen.<br />

Die mobile Glaskugel<br />

Nicht zuletzt die steigenden Ansprüche<br />

des Endverbrauchers und<br />

die fortschreitenden technischen<br />

Möglichkeiten haben den Computer<br />

letztendlich auf Hosentaschengröße<br />

geschrumpft. Wenn<br />

mit den NFC-Chips bald auch das<br />

bargeldlose Bezahlen per Smartphone<br />

zum Standard gerät, ist die<br />

Geräteklasse endgültig nicht<br />

mehr aus dem Alltag wegzudenken.<br />

Bezahlmittel, Location-<br />

Dienste und GPS, Social-Network-<br />

und Cloud-Anbindung, Datenspeicher,<br />

Adressbuch, Telefon<br />

und Terminkalender: Das Bündeln<br />

all dieser Funktionen macht<br />

mobile Geräte schon zu einem<br />

fast unheimlichen Machtinstrument.<br />

Ob das die neue Freiheit<br />

oder die neue Überwachung wird,<br />

darüber entscheidet maßgeblich<br />

auch die kritische Verantwortung<br />

der Nutzer. Dabei sollte man die<br />

Zukunft aber nicht gleich schwarz<br />

malen. Allein die kommenden<br />

Monate sind schon interessant:<br />

Microsoft erwacht aus seinem<br />

Dornröschenschlaf und schickt<br />

nach Mobile 7 nun Mobile 8 in<br />

die Startlöcher. Zeitgleich bastelt<br />

das Unternehmen mit Windows 8<br />

und der Metro-Oberfläche [8] daran,<br />

seine Desktop-Betriebssysteme<br />

fit für Tablets und Multitouch<br />

zu machen. Der Palm-OS-Nachfolger<br />

<strong>Web</strong>OS steht inzwischen<br />

unter einer Open-Source-Lizenz,<br />

und schließlich darf man auch<br />

noch auf den Meego-Nachfolger<br />

Tizen gespannt sein.<br />

Mobilität erhöhen<br />

Bei so viel Zeitgeschehen wirkt<br />

ein Blick in die weitere Zukunft<br />

bereits wie spannende Science-<br />

Fiction. Mobile Betriebssysteme<br />

werden auch auf neue Hardware<br />

zugeschnitten sein, die weitere<br />

Anforderungen mit sich bringen.<br />

Ob das Display ausrollbar ist, es<br />

wie beim futuristischen Konzept-<br />

Phone „Morph“ [9] von Nokia<br />

faltbar ums Handgelenk getragen<br />

wird (Abbildung D) oder wir alle<br />

mit Googles „Glass“ ([10], Abbildung<br />

E) auf der Stirn herumlaufen,<br />

wissen wir noch nicht.<br />

Sicher ist nur ein Ziel der Entwickler,<br />

die Mobilität so weit zu<br />

erhöhen, dass der Nutzer am<br />

Ende das Gerät gar nicht mehr<br />

merkt. So bastelt ein amerikanisches<br />

Forschungsprojekt der Universität<br />

Washington zusammen<br />

mit finnischen Wissenschaftlern<br />

bereits seit geraumer Zeit an einer<br />

Kontaktlinse, die irgendwann<br />

Displays ersetzen soll ([11], Abbildung<br />

F). Die Linse wird dazu<br />

kabellos per Induktionsspannung<br />

mit Strom versorgt und hat einen<br />

gewaltigen Vorteil gegenüber den<br />

heutigen Anzeigen: Da sie theoretisch<br />

das gesamte Blickfeld abdeckt,<br />

hat man nicht nur mehr<br />

Platz, sondern kann mittels Augmented-Reality-Technik<br />

wahrgenommene<br />

Gegenstände<br />

um eingeblendete<br />

Zusatzinformationen<br />

interaktiv<br />

ergänzen.<br />

Ausblick<br />

Sicher ist es<br />

bis zur Serienreife<br />

noch<br />

ein weiter Weg: Aktuell zeigt die<br />

Linse im Labor erst einen Pixel<br />

an. Doch bis es erst mal so weit<br />

ist, könnte auch eine aktuell<br />

schon ganz reale Softwarelösung<br />

Abhilfe schaffen: Die intelligente<br />

Sprachsteuerung.<br />

Es ist wohl kaum Zufall, dass<br />

Apple in die Spracherkennungssoftware<br />

Siri [12] 600 Millionen<br />

Dollar investiert hat. Google arbeitet<br />

unter dem Codenamen<br />

„Majel“ an einer ähnlichen Technologie,<br />

die bereits in diesem<br />

Jahr an den Start gehen soll.<br />

Denn wenn Sprachsteuerung tatsächlich<br />

erst einmal so funktioniert,<br />

dass uns mobile Geräte mit<br />

normalen Sätzen verstehen, können<br />

wir Smartphones überwiegend<br />

in der Tasche lassen. (tle) n<br />

info<br />

[1] Qt: http:// qt. nokia. com<br />

[2] Tizen: https:// www. tizen. org<br />

[3] HP <strong>Web</strong>OS: https:// developer. palm. com<br />

[4] Windows Phone 7: http:// www. microsoft.​<br />

com/ windowsphone/ de‐DE/<br />

[5] Playbook OS: http:// de. blackberry. com/​<br />

playbook‐tablet/ playbook‐os2. jsp<br />

[6] Apple iOS: http:// www. apple. com/ de/ ios/​<br />

features. html<br />

[7] WeTab: http:// www. 4tiitoo. com<br />

[8] Windows Mobile 8:<br />

http:// www. windowsmobile8. com<br />

[9] Nokia Morph:<br />

http:// research. nokia. com/ morph<br />

[10] Google Project Glass: https:// plus. google.​<br />

com/ u/ 0/ 111626127367496192147<br />

[11] Display-Kontaktlinse:<br />

http:// www. engr. washington. edu/​<br />

facresearch/ highlights/ ee_contactlens. html<br />

[12] Apple Siri: http:// www. apple. com/ de/​<br />

iphone/ features/ siri. html<br />

F Derzeit noch<br />

Zukunftsmusik: die<br />

Display-Kontaktlinse<br />

der University of<br />

Washington (UW).<br />

www.linux-user.de<br />

08 | 12 21


schwerpunkt<br />

HTML5-Tools<br />

Interessante Tools für HTML5-Entwickler<br />

Fünfte Dimension<br />

„HMTL5 rocks“ – das findet nicht nur Google, und so gibt es bereits eine erkleckliche Anzahl von<br />

Ressourcen, Frameworks und Werkzeugen rund um den brandneuen <strong>Web</strong>standard. Thomas Drilling<br />

Maqetta 6.0.1<br />

LU/maqetta/<br />

README<br />

Schon heute stehen<br />

zahlreiche professionelle<br />

und vor allem<br />

kostenlose Tools und<br />

Frameworks für HTML5<br />

und CSS3 zur Auswahl,<br />

die auch den Neueinstieg<br />

in die <strong>Web</strong>-<br />

Programmierung<br />

unterstützen. Dieser<br />

Artikel stellt die interessantesten<br />

davon vor.<br />

Dank HTML5 und CSS3 beherrschen<br />

<strong>Web</strong>sites heute Funktionen,<br />

die vorher (selbst mit Java)<br />

schlicht nicht möglich waren. Dabei<br />

verbessert HTML5 nicht nur<br />

das Darstellen von <strong>Web</strong>seiten auf<br />

Desktop-PCs, sondern ermöglicht<br />

insbesondere das effiziente Entwickeln<br />

von <strong>Web</strong>anwendungen<br />

für mobile Geräte wie Smartphones<br />

und Tablets. Daher wird<br />

HTML5 das <strong>Web</strong> und die darin erhältlichen<br />

Anwendungen in Zukunft<br />

zweifelsohne dominieren.<br />

Dabei benötigt der Browser beispielsweise<br />

keine zusätzlichen<br />

Plugins mehr, um Video- oder<br />

Audio-Inhalte wiederzugeben.<br />

Insbesondere Entwicklern eröffnen<br />

HTML5 und CSS3 völlig neue<br />

Möglichkeiten, wie etwa Thread-<br />

Programmierung mit <strong>Web</strong>-Workers,<br />

direkte Zugriffsmöglichkeiten<br />

auf das Dateisystem mit ,<br />

ein ausgefeilter Offline-Modus,<br />

zweidimensionalen<br />

Grafiken mit dem -Element,<br />

Animationen mit CSS3 und<br />

das Verwenden beliebiger <strong>Web</strong>-<br />

Fonts mit @font‐face, um nur die<br />

Wichtigsten zu nennen.<br />

Das Beste daran: Schon heute stehen<br />

dazu zahlreiche professionelle<br />

und vor allem kostenlose Tools<br />

und Frameworks zur Auswahl, die<br />

auch den Neueinstieg in die <strong>Web</strong>-<br />

Programmierung unterstützen.<br />

HTML5-Ressourcen im <strong>Web</strong><br />

Die derzeit populärste HTML5-<br />

Ressource stellt zweifelsohne<br />

Googles „HTML5 rocks“ dar [1].<br />

Möchten Sie sich mit den Möglichkeiten<br />

und Standards von<br />

HTML5 vertraut machen oder<br />

schlicht wissen, wie Sie bei Ihren<br />

<strong>Web</strong>-Projekten von den neuen<br />

Funktionen profitieren können,<br />

bietet Googles <strong>Web</strong>-Portal eine<br />

ideale Anlaufstelle.<br />

Google hat „HTML5 rocks“ 2010<br />

ans Netz gebracht, um Entwickler<br />

und <strong>Web</strong>designer mit Demos,<br />

Code-Beispielen und Schritt-für-<br />

Schritt-Anleitungen im Umgang<br />

mit fast allen HTML5-Funktionen<br />

zu unterstützen und den Einstieg<br />

zu erleichtern (Abbildung A). Die<br />

verfügbaren Code-Beispiele und<br />

Demos behandeln die Funktionen<br />

Offline-Modus, Geo-Location,<br />

Audio- und Video-Tags sowie das<br />

-Element und File-<br />

Storage. „HTML5 rocks“ bietet<br />

außerdem eine Reihe von interaktiven<br />

Präsentationen, die einen<br />

umfassenden Überblick über die<br />

Möglichkeiten von HTML5<br />

liefern. Daneben findet sich<br />

eine Code-Sandbox, mit<br />

deren Hilfe Sie Ihre HTML5-<br />

Experimente mitsamt<br />

der neuen<br />

APIs<br />

und CSS-Eigenschaften in einer<br />

sichereren Umgebung ohne<br />

Gefährdung des eigenen Systems<br />

in die Praxis umsetzen.<br />

Auch die offizielle <strong>Web</strong>seite des<br />

W3C-Konsortiums [2] ist einen<br />

Besuch wert und umfasst neben<br />

Links auf viele weitere nützliche<br />

Ressourcen vor allem lesenswerte<br />

Anleitungen. Traditionell bietet<br />

die <strong>Web</strong>seite auch Validatoren für<br />

HTML und CSS an, mit deren<br />

Hilfe Sie als <strong>Web</strong>-Entwickler die<br />

Konformität Ihres Codes testen<br />

[3]. Erwähnung verdient in<br />

diesem Zusammenhang auch das<br />

W3C-Cheatsheet [4], eine<br />

Referenz aller HTML5-, CSS3-<br />

und XSLT-Befehle.<br />

Die sehr empfehlenswerte deutsche<br />

<strong>Web</strong>site Selfhtml5 [5] liefert<br />

ebenfalls eine ganze Reihe von<br />

Beispielen und Anleitungen,<br />

wobei sie ebenfalls das Entwickeln<br />

von Apps für Mobilgeräte<br />

behandelt. Dazu gibt es erklärende<br />

Videos und unter HTML5<br />

<strong>Web</strong>Apps einen interessanten<br />

Link auf die HTML5-Version des<br />

momentan populären Spiels „Cut<br />

the Rope“ [6], die recht eindrucksvoll<br />

demonstriert, was<br />

HTML5 heute leistet.<br />

© Imagehit Asia, 123RF<br />

24<br />

08 | 12


HTML5-Tools<br />

schwerpunkt<br />

Die Entwickler haben<br />

„Cut the Rope“<br />

von der nativen<br />

iOS-App auf<br />

HTML5 umgesetzt,<br />

was angesichts der<br />

zugrundeliegenden<br />

Physik und der aufwendigen<br />

Gestaltung<br />

eine echte Herausforderung<br />

war,<br />

die in Vor-HTML5-<br />

Zeitalter nicht umsetzbar<br />

gewesen<br />

wäre. Faktisch lässt<br />

sich kein Unterschied<br />

zwischen<br />

der nativen App<br />

und der HTML5-<br />

<strong>Web</strong>-App erkennen.<br />

Mozillas Developer Network [7]<br />

offeriert ebenfalls eine eigene<br />

HTML5-Referenz mitsamt Code-<br />

Beispielen und Referenzen. Das<br />

verdeutlich, dass Mozilla mit seiner<br />

<strong>Web</strong>-API ohnehin länger daran<br />

arbeitet, den Unterschied<br />

zwischen nativen und <strong>Web</strong>-Apps<br />

in Zukunft zu verwischen.<br />

Maqetta<br />

Mit dem quelloffenen, webbasierten<br />

<strong>Web</strong>-Editor Maqetta [8] erstellen<br />

Sie im Handumdrehen Benutzeroberflächen<br />

für Mobil- und<br />

Desktop-Anwendungen auf Basis<br />

von HTML5, CSS3 und Ajax. Das<br />

von IBM entwickelte Maqetta hat<br />

das Ziel, die Nachteile von Ajax-<br />

Umgebungen im Vergleich zu den<br />

proprietären Technologien wie<br />

Flash und Silverlight zu eliminieren.<br />

Das Unternehmen übergab<br />

das Projekt Maqetta erst Anfang<br />

2012 unter einer Open-Source-Lizenz<br />

an die gemeinnützige Dojo-<br />

Stiftung, die unter anderem für<br />

das Javascript-Framework Dojo<br />

Toolkit [9] bekannt ist.<br />

Sie laden Maqetta in der aktuellen<br />

Version 6.0.1 in Form eines<br />

ZIP-Archivs herunter [10] und<br />

installieren es dann auf einem lokalen<br />

<strong>Web</strong>server. Hierzu genügt<br />

nach dem Entpacken des ZIP-Archivs<br />

der Aufruf von ./maqetta.<br />

server.unix.sh respektive maqetta.<br />

local.unix.sh. Anschließend steht<br />

das Tool sofort unter der Adresse<br />

http://Server:50000/maqetta oder<br />

http://127.0.0.1:50000/maqetta zur<br />

Verfügung. Der WYSIWYG-Editor<br />

unterstützt Sie beim Erstellen<br />

von <strong>Web</strong>seiten oder von Oberflächen<br />

von <strong>Web</strong>anwendungen (Abbildung<br />

B). Maqetta ermöglicht<br />

das Erstellen eines ansprechenden<br />

Layouts mit einem großen<br />

Umfang grafischer Elemente, die<br />

Sie einfach via Drag & Drop anwenden.<br />

Maqetta ist im Unterschied zu<br />

anderen Lösungen nicht an eine<br />

einzelne, spezifische UI-Biblio-<br />

A Auf Googles „HTML5<br />

rocks“ können Entwickler<br />

und <strong>Web</strong>designer<br />

mit den neuen<br />

HTML-Features experimentieren.<br />

Tipp<br />

Google empfiehlt<br />

zwar jedem, der mit<br />

dem vollen Funktionsumfang<br />

von HTML5<br />

experimentieren<br />

möchte, den hauseigenen<br />

Browser<br />

Chrome zu verwenden,<br />

inzwischen unterstützen<br />

aber die<br />

meisten gängigen<br />

<strong>Web</strong>browser HTML5.<br />

Eine Ausnahme stellt<br />

lediglich Microsofts<br />

Internet dar.<br />

B Der leistungsfähige<br />

<strong>Web</strong>-Editor Maqetta<br />

wurde ursprünglich<br />

von IBM entwickelt.


schwerpunkt<br />

HTML5-Tools<br />

C Das Tool Maqetta<br />

bindet bei Bedarf unterschiedliche<br />

Widget-<br />

Bibliotheken ein.<br />

D Über Layout- Schablonen<br />

unterstützt Maqetta<br />

Sie beim zielgerichteten<br />

Entwickeln<br />

von Layouts für gängige<br />

Mobilgeräte.<br />

thek gebunden. Sie können in der<br />

aktuellen Version problemlos andere<br />

bewährte Lösungen einbinden<br />

wie Yahoos YUI-Library oder<br />

JQuery UI (Abbildung C).<br />

Daneben unterstützt Maqetta<br />

Sie beim Entwickeln mobiler Anwendungen<br />

mit Silhouetten, also<br />

Layout-Schablonen bekannter<br />

Geräte wie dem iPhone. So erstellen<br />

Sie zielgenaue Layouts (Abbildung<br />

D). Maqetta erlaubt es bei<br />

Bedarf in der Quellcode-Ansicht<br />

zu arbeiten. Es ist sogar möglich,<br />

gleichzeitig im visuellen- und im<br />

Code-Modus zu arbeiten. Darüber<br />

hi naus unterstützt das Tool<br />

Teamarbeit mit Funktionen für<br />

Reviews, Bewertungen oder Kommentare.<br />

HTML5 Boilerplate<br />

Stehen Sie noch am Anfang Ihres<br />

HTML5-Abenteuers, sollten Sie<br />

sich das Open-Source-Tool<br />

HTML5 Boilerplate [11] ansehen.<br />

Bei Boilerplate handelt es sich um<br />

eine sehr professionell gemachte<br />

HTML/​CSS/​JS-Vorlage, die als<br />

Ausgangsbasis für HTML5-Projekte<br />

dient. Boilerplate wurde von<br />

Paul Irish entwickelt, einem Ingenieur<br />

von Googles Chrome-Team,<br />

und steht aktuell in der Version<br />

3.0 zum freien Download auf<br />

der Projektseite sowie auf Github<br />

[12] bereit. Sie finden dort<br />

sowohl eine hervorragend dokumentierte<br />

Version als auch eine<br />

ausschließlich aus Code bestehende,<br />

abgestrippte Variante.<br />

HTML5 Boilerplate vereinfacht<br />

dank Cross-Browser-Normalisierung,<br />

eingebauter Performance-<br />

Optimierungen und vieler weiterer<br />

Funktionen wie etwa Cross-<br />

Domain-Ajax das Arbeiten mit<br />

vielen HMTL5-Funktionen. Das<br />

Paket enthält unter anderem eine<br />

für Einsteiger nützliche .htaccess-<br />

Konfigurationsdatei. Sie bietet<br />

brauchbare Voreinstellungen wie<br />

eine Reihe von Standard-Caching-<br />

Regeln oder Einstellungen für das<br />

effiziente Wiedergeben von HT-<br />

ML5-Video. Zudem erlaubt Boilerplate<br />

das einfache Verwenden<br />

von @font‐face-Schriften sowie<br />

das komprimierte Ausliefern der<br />

verwendeten Ressourcen.<br />

Paul Irish hat zusammen mit Faruk<br />

Ates neben Boilerplate mit<br />

Modernizr [13] eine quelloffene<br />

Javascript-Bibliothek entwickelt,<br />

die bei <strong>Web</strong>designern ebenfalls<br />

viel Anklang findet, das sich mit<br />

ihr Darstellungsfehler von CSS3-<br />

und HTML5-<strong>Web</strong>seiten auf älteren<br />

Browsern verhindern lassen.<br />

Laut Dokumentation [14] erkennt<br />

Modernizr, ob der jeweilige<br />

Browser HTML5 unterstützt, und<br />

ersetzt gegebenenfalls fehlende<br />

Funktionen durch Javascript-<br />

Codeschnipsel („Polyfills“), was<br />

eine gewisse Abwärtskompatibilität<br />

ermöglicht. Der Sinn des Ganzen<br />

besteht vorrangig darin, dass<br />

sich Entwickler mit HTML5 vertraut<br />

machen können, ohne<br />

Rücksicht auf das Vorhandensein<br />

HTML5-fähiger Browser beim<br />

Anwender nehmen zu müssen.<br />

Die Bibliothek unterstütz t unter<br />

anderem und @font‐face.<br />

Sproutcore<br />

Ein weiteres sehr populäres<br />

Open-Source-HTML5-Framework<br />

für <strong>Web</strong>-Anwendungen ist<br />

Sprout core [15]. Mithilfe des freien<br />

HTML5-Frameworks entwickeln<br />

Sie <strong>Web</strong>-Anwendungen, die<br />

im Zusammenspiel mit einem<br />

modernen HTML5-fähigen Browser<br />

problemlos mit Desktop-<br />

Applikationen konkurrieren können,<br />

ohne dass der Nutzer<br />

irgendwelche Plugins installiert<br />

muss. Sproutcore stammt von der<br />

Firma Strobe Inc. [16], die von<br />

dem ehemaligen Apple-Mitarbeiter<br />

Charles Jolley gegründet wurde.<br />

Seit 2011 steht das Framework<br />

unter einer Open-Source-<br />

Lizenz (MIT License). Das Framework<br />

entstand ursprünglich als<br />

Fundament für Apples Mobile-<br />

Me-Dienst und ist unter Entwicklern<br />

wegen seiner Robustheit und<br />

Schnelligkeit beliebt. Außerdem<br />

skaliert das System gut.Technisch<br />

unterscheidet sich das Framework<br />

dadurch von anderen Lösungen,<br />

dass Sproutcore die gesamte Business-Logik<br />

in Java script umsetzt<br />

und daher vollständig auf Client-<br />

26 08 | 12<br />

www.linux-user.de


HTML5-Tools<br />

schwerpunkt<br />

E Das Highlight von<br />

HTML5 Boilerplate<br />

stellt die mitgelieferte<br />

.htaccess-Datei dar.<br />

Seite implementiert wird, womit<br />

sich die Reaktionszeiten von <strong>Web</strong>-<br />

Anwendungen deutlich verringern<br />

lassen, weil sich der Datenaustausch<br />

zwischen Browser und<br />

Server auf ein Minimum reduziert.<br />

Sproutcore selbst ist allerdings<br />

in Ruby implementiert, womit<br />

Sie als Entwickler einer <strong>Web</strong>-<br />

Oberfläche aber nichts zu tun haben:<br />

Sie entwickeln mit Sproutcore,<br />

wie mit jeder anderen <strong>Web</strong>-<br />

Plattform auch, Programme in<br />

HTML5, Javascript und CSS3.<br />

Um Sproutcore in der Version<br />

1.9.2 unter Linux zu nutzen,<br />

brauchen Sie Ruby 1.9.2, jedoch<br />

bringen die meisten aktuellen<br />

Distributionen lediglich Ruby<br />

1.8.2 mit. Erfreulicherweise besitzt<br />

Ruby mit Gems ein eigenes<br />

Paket-Management, das Ihnen<br />

ermöglicht, mehrere Versionen<br />

eines Programms oder einer Bibliothek<br />

kontrolliert zu installieren<br />

und wieder zu entfernen. Außerdem<br />

können Sie mithilfe des<br />

Ruby-Version-Managers RVM<br />

mehrere Ruby-Implementierungen<br />

und Gems-Versionen parallel<br />

nutzen. Sie checken RVM wahlweise<br />

direkt von Github aus oder<br />

nutzen den rvm‐installer (Listing<br />

1, Zeilen 1 bis 3). Anschließend<br />

empfiehlt es sich, die PATH-<br />

Variable des Systems mit Ruby zu<br />

erweitern, wozu Sie die Datei<br />

~/.bash_profile um folgende Zeile<br />

ergänzen:<br />

[[ ‐s "$HOME/.rvm/scripts/rvm" ]U<br />

] && source "$HOME/.rvm/scripts/U<br />

rvm<br />

Das ermöglicht es, die Ruby-Version<br />

1.9.2 via RVM zu installieren<br />

(Listing 1, Zeilen 4 bis 6).<br />

Ubuntu-Nutzer können mit relativ<br />

wenig Aufwand auch Sproutcore<br />

1.8.2 ausprobieren, indem<br />

sie einfach die Pakete ruby-rvm<br />

und (falls noch nicht geschehen)<br />

build-essential installieren. Das<br />

Installieren von Sproutcore 1.8.2<br />

erfolgt dann ganz einfach mit gem<br />

install sproutcore.<br />

Der mit sproutcore server zu<br />

startende Server nutzt per Default<br />

Port 4020. Eine ausführlicher<br />

„Getting-Started-Guide“ [17]<br />

gibt darüber Auskunft, wie Sie<br />

ein erstes Projekt anlegen.<br />

Sencha Touch<br />

Eines der bekanntesten Frameworks<br />

zum Erstellen plattformübergreifender<br />

Anwendungen für<br />

Smartphones ist das vollständig<br />

auf HTML5 und CSS3 basierende<br />

Sencha Touch [18]. Sencha Touch<br />

zeichnet sich – wie der Name<br />

schon nahelegt – durch das komfortable<br />

Verwalten von Touch-Ereignissen<br />

aus und bringt eine umfassende<br />

UI-Bibliothek mit. Zur<br />

grafischen Gestaltung von Oberflächen<br />

nutzt es ausschließlich<br />

CSS3-Transitions und verzichtet<br />

(abgesehen von Icons) ganz auf<br />

Bilder. Darüber hinaus nutzt auch<br />

Sencha Touch eine große Anzahl<br />

an HTML5-Funktionen.<br />

Sencha Touch unterstützt offiziell<br />

die Mobilplattformen Android,<br />

iOS und Blackberry 6, soll aber<br />

laut Hersteller Sencha Inc. auf jedem<br />

mobilen Browser funktionieren,<br />

der HTML5-Features unterstützt.<br />

Die aktuelle Version<br />

2.0.2.2 der „Free Commercial Version“<br />

steht unter [19] zum kostenlosen<br />

Download bereit.<br />

Jo HTML5 App Framework<br />

Zu den nicht ganz so bekannten<br />

HTML5-Frameworks zählt Jo<br />

[20], das die Plattformen Android,<br />

Blackberry, ChromeOS, iOS<br />

und <strong>Web</strong>OS unterstützt. Wie Sen-<br />

Listing 1<br />

01 $ curl ‐s https://rvm.beginrescueend.com/install/rvm<br />

‐o rvm‐installer<br />

02 $ chmod +x rvm‐installer<br />

03 $ ./rvm‐installer ‐‐version latest<br />

04 $ rvm install ruby‐1.9.2<br />

05 $ rvm use 1.9.2<br />

06 $ rvm ‐‐default use 1.9.2<br />

www.linux-user.de<br />

08 | 12 27


schwerpunkt<br />

HTML5-Tools<br />

F Mit RVM und<br />

Gems lassen sich<br />

mehrere Ruby-Versionen<br />

parallel installieren<br />

und nutzen.<br />

cha Touch eignet sich Jo vorrangig<br />

zum Entwickeln von mobilen<br />

Apps und bringt eine UI-Widget-<br />

Library und einfach zu implementierende<br />

CSS3-Animationen mit.<br />

Im Zusammenspiel mit der App<br />

Phonegap [21] ermöglicht Jo<br />

auch das Entwickeln mobiler<br />

Apps auf Basis von HTML5, die<br />

sich nativ übersetzen lassen. Bei<br />

Jo handelt es sich um freie Software,<br />

das Framework wird unter<br />

einer OpenBSD-Lizenz auf Github<br />

[22] gehostet.<br />

Und sonst?<br />

Möchten Sie als Entwickler schon<br />

jetzt Multimedia-Daten ausschließlich<br />

mithilfe von HTML5-<br />

Features wie und <br />

einbinden, ohne sich Gedanken<br />

darum zu machen, welchen Browser<br />

der Anwender nutzt, können<br />

Sie neben der oben erwähnten<br />

Modernizr-Bibliothek auch den<br />

MediaElement Player [23] verwenden<br />

(Abbildung G). Dabei<br />

stellt eine Open-Source-Javascript-Bibliothek<br />

mithilfe von<br />

CSS und dem populären<br />

Framework<br />

JQuery [24]<br />

einen universellen<br />

Video-Player<br />

zur Verfügung.<br />

Ein Skript prüft<br />

beim Laden der<br />

Seite, ob der anfragende<br />

Browser<br />

HTML5 unterstützt<br />

– falls<br />

nicht, ersetzt die<br />

Lösung automatisch<br />

das -Tag durch ein<br />

Flash- oder Silverlight-Plugin.<br />

Um ein sehr leistungsfähiges<br />

<strong>Web</strong>-Entwicklungstool handelt es<br />

sich bei Aptana Studio [25] von<br />

Appcelerator. Die aktuelle Version<br />

3.0 [26] unterstützt mit<br />

HTML5, CSS3, Javascript, Ruby,<br />

Rails, PHP und Python alle heute<br />

relevanten <strong>Web</strong>-Technologien.<br />

Aptana Studio bringt neben eigenen<br />

Validatoren auch diverse<br />

Browser-Emulatoren mit, ist allerdings<br />

nur bei nicht gewerblicher<br />

Nutzung kostenlos.<br />

Fazit<br />

In vielen Bereichen vereinfacht<br />

sich das Programmieren von<br />

plattformübergreifenden Oberflächen.<br />

Das umfasst selbst komplexe<br />

Applikationen. Derzeit bietet<br />

HTML5 vor allem beim Abspielen<br />

von Multimedia-Inhalten<br />

unbestreitbare Vorteile und<br />

macht das bisher übliche Verwenden<br />

von Plugins obsolet, sofern<br />

Sie mithilfe der HTML5-Tags<br />

und Multimedia-<br />

Inhalte auf einfache Weise in Ihre<br />

<strong>Web</strong>seite integrieren. Sollte sich<br />

HTML5 wie zu erwarten durchsetzen,<br />

macht es also in naher Zukunft<br />

Technologien wie Flash<br />

oder auch Silverlight überflüssig.<br />

Dass HTML5 aber deutlich mehr<br />

kann, als nur Plugins ersetzen,<br />

sollte unsere Übersicht gezeigt<br />

haben und macht hoffentlich<br />

Lust auf das langsam heraufziehende<br />

<strong>Web</strong> 3.0. (jlu) n<br />

[1] „HTML5 rocks“:<br />

http:// www. html5rocks. com/ en/<br />

[2] W3C-Konsortium: http:// www. w3. org<br />

[3] W3C-Validator: http:// validator. w3. org<br />

[4] W3C-Cheatsheet:<br />

http:// www. w3. org/ 2009/ cheatsheet<br />

[5] Selfhtml5: www. selfhtml5. org<br />

[6] „Cut the rope“:<br />

http:// www. cuttherope. ie/ dev<br />

[7] Mozilla Developer Network:<br />

https:// developer. mozilla. org/ de<br />

[8] Dojo Foundation/ Maqetta: http://​<br />

dojofoundation. org/ projects/ maqetta<br />

[9] Dojo-Toolkit:<br />

info<br />

http:// dojofoundation. org/ projects/ dojo<br />

[10] Maqetta-Download:<br />

http:// maqetta. org/ downloads/<br />

[11] HTML5 Boilerplate:<br />

http:// de. html5boilerplate. com<br />

[12] HTML5-Boilerplate (Github): https:// github.​<br />

com/ paulirish/ html5‐boilerplate<br />

[13] Modernizr: http:// www. modernizr. com<br />

[14] Modernizr-Doku:<br />

http:// modernizr. com/ docs/<br />

[15] Sproutcore: http:// www. sproutcore. com<br />

[16] Strobe Inc.: http:// www. strobecorp. com<br />

[17] Sproutcore – Getting-Started-Guide:<br />

http:// guides. sproutcore. com/ getting_started.<br />

html<br />

[18] Sencha Touch: http:// www. sencha. com/​<br />

products/ touch/ index. php<br />

[19] Sencha-Touch-Download: http:// www.​<br />

sencha. com/ products/ touch/ download/<br />

[20] Jo HTML5 App Framework:<br />

http:// joapp. com<br />

[21] Phonegap: http:// phonegap. com<br />

[22] Jo (Github):<br />

http:// github. com/ davebalmer/ jo<br />

[23] MediaElement Player:<br />

G Der MediaElement<br />

http:// mediaelementjs. com<br />

Player ermöglicht<br />

[24] JQuery: http:// jquery. com<br />

HTML5-Anwendungen<br />

[25] Aptana Studio: http:// www. aptana. com<br />

mit Video-Tag auch auf<br />

[26] Aptana-Studio-Download:<br />

älteren Browsern.<br />

http:// www. aptana. com/ products/ studio3<br />

28 08 | 12<br />

www.linux-user.de


CouchDB<br />

schwerpunkt<br />

Daten für <strong>Web</strong>-Applikationen verwalten mit der NoSQL-Datenbank CouchDB<br />

Komfortables Sofa<br />

Mit CouchDB und wenigen Javascript-Kenntnissen programmieren Sie im Nu eine <strong>Web</strong>-Applikation<br />

inklusive Datenbank. Ganz ohne Umdenken greift das neue Konzept allerdings nicht. Tim Schürmann<br />

© Malalena, sxc.hu<br />

Eine Datenbank aufzusetzen,<br />

übersteigt die Möglichkeiten der<br />

meisten Heimanwender. Bietet<br />

der gemietete <strong>Web</strong>space zusätzlich<br />

keine vorkonfigurierte Datenbank<br />

an, war das früher der<br />

Todesstoß für einigermaßen<br />

komplexe Anwendungen im <strong>Web</strong>.<br />

CouchDB [1] eröffnet einen einfacheren<br />

Weg, um nicht nur Daten,<br />

sondern komplette Programme<br />

zu speichern und auszuliefern.<br />

Ursprung<br />

Die Wurzeln des Projektes reichen<br />

zurück bis in die Zeit kurz<br />

nach der Jahrtausendwende:<br />

Nach seinem Studium arbeitete<br />

Damien Katz lange Zeit bei IBM<br />

an Lotus Notes. 2002 verließ er<br />

seinen Arbeitgeber und begann<br />

eine eigene Open-Source-Datenbank<br />

zu entwickeln. Sie sollte wie<br />

die von Notes arbeiten, aber wesentlich<br />

mehr Funktionen bieten.<br />

Als Programmiersprache wählte<br />

er Erlang [2] – mit dem sich die<br />

parallelen Zugriffe auf die gespeicherten<br />

Daten besonders einfach<br />

umsetzen ließen. Die erste Version<br />

der CouchDB getauften Datenbank<br />

erschien schließlich 2005.<br />

Da Damien Katz in dieser Phase<br />

kaum Geld mit der Software verdiente,<br />

arbeitet er kurzzeitig für<br />

MySQL, das Unternehmen hinter<br />

der gleichnamigen Datenbank.<br />

Schließlich landete er wieder bei<br />

IBM. Dort durfte er weiterhin an<br />

CouchDB schrauben, musste aber<br />

die Rechte an der Datenbank an die<br />

Apache Software Foundation übergeben.<br />

Seit Ende 2008 ist das Programm<br />

ein vollwertiges Apache­<br />

Projekt und steht komplett unter<br />

der freien Apache-Lizenz.<br />

2010 erreichte CouchDB die<br />

Versionsnummer 1.0. Bis dahin<br />

lief sie jedoch schon in zahlreichen<br />

Projekten und erfreute sich<br />

einer recht großen Anhängerschaft.<br />

Mittlerweile gehört die<br />

Applikation zu den bekanntesten<br />

Datenbanken, die auf SQL als Abfragesprache<br />

verzichten. Solche<br />

Datenbanksysteme firmieren derzeit<br />

unter dem zwar modischen,<br />

aber leicht missverständlichen<br />

Begriff NoSQL.<br />

Schriftstücke<br />

CouchDB speichert immer komplette<br />

Dokumente – wenn auch<br />

nicht Dateien im Sinne eines<br />

LibreOffice-Dokumentes, sondern<br />

Textdateien im Austauschformat<br />

JSON [3]. Listing 1 zeigt ein kleines<br />

Beispiel für ein solches Dokument.<br />

In den geschweiften Klammern<br />

stehen alle zu speichernden<br />

Informationen. Um diese später<br />

einfacher auffinden und unterscheiden<br />

zu können, erhält jeder<br />

Wert zunächst einen eindeutigen<br />

Namen, den sogenannten Key.<br />

Listing 1<br />

{<br />

"name": "Max Mustermann",<br />

"strasse": "Musweg 4",<br />

"ort": "Beidorf",<br />

"plz": 74214,<br />

"telefonnummern": [<br />

"0123/4546780", "9876‐543201" ]<br />

}<br />

CouchDB 1.2.0<br />

LU/couchdb/<br />

README<br />

CouchDB verzichtet auf<br />

SQL. Stattdessen speichert<br />

es komplette Dokumente,<br />

Abfragen bestehen<br />

aus speziellen<br />

URLs und Javascript-<br />

Funktionen und liefert<br />

auf Wunsch sogar komplette<br />

<strong>Web</strong>-Anwendungen<br />

aus und ersetzt<br />

so den <strong>Web</strong>server.<br />

www.linux-user.de<br />

08 | 12 29


schwerpunkt<br />

CouchDB<br />

A Den Namen des<br />

Dokumentes hängen Sie<br />

einfach an die URL an.<br />

In diesem Fall dient als<br />

Name die von CouchDB<br />

erzeugte UUID.<br />

installation<br />

Listing 1 auf der vorherigen Seite<br />

führt beispielsweise die Ortsangabe<br />

Beidorf unter dem Key ort.<br />

Der Key selbst steht immer in Anführungszeichen.<br />

Ihm folgen ein<br />

Doppelpunkt und dann die eigentliche<br />

Information. Sofern es<br />

sich dabei um einen Text handelt,<br />

steht dieser ebenfalls in Anführungszeichen,<br />

bei Zahlen dürfen<br />

Sie diese weglassen.<br />

Kommas trennen die zu speichernden<br />

Daten jeweils – in Listing<br />

1 am Ende einer jeden Zeile.<br />

Aufzählungen beziehungsweise<br />

Listen stehen zwischen eckigen<br />

Klammern, wobei ebenfalls wieder<br />

Kommata die einzelnen Werte<br />

trennen. Welche Daten ein Dokument<br />

enthält, dürfen Sie frei<br />

festlegen. Als Werte erlaubt die<br />

Software übrigens wiederum<br />

JSON-Strukturen, wie das Beispiel<br />

aus Listing 2 zeigt.<br />

CouchDB liegt einigen wenigen Distributionen bereits bei – allerdings<br />

mitunter in ziemlich alten Versionen. Das Repository von<br />

Ubuntu 12.04 bietet beispielsweise die Version 1.0.1 an, zum<br />

Redaktionsschluss aktuell war aber bereits die Version 1.2.0.<br />

Folglich kommen Sie meist nicht umhin, selbst den CouchDB-<br />

Quellcode zu übersetzen.<br />

Dazu installieren Sie zunächst über den Paketmanager Erlang<br />

OTP (in der Version R12B5 oder höher), Make, GCC für C++, ICU,<br />

OpenSSL, Mozilla SpiderMonkey (mindestens in Version 1.7),<br />

Libcurl und Help2man. Unter Ubuntu 12.04 und Debian geht das<br />

am schnellsten über den folgenden Befehl in einem Terminal:<br />

$ sudo apt‐get install build‐essential erlang erlang‐euU<br />

nit libicu‐dev libmozjs‐dev libcurl4‐openssl‐dev<br />

Anschließend laden Sie von der CouchDB-Homepage oder der<br />

Heft-DVD das Archiv herunter und entpacken Sie es im Home-<br />

Verzeichnis. Dort übersetzen und installieren Sie CouchDB mit<br />

den folgenden drei Befehlen:<br />

$ ./configure<br />

$ make<br />

Anfragen und Anweisungen<br />

nimmt CouchDB über das HTTP-<br />

Protokoll entgegen, das Browser<br />

zum Abrufen von <strong>Web</strong>seiten verwenden.<br />

Vereinfacht gesagt: Sie<br />

rufen spezielle URLs auf, die<br />

CouchDB dann wiederum als<br />

Anweisungen interpretiert. Das<br />

Prinzip ist unter dem Namen<br />

RESTful [4] bekannt.<br />

Am einfachsten setzen Sie solche<br />

Anfragen über das Hilfsprogramm<br />

cURL [5] ab, das sich in<br />

den Repositories aller gängigen<br />

Distributionen findet. Eine neue<br />

Datenbank adressbuch erzeugen<br />

Sie über den folgenden Aufruf:<br />

$ curl ‐X PUT http://127.0.0.1:5U<br />

984/adressbuch<br />

Das Kommando PUT bezeichnet<br />

die entsprechende HTTP-Methode.<br />

Sie weist CouchDB an, etwas<br />

zu erstellen oder zu verändern.<br />

Hinter der Adresse 127.0.0.1 verbirgt<br />

sich der eigene Rechner, auf<br />

dem CouchDB standardmäßig am<br />

TCP-Port 5984 lauscht. CouchDB<br />

liefert also grundsätzlich alle Ausgaben<br />

in der JSON-Notation zurück.<br />

Die Rückmeldung auf den<br />

Befehl sollte {"ok":true} lauten.<br />

Die erstellte Datenbank können<br />

Sie jetzt mit Daten füllen – wie<br />

etwa denen aus Listing 1. Wie alle<br />

in CouchDB gespeicherten Dokumente<br />

benötigt auch dieses allerdings<br />

noch einen eindeutigen Namen<br />

– CouchDB speichert ihn<br />

dann später im Dokument unter<br />

dem Key _id.<br />

Sie dürfen sich für jedes Dokument<br />

selbst einen Namen ausdenken,<br />

solange er keine Sonderzeichen<br />

enthält und nicht mit einem<br />

Unterstrich beginnt – solche<br />

Namen reserviert CouchDB für<br />

interne Zwecke. Wichtig ist, dass<br />

Sie einen eindeutigen Namen<br />

wählen. Um das sicherzustellen,<br />

generieren Sie diesen am einfachsten<br />

über CouchDB selbst<br />

(Abbildung A):<br />

$ curl ‐X GET http://127.0.0.1:5U<br />

984/_uuids<br />

Als Ergebnis erhalten Sie eine lange,<br />

kryptische Zeichenkette: einen<br />

sogenannten Universally<br />

Unique Identifier, kurz UUID [6].<br />

Unter Verwendung des Namens<br />

können Sie das Dokument in die<br />

Datenbank stecken, den dazu nötigen<br />

cURL-Befehl zeigt Listing 3.<br />

Durch das angehängte Dokument<br />

verwandelt der Befehl sich<br />

in einen ziemlich unhandlichen<br />

Bandwurm. Wollen oder müssen<br />

Sie Dokumente per Hand in die<br />

Datenbank stopfen, sollten Sie<br />

$ sudo make install<br />

Anschließend starten Sie CouchDB via sudo couchdb. Steuern<br />

Sie jetzt in einem Browser die Adresse http://​127.0.0.1:5984/​<br />

an, meldet sich CouchDB mit {"couchdb":"Welcome","version":<br />

"1.2.0"}.<br />

B CouchDB bringt ein eingebautes Frontend mit dem Namen Futon mit, über<br />

das Sie die Datenbanken etwas komfortabler verwalten.<br />

30 08 | 12<br />

www.linux-user.de


CouchDB<br />

schwerpunkt<br />

deshalb die Hilfe der mitgelieferten<br />

Oberfläche in Anspruch nehmen.<br />

Sie erreichen sie mit einem<br />

Browser unter der Adresse<br />

http://127.0.0.1:5984/_utils/.<br />

Sie sehen dann die in CouchDB<br />

eingebaute <strong>Web</strong>-Applikation namens<br />

Futon (Abbildung B). In<br />

dieser klicken Sie die entsprechende<br />

Datenbank in der Liste<br />

an, im Beispiel also das adressbuch.<br />

Die anderen Datenbanken, deren<br />

Name mit einem Unterstrich beginnt,<br />

nutzt CouchDB für interne<br />

Zwecke. Im Zweifelsfall erstellen<br />

Sie mit Create Database unkompliziert<br />

eine neue Datenbank.<br />

In der geöffneten Datenbank<br />

legt Futon über New Document<br />

ein weiteres leeres Dokument an<br />

und vergibt dafür automatisch<br />

eine ID. Die müssen Sie nur über<br />

die entsprechende Checkbox bestätigen<br />

– oder aber den Vorschlag<br />

der Software mit einer eigenen<br />

ID überschreiben.<br />

Per Add Field ergänzen Sie jetzt<br />

sukzessive weitere Datenfelder.<br />

Für eine Änderung genügt ein<br />

Klick auf den entsprechenden<br />

Eintrag (Abbildung C). Alternativ<br />

geben Sie auf dem Register Source<br />

das komplette Dokument in der<br />

JSON-Notation ein beziehungsweise<br />

bearbeiten es.<br />

Altlasten<br />

Egal, ob Sie ein Dokument über<br />

die Kommandozeile oder Futon<br />

in die Datenbank schieben: Die<br />

Software fügt dem Dokument automatisch<br />

eine Versionsnummer<br />

hinzu. Die liegt im Key _rev und<br />

setzt sich aus zwei Teilen zusammen:<br />

Am Anfang vor dem Bindestrich<br />

steht eine fortlaufende<br />

Nummer. CouchDB zählt diese<br />

nach jeder Änderung um eins<br />

hoch. Zudem erstellt CouchDB<br />

mittels des MD5-Verfahrens eine<br />

Prüfsumme des Dokumentes, die<br />

hinter dem Bindestrich steht. Die<br />

älteren Versionen des Dokumentes<br />

bleiben weiterhin in der Datenbank.<br />

In Futon haben Sie die<br />

Möglichkeit, über Previous Version<br />

durch diese zu blättern.<br />

Wenn Sie ein Dokument mit<br />

cURL ändern oder löschen, müssen<br />

Sie die komplette Versionsnummer<br />

mit angeben. Der Befehl<br />

aus Listing 4 erweitert beispielsweise<br />

das vorhandene Dokument<br />

um den Eintrag alter. Sofern dieser<br />

Key noch nicht existiert, erzeugt<br />

ihn der Befehl, andernfalls<br />

ändert er den Wert des Schlüssels.<br />

Die erneute Angabe der übrigen<br />

Keys ist notwendig, da<br />

CouchDB diese andernfalls löschen<br />

würde. Wie Sie in Futon<br />

oder via Terminal schnell herausfinden,<br />

hat CouchDB die Revisionsnummer<br />

erhöht.<br />

Wie das Beispiel zeigt, dürfen<br />

Sie einem Dokument jederzeit beliebige<br />

weitere Daten hinzufügen.<br />

Die anderen Dokumente können<br />

komplett andere Informationen<br />

enthalten – so dürfte die Adresse<br />

von Peter Schmidt auch nur seine<br />

{<br />

"name": "Max Mustermann"<br />

"bestellung": 1<br />

"produkte": [<br />

{"bestellung": "T‐Shirt"<br />

"anzahl": 1<br />

},<br />

{<br />

"bestellung": "Schuhe"<br />

"anzahl": 2<br />

} ]<br />

}<br />

Listing 2<br />

Mobilfunknummer umfassen. Im<br />

Gegensatz zu herkömmlichen relationalen<br />

Datenbanken ist<br />

CouchDB folglich schemafrei.<br />

Die Pflicht zur Angabe der Revisionsnummer<br />

stellt übrigens keine<br />

Schikane dar: Möchten zwei<br />

Benutzer Daten verändern, sperren<br />

andere Datenbanken den Zugriff<br />

zunächst für den zweiten Benutzer.<br />

Erst wenn der erste Benutzer<br />

alle Operationen ausgeführt<br />

hat, ist der zweite Benutzer<br />

an der Reihe. Dieses Blockieren<br />

C Futon ermöglicht<br />

das komfortable Anlegen<br />

und Bearbeiten eines<br />

Dokumentes – hier<br />

der Adresse von Max<br />

Mustermann.<br />

Listing 3<br />

$ curl ‐X PUT http://127.0.0.1:5984/adressbuch/6<br />

825dc0758d90d1ec96b57dbdc000c38 ‐d '{"name": "Max<br />

Mustermann","strasse": "Musweg 4","ort": "Beidorf","plz":<br />

74214,"telefonnummern": [ "0123/4546780", "9876‐543201"<br />

]}'<br />

Listing 4<br />

$ curl ‐X PUT http://127.0.0.1:5984/adressbuch<br />

/6825dc0758d90d1ec96b57dbdc000c38 ‐d '{"_rev":<br />

"1‐b2148264bd1a386e43da2ebfe6794d41", "name": "Max<br />

Mustermann","strasse": "Musweg 4","ort": "Beidorf","plz":<br />

74214,"telefonnummern": [ "0123/4546780", "9876‐543201"<br />

],"alter": 24}'<br />

01 function(doc) {<br />

02 if (doc.name == 'Schmidt') emit(doc.name, 1)<br />

03 }<br />

04 <br />

05 function(keys, values, rereduce) {<br />

06 return sum(values)<br />

07 }<br />

Listing 5<br />

www.linux-user.de<br />

08 | 12 31


schwerpunkt<br />

CouchDB<br />

D Hier liegen zwei<br />

Adressen mit dem Namen<br />

Schmidt in der Datenbank.<br />

Wie rows andeutet,<br />

darf eine Anfrage<br />

mehrere Ergebnisse<br />

liefern.<br />

Listing 7<br />

01 {<br />

führt unter anderem zu einer<br />

schlechteren Performance.<br />

CouchDB setzt deshalb auf das<br />

Multiversion-Concurrency-Control-Verfahren<br />

(MVCC). Dabei<br />

dürfen alle Benutzer immer alle<br />

Daten aus der Datenbank lesen.<br />

CouchDB liefert dann jeweils die<br />

gerade aktuelle Version des Dokumentes<br />

zurück. Aktualisiert nun<br />

ein Benutzer ein Dokument,<br />

prüft CouchDB, ob eventuell<br />

schon ein anderer schneller war.<br />

Dazu vergleicht CouchDB die mitgegebene<br />

Versionsnummer mit<br />

Listing 6<br />

02 "_id": "_design/adressbuch",<br />

03 "views": {<br />

04 ...},<br />

05 "shows": {<br />

06 "htmladr": "function(doc, req) {<br />

07 if(doc) {<br />

{<br />

"_id": "_design/adressbuch",<br />

"views": {<br />

"AnzahlSchmidt": {<br />

"map": "function(doc) { \<br />

if (doc.name ==<br />

'Schmidt') emit(doc.name, 1) \<br />

}",<br />

"reduce": "function(keys,<br />

values, rereduce) { \<br />

return sum(values) \<br />

}"<br />

}<br />

}<br />

}<br />

08 return 'Ein<br />

DokumentName: '+doc.name+' Straße: '+doc.strasse+' Ort: '+doc.plz+'<br />

'+doc.ort+'';<br />

09 } else {<br />

10 return 'Es gibt kein Dokument mit der ID<br />

'+req.id+'';<br />

11 }<br />

12 }"<br />

13 }<br />

14 }<br />

der aktuellen in der Datenbank.<br />

Weichen die beiden Zahlen ab,<br />

meldet CouchDB einen Konflikt,<br />

den Sie auflösen müssen.<br />

Abbilden und Reduzieren<br />

Komplexe Abfragen erfolgen in<br />

CouchDB auf einem etwas ungewöhnlichen<br />

Weg. Jede Abfrage<br />

besteht aus zwei Phasen: Die erste<br />

wählt zunächst einen Teil der<br />

Dokumente aus, den die zweite<br />

Phase dann weiterverarbeitet.<br />

Sucht zum Beispiel die erste Phase<br />

alle Adressen mit dem Namensteil<br />

Schmidt heraus, wäre es<br />

möglich, die Anzahl dieser Adressen<br />

zu zählen. Die erste Phase<br />

heißt „Map“, die zweite „Reduce“.<br />

In der ersten Phase durchläuft<br />

CouchDB alle Dokumente in einer<br />

Datenbank. Dabei übergibt die<br />

Software jedes einzelne Dokument<br />

einer Javascript-Funktion.<br />

Die wiederum entscheidet, ob das<br />

Dokument für das weitere Verarbeiten<br />

relevant ist. Listing 5 zeigt<br />

in den ersten drei Zeilen eine einfache<br />

Map-Funktion.<br />

Diese prüft, ob das von Couch­<br />

DB übergebene Dokument einen<br />

Key name mit dem Wert Schmidt<br />

enthält. Falls ja, gibt sie nicht<br />

etwa die komplette Adresse zurück,<br />

sondern via emit() lediglich<br />

einen Schlüssel namens Schmidt<br />

mit dem Wert 1. Als Ergebnis der<br />

ersten Phase erhalten Sie dann<br />

eine Liste mit Zwischenergebnissen<br />

der Form:<br />

"Schmidt": 1<br />

"Schmidt": 1<br />

"Schmidt": 1<br />

...<br />

Gefeuerte Replikanten<br />

Diese Liste stopft CouchDB jetzt<br />

in eine zweite Funktion (Listing<br />

5, Zeile 5 bis 7). Diese zählt<br />

jetzt einfach alle gefundenen Zwischenergebnisse.<br />

Das Ergebnis ist die Anzahl aller<br />

Schmidts im Adressbuch. Für<br />

Umsteiger von SQL mag das<br />

ziemlich kompliziert wirken, zumal<br />

zwingend Javascript-Kenntnisse<br />

erforderlich sind. Umgekehrt<br />

ermöglicht CouchDB gerade<br />

dank dieses Umstandes besonders<br />

komplexe Abfragen und Berechnungen.<br />

Die Reduce-Funktion dürfen Sie<br />

in CouchDB weglassen – etwa,<br />

wenn Sie einfach nur an den Adressen<br />

aller Schmidts interessiert<br />

sind. Das Ausführen im Hintergrund<br />

übernimmt die bekannte<br />

Software Spidermonkey, die auch<br />

in Firefox den Javascript-Code interpretiert.<br />

Über sogenannte<br />

View-Server binden Sie aber bei<br />

Bedarf unkompliziert weitere<br />

Sprachen an – derzeit unter anderem<br />

PHP, Perl und Python.<br />

Ansichtssache<br />

Mit den zwei Funktionen ist es<br />

aber noch nicht getan: Beide müssen<br />

Sie in einer sogenannten<br />

View zusammenfassen und diese<br />

wiederum in einem speziellen Design-Dokument<br />

ablegen. Wie das<br />

mit den beiden Funktionen aussieht,<br />

zeigt Listing 6.<br />

Beide Funktionen lagern unter<br />

den Keys map und reduce – das gibt<br />

CouchDB so vor. Dieses Duo wiederum<br />

fasst der Key AnzahlSchmidt<br />

zusammen. Diesen Namen dürfen<br />

Sie frei wählen. Die Ansicht<br />

AnzahlSchmidt steckt wiederum im<br />

Bei Bedarf transferieren Sie eine Datenbank<br />

an andere laufende<br />

CouchDB-Instanz („replizieren“). Die<br />

beteiligten Kollegen halten den Datenbestand<br />

dabei immer automatisch auf<br />

dem aktuellen Stand. CouchDB eignet<br />

sich somit hervorragend für verteilte<br />

(<strong>Web</strong>-)Anwendungen. Aus diesem<br />

Grund nutzte Canonical die Datenbank<br />

eine Zeit lang für seinen Dienst<br />

Ubuntu One. Dort sorgte CouchDB unter<br />

anderem für den Abgleich von Kontakten<br />

und Lesezeichen. Nach einer<br />

Weile stellte sich jedoch heraus, dass<br />

CouchDB den mehreren Millionen Benutzern<br />

nicht gewachsen war, sodass<br />

sich Canonical Ende 2011 dazu entschloss,<br />

die Software gegen eine Eigenentwicklung<br />

auszutauschen. Dabei<br />

heben die CouchDB-Entwickler gerade<br />

die gute Skalierbarkeit ihrer Datenbank<br />

gern hervor.<br />

32 08 | 12<br />

www.linux-user.de


CouchDB<br />

schwerpunkt<br />

Key views (auch das gibt die Software<br />

so vor). Das Dokument erhält<br />

schließlich noch einen Namen,<br />

der mit _design/ beginnt.<br />

Dies kennzeichnet das Dokument<br />

als Design-Dokument.<br />

Listing 6 legen Sie als neues Dokument<br />

in der Datenbank ab, im<br />

Beispiel also im adressbuch. Anschließend<br />

starten Sie die Abfrage<br />

über den Befehl:<br />

E Die Show-Funktion<br />

presst hier drei Informationen<br />

aus dem Dokument<br />

in eine einfache<br />

HTML-Seite.<br />

F Die HTML-Seite präsentiert<br />

das Ergebnis<br />

der Abfrage.<br />

$ curl http://127.0.0.1:5984/adrU<br />

essbuch/_design/adressbuch/_viewU<br />

/AnzahlSchmidt<br />

Sie brauchen also nur eine simple<br />

URL aufzurufen. Wie in Abbildung<br />

D erscheint das Ergebnis<br />

standardmäßig im JSON-Format.<br />

Schminktisch<br />

Sowohl die gespeicherten Dokumente<br />

als auch die Ergebnisse<br />

von Abfragen lassen sich umformatieren<br />

und beispielsweise als<br />

HTML-Seite ausgeben. Dies übernimmt<br />

wieder eine Javascript-<br />

Funktion. Gibt diese nur den Inhalt<br />

eines einzigen Dokumentes<br />

aus, handelt es sich um eine sogenannte<br />

Show-Funktion.<br />

Einen einfachen Vertreter dieser<br />

Gattung zeigt Listing 7 ab der<br />

Zeile 5. Sie presst lediglich die<br />

Werte für Namen, Straße und Ort<br />

des übergebenen Dokumentes in<br />

eine einfache HTML-Seite und<br />

liefert diese zurück. Über die Fallunterscheidung<br />

prüfen Sie, ob es<br />

ein entsprechendes Dokument<br />

gibt (beziehungsweise die Funktion<br />

eines erhalten hat).<br />

[1] CouchDB: http:// couchdb. apache. org<br />

[2] Erlang: http:// de. wikipedia. org/ wiki/​<br />

Erlang_%28Programmiersprache%29<br />

[3] JSON: http:// de. wikipedia. org/ wiki/​<br />

JavaScript_Object_Notation<br />

info<br />

[4] REST-Schnittstelle: http:// de. wikipedia. org/​<br />

wiki/ Representational_State_Transfer<br />

[5] cURL-Workshop: Falko Benthin, „Flexibles<br />

Werkzeug“, LU 06/​2012, S. 78,<br />

http:// www. linux‐community. de/ 25773<br />

[6] UUID: http:// de. wikipedia. org/ wiki/ UUID<br />

[7] Couchbase: http:// www. couchbase. com<br />

Wie Listing 7 zeigt, müssen Sie<br />

die Funktion unter einem frei<br />

wählbaren Schlüsselwort (im Beispiel<br />

htmladr) im Design-Dokument<br />

unterhalb des Keys shows<br />

speichern. Hängen Sie im Browser<br />

an die URL die ID eines Dokumentes<br />

an, erhalten Sie als Ergebnis<br />

die <strong>Web</strong>seite (Abbildung E).<br />

Anfragen wie in Abbildung D<br />

produzieren zwar eine Liste von<br />

Ergebnissen, intern handelt es<br />

sich dabei aber nur um einen einzelnen<br />

Wert. Über die List-Funktion<br />

bereitet CouchDB diesen auf.<br />

Die einfache List-Funktion aus<br />

Listing 8 gibt die Anzahl der<br />

Schmidts in der Datenbank als<br />

HTML-Dokument aus, das Ergebnis<br />

erhalten Sie über die entsprechende<br />

URL (Abbildung F).<br />

Wenn Sie die <strong>Web</strong>seiten jetzt<br />

noch ein wenig mit CSS und Javascript<br />

garnieren, haben Sie eine<br />

vollständige <strong>Web</strong>-Anwendung –<br />

eine CouchApp. Sie brauchen<br />

dazu noch nicht einmal einen<br />

<strong>Web</strong>server. Das eingebaute Futon<br />

arbeitet übrigens nach dem exakt<br />

gleichen Prinzip.<br />

Fazit<br />

Neben den gezeigten Funktionen<br />

bietet CouchDB noch viele weitere,<br />

darunter natürlich das obligatorische<br />

Verwalten der Rechte.<br />

Die Datenbank erfordert jedoch<br />

ein radikales Umdenken. Insbesondere<br />

Umsteiger von SQL dürften<br />

sich nur langsam an das Map-<br />

Reduce-Konzept gewöhnen.<br />

Da es keine direkten Verknüpfungen<br />

mehr zwischen den Datensätzen<br />

gibt, ist es zudem in<br />

dokumentenorientierten Datenbanken<br />

durchaus üblich, Dokumente<br />

mehrfach zu speichern.<br />

Bei einer Bestellung könnte man<br />

beispielsweise die einzelnen Produkte<br />

noch einmal vollständig direkt<br />

im Datensatz zur Bestellung<br />

ablegen. Dadurch liegt jedes Produkt<br />

mehrfach in der Datenbank.<br />

Zusammen mit den älteren Versionen<br />

der Dokumente bläht sich<br />

der Bestand dann stetig auf.<br />

CouchDB eignet sich folglich<br />

nicht für alle Einsatzgebiete gleichermaßen.<br />

Ein Haupteinsatzfeld<br />

stellen zweifelsohne kompakte<br />

<strong>Web</strong>-Anwendungen dar, bei denen<br />

die Datenbank sogar einen<br />

kompletten <strong>Web</strong>server einspart.<br />

Damien Katz stieg übrigens Anfang<br />

2012 aus dem CouchDB­<br />

Projekt aus und gründete Couchbase<br />

[7]. Das Unternehmen entwickelt<br />

eine Datenbank, die alle<br />

Vorteile der Konkurrenten Couch­<br />

DB, Membase und Memcached<br />

vereinen möchte. (agr) n<br />

Listing 8<br />

{<br />

"_id": "_design/adressbuch",<br />

"views": {<br />

...<br />

},<br />

"lists": {<br />

"htmlschmidt": "function(head, req) {<br />

start({'headers': {'content‐type': 'text/html'}});<br />

send('Anzahl<br />

Schmidts');<br />

var row = getRow();<br />

send('Im Adressbuch sind: '+row.value+'<br />

Personen, die Schmidt heißen.');<br />

}"<br />

}<br />

}<br />

www.linux-user.de<br />

08 | 12 33


schwerpunkt<br />

Bluegriffon<br />

<strong>Web</strong>seiten erstellen mit Bluegriffon<br />

Blauer<br />

Greif<br />

README<br />

Bluegriffon 1.5.2,<br />

freie Addons<br />

und Dictionaries<br />

LU/bluegriffon/<br />

Bluegriffon ist ein freier<br />

HTML5-Editor mit CSS-<br />

Unterstützung, der sich<br />

mit (teilweise kostenpflichtigen)<br />

Addons erweitern<br />

lässt. <strong>LinuxUser</strong><br />

stellt diesen unscheinbaren<br />

Vertreter seiner<br />

Zunft vor.<br />

Glossar<br />

WYSIWYG: What you<br />

see is what you get. Ein<br />

Dokument erscheint<br />

während des Bearbeitens<br />

am Bildschirm so,<br />

wie es bei der Ausgabe<br />

später aussieht.<br />

W3C: World Wide <strong>Web</strong><br />

Consortium. Gremium<br />

für die Definition von<br />

<strong>Web</strong>standards wie<br />

HTML, XML, CSS, SVG<br />

und vieler mehr.<br />

Der erweiterbare HTML-Editor Bluegriffon<br />

basiert auf Mozillas bewährter<br />

Gecko-Engine, unterstützt bereits<br />

HTML5 und beherrscht WYSIWYG.<br />

Vincze-Aron Szabo<br />

Die meisten<br />

HTML-Editoren<br />

unter Linux<br />

unterstützen<br />

den Anwender<br />

optimal<br />

beim klassischen<br />

Editieren<br />

mit<br />

HTML, CSS<br />

und anderen<br />

<strong>Web</strong>-Technologien.<br />

Dieses<br />

Feld ist also<br />

hart umkämpft<br />

und<br />

bietet dennoch Platz für einen<br />

weiteren Vertreter seiner Zunft,<br />

der mindestens einen Mehrwert<br />

bietet: WYSIWYG. Sie sehen also<br />

bereits beim Erstellen der <strong>Web</strong>site<br />

das Resultat Ihrer Arbeit,<br />

ohne zusätzlich einen Browser<br />

öffnen zu müssen. Der vom Entwickler<br />

Daniel Glazman seit 2008<br />

betreute Bluegriffon [1] ist ein<br />

Nachfolger des Editors Nvu, der<br />

wiederum auf dem Mozilla Composer<br />

basiert. Der komplett neu<br />

programmierte Editor verwendet<br />

Mozillas HTML-Engine Gecko<br />

und wird seit seiner Erstveröffentlichung<br />

stetig weiterentwickelt.<br />

Bei der Anwendung selbst<br />

handelt es sich um Open-Source.<br />

Sie bietet die wesentlichen<br />

Grundfunktionen, die man zum<br />

Editieren von HTML braucht.<br />

Wichtige Zusatzfunktionen lassen<br />

sich durch allerdings größtenteils<br />

kostenpflichtige Addons ergänzen.<br />

Neben Linux unterstützt<br />

Bluegriffon Windows<br />

und Mac OS X, was ihn für Anwender<br />

interessant macht, die<br />

zwischen den Betriebsystemwelten<br />

hin und her pendeln.<br />

Den HTML- und CSS-Quellcode<br />

erstellen Sie mit Bluegriffon<br />

W3C-konform, wobei die Anwendung<br />

neben XHTML 1.0 und<br />

HTML 4 auch das neue HTML5<br />

und XHTML5 unterstützt. Auf<br />

der Seite der Cascading Stylesheets<br />

beherrscht Bluegriffon all<br />

jene Anteile von CSS3, die sich<br />

bereits in der Gecko-Engine finden.<br />

Daneben können Sie mit<br />

Bluegriffon SVG-Dateien bearbeiten.<br />

Das übernimmt der integrierte<br />

SVG-Editor SVG-Edit. Wie<br />

Sie die Software installieren, zeigt<br />

der Kasten Installation.<br />

Nachdem Sie Bluegriffon<br />

gestartet haben, begrüßt Sie<br />

eine aufgeräumte Oberfläche<br />

ohne viel Schnickschnack. Um<br />

mit der Arbeit zu beginnen, haben<br />

Sie mehrere Möglichkeiten.<br />

Mit [Strg]+[T] legen Sie ein leeres<br />

neues Dokument im selben Programmfenster<br />

an. Möchten Sie<br />

sich von der Anwendung ein paar<br />

Arbeitsschritte abnehmen lassen,<br />

dann klicken Sie in der Menüleiste<br />

auf Datei | Neu Assistent. Im<br />

sich nun öffnenden Assistenten<br />

legen Sie in wenigen Schritten<br />

den HTML-Typ fest, wie zum Beispiel<br />

HTML4 oder HTML5, und<br />

geben allgemeine Meta-Angaben<br />

zum Dokument ein.<br />

Darüber hinaus können Sie über<br />

diesen Assistenten bereits Grundlagen<br />

für das Layout der <strong>Web</strong>seite<br />

© #Natalia Lukiyanova, 123RF<br />

34 08 | 12<br />

www.linux-user.de


Bluegriffon<br />

schwerpunkt<br />

festlegen. So nehmen Sie beispielsweise<br />

Einstellungen für Farben<br />

und den Hintergrund vor<br />

und definieren ein CSS-Seitengrundlayout.<br />

Dazu finden Sie im<br />

letzten Dialog des integrierten<br />

Assistenten alle notwendigen Felder<br />

(Abbildung A).<br />

Nach Anhaken des Kontrollkästchens<br />

Vordefiniertes CSS-Layout<br />

anwenden legen Sie über Breite<br />

und Seitenleiste fest, wie groß der<br />

Inhaltsbereich beziehungsweise<br />

die Seitenleiste ausfallen sollen.<br />

Über neue Zeile können Sie den<br />

Inhaltsbereich weiter aufteilen,<br />

indem Sie zum Beispiel dafür ein<br />

Zwei-Spalten-Layout vorsehen.<br />

Ein mögliches Ergebnis zeigt Abbildung<br />

B. Mithilfe von Inhalt mit<br />

’lorem ipsum’ Platzhalter füllen erkennen<br />

Sie gleich nach Abschließen<br />

des Assistenten, was Bluegriffon<br />

aus Ihren Angaben zurechtgezaubert<br />

hat.<br />

Über die Symbolleiste und die<br />

Menüs erreichen Sie alle Funktionen,<br />

die Sie zum Erzeugen und<br />

Formatieren von Inhalten benötigen.<br />

Für das Einfügen von Tabellen<br />

und Links bietet die Software<br />

hilfreiche Unterstützung. Bei Tabellen<br />

geben Sie wie in einer Textverarbeitung<br />

mithilfe der Maus<br />

an, wie viele Spalten und Zeilen<br />

Sie gerne hätten. Für das Einfügen<br />

von Verknüpfungen steht ein<br />

Dialog zur Verfügung, in dem Sie<br />

alle erforderlichen Angaben wie<br />

Linktext, Ziel oder Zielfenster<br />

eingeben.<br />

Die Arbeit im Wechsel zwischen<br />

der WYSIWYG- und der Quelltext-Ansicht<br />

geht flott von der<br />

Hand. Über die entsprechend bezeichneten<br />

Buttons unterhalb des<br />

Arbeitsbereichs springen Sie zwischen<br />

diesen Ansichten hin und<br />

her. Sofern Sie mehrere Dokumente<br />

gleichzeitig geöffnet haben,<br />

können Sie diese über entsprechende<br />

Reiter unterhalb der<br />

Symbolleiste bequem in den Vordergrund<br />

holen und bearbeiten<br />

(Abbildung C, folgende Seite).<br />

Die WYSIWYG-Ansicht bietet<br />

den Vorteil, dass Sie gleich sehen,<br />

wie das Arbeitsergebnis aussieht,<br />

und gleichzeitig Inhalte editieren<br />

können. Dennoch sollten Sie zur<br />

Endkontrolle die Seite weiterhin<br />

in den Browsern Ihrer Wahl daraufhin<br />

überprüfen, ob die Darstellung<br />

tatsächlich so ausfällt<br />

wie gedacht.<br />

Eine Brotkrumen-Darstellung<br />

unterhalb des Arbeitsbereichs informiert<br />

Sie laufend darüber, an<br />

welchem Knoten im HTML-Code<br />

Sie gerade arbeiten. Sofern Sie an<br />

der Grundstruktur der geöffneten<br />

<strong>Web</strong>site schrauben möchten,<br />

empfiehlt es sich aber, in die<br />

Quelltext-Ansicht zu wechseln:<br />

Hier sehen Sie genau, was Sie tun,<br />

während es in der WYSIWYG-Ansicht<br />

schnell passiert, dass Sie etwas<br />

kaputt machen, was sich<br />

nicht so ohne Weiteres wieder reparieren<br />

lässt. Beim Wechsel in<br />

die jeweils andere Ansicht merkt<br />

sich Bluegriffon die Cursor-Position,<br />

sodass Sie bequem weiterarbeiten<br />

können, ohne die richtige<br />

Stelle suchen zu müssen.<br />

HTML5 und Tabellen<br />

Für die Arbeit mit HTML5 ist<br />

Bluegriffon schon gut vorbereitet.<br />

Im Menü Einfügen | HTML 5<br />

Element finden Sie passende Elemente,<br />

die Sie über den<br />

WYSIWYG-Editor einbinden.<br />

Zwar wurde HTML5 noch nicht<br />

abschließend vom W3C verabschiedet,<br />

doch die bereits defi-<br />

A Der Assistent für<br />

neue HTML-Dokumente<br />

ermöglicht mit<br />

wenigen Klicks das Erstellen<br />

von dreispaltigen<br />

Layouts.<br />

Installation<br />

Die notwendigen Pakete zu Bluegriffon erhalten Sie auf der Projekt-<strong>Web</strong>site<br />

[4]. Dort finden Sie sowohl Pakete für Ubuntu als<br />

auch für Fedora. Lassen Sie sich von den angegebenen gültigen<br />

Distributionsversionen nicht davon abhalten, diese Pakete auch<br />

in neueren Versionen des jeweiligen Betriebssystems einzusetzen.<br />

Außerdem steht dem Einsatz unter verwandten Systemen<br />

wie zum Beispiel Linux Mint im Normalfall nichts im Weg.<br />

Für jede der beiden Distributionen stehen zwei Versionen zur Verfügung:<br />

ein Installer und ein Tar-Archiv. Laden Sie der Einfachheit<br />

halber den Installer herunter, und machen Sie die Datei ausführbar<br />

(Listing 1, Zeile 1). Nun können Sie (mit Root-Rechten) den<br />

Installer ausführen (Zeile 2). Er führt Sie durch die Installationsprozedur;<br />

in den angezeigten Dialogen müssen Sie in der Regel<br />

keine Parameter mehr ändern.<br />

Listing 1<br />

B Dank des eingebauten Assistenten haben Sie ein solches HTML-CSS-<br />

Grundgerüst im Handumdrehen schnell erstellt.<br />

01 $ chmod +x BlueGriffon‐1.5.2‐Ubuntu11.10‐i686‐Install<br />

02 # ./BlueGriffon‐1.5.2‐Ubuntu11.10‐i686‐Install<br />

www.linux-user.de<br />

08 | 12 35


schwerpunkt<br />

Bluegriffon<br />

C Sie haben die Möglichkeit,<br />

im Quelltext<br />

und in der WYSIWYG-<br />

Ansicht zu editieren.<br />

D Sie können bequem<br />

IDs und Klassen definieren<br />

und diese später<br />

bei Bedarf weiteren<br />

Elementen zuweisen.<br />

nierten Elemente sind hier verfügbar<br />

– darunter auch solche<br />

zum differenzierteren Strukturieren<br />

von <strong>Web</strong>seiten, wie <br />

oder . Tabellen erstellen<br />

Sie mit Bluegriffon schnell. Positionieren<br />

Sie den Cursor an die<br />

Stelle, wo Sie eine einfügen wollen,<br />

und klicken Sie in der Menüleiste<br />

auf Tabelle | Extras. Sobald<br />

Sie die Anzahl der Zeilen und<br />

Spalten festgelegt haben, fügt der<br />

Editor das Element ein, und Sie<br />

können diese bearbeiten.<br />

Über Tabelle | Einfügen | Tabellenlegende<br />

geben Sie eine Tabellenüberschrift<br />

an, die dem<br />

HTML-Element entspricht.<br />

Die wesentlichen<br />

Tabellen eigenschaften bearbeiten<br />

Sie unter Tabelle | Tabelleneigenschaften.<br />

Der sich über diesen Menü-Eintrag<br />

öffnende Dialog ermöglicht<br />

das Anpassen von Zeilen-<br />

und Spaltenanzahl, Rahmen,<br />

Abständen, Breiten und Zelleneigenschaften.<br />

Natürlich können<br />

Sie CSS-Code direkt in den Editor<br />

eingeben – doch<br />

das ist natürlich<br />

nicht der Sinn<br />

eines solchen<br />

Editors. Für das<br />

Bearbeiten von<br />

CSS definieren<br />

Sie mithilfe des<br />

Dialogs CSS-Eigenschaften<br />

Stile,<br />

IDs und Klassen<br />

(Abbildung D).<br />

Dazu positionieren<br />

Sie den<br />

Cursor an der<br />

gewünschten<br />

Position auf der<br />

<strong>Web</strong>site und öffnen<br />

dann über<br />

den Button CSS Stil setzen die CSS<br />

Eigenschaften. Wählen Sie über<br />

die Auswahlliste Stile anwenden<br />

auf aus, ob Sie alle Elemente desselben<br />

Typs beziehungsweise alle<br />

Elemente einer bestimmten Klasse<br />

mit den CSS-Eigenschaften<br />

versehen wollen oder zusätzlich<br />

noch eine ID für das ausgewählte<br />

Element vergeben wollen. Nun<br />

tragen Sie in den darunter ausklappbaren<br />

Feldern die CSS-Eigenschaften<br />

ein.<br />

Für fortgeschrittene Anwender,<br />

denen diese schon recht ordentlichen<br />

CSS-Funktionen nicht ausreichen,<br />

bietet das Bluegriffon-<br />

Projekt die Erweiterung CSS Pro<br />

Editor an, die derzeit 9,99 Euro<br />

kostet [3]. Sie erleichtert die Arbeit<br />

mit CSS und ermöglicht eine<br />

bessere Kontrolle über bestimmte<br />

CSS3-Features wie zum Beispiel<br />

Schatten.<br />

Besondere Funktionen<br />

Als standardkonformer HTML-<br />

Editor unterstützt Bluegriffon<br />

auch den XML-Standard für SVG-<br />

Vektorgrafiken. Allerdings verfügt<br />

er dazu nicht über eigene<br />

Funktionen, sondern bindet die<br />

Anwendung SVG-Edit ein (Abbildung<br />

E). Sie starten SVG-Edit<br />

über das entsprechende Icon in<br />

der Symbolleiste, woraufhin die<br />

Anwendung ein Fenster öffnet.<br />

Über das Symbol in der Ecke oben<br />

links ändern Sie unter Document<br />

Properties die Anwendungssprache<br />

auf Deutsch. Unangenehmerweise<br />

geht diese Einstellung beim<br />

nächsten Start von SVG-Edit wieder<br />

verloren.<br />

Nun dürfen Sie zeichnen, was<br />

das Zeug hält. Auf der linken<br />

Fensterseite finden Sie verschiedene<br />

Werkzeuge für Linien, Formen<br />

und Text. SVG-Profis editieren<br />

nach einem Klick auf den Button<br />

mit dem Aufdruck SVG direkt<br />

im SVG-Quellcode. Die Größe des<br />

Gesamtbildes passen Sie über die<br />

bereits erwähnten Document Properties<br />

unter Dimension der Zeichenfläche<br />

an. Sofern Sie nicht<br />

den ganzen Arbeitsbereich aus-<br />

36 08 | 12<br />

www.linux-user.de


Bluegriffon<br />

schwerpunkt<br />

nutzen, sollten Sie die Zeichenfläche<br />

entsprechend<br />

verkleinern, weil SVG-Edit<br />

anderenfalls auch den gesamten<br />

Weißraum mit in<br />

die <strong>Web</strong>site übernimmt.<br />

Sobald Sie die Zeichnung<br />

fertiggestellt haben, übernehmen<br />

Sie diese über den<br />

Menüpunkt Bild speichern<br />

direkt an die momentane<br />

Cursorposition auf der<br />

<strong>Web</strong>site. Bluegriffon baut<br />

dann automatisch den<br />

notwendigen Quellcode<br />

ein – auch bei HTML4, wo<br />

sich SVG nur über Javascript<br />

integrieren lässt,<br />

während HTML5 das direkte<br />

Einbinden von SVG-<br />

Code erlaubt. Aus der<br />

WYSIWYG-Ansicht heraus<br />

können Sie die erstellte Grafik<br />

per Doppelklick erneut in SVG<br />

Edit bearbeiten.<br />

Eine besondere Hilfestellung<br />

beim Editieren von HTML bietet<br />

der DOM-Explorer, mit dem Sie<br />

in der Elementstruktur der<br />

HTML-Datei navigieren und<br />

ebenfalls kleine Veränderungen<br />

vornehmen. Bei umfangreichen<br />

HTML-Dateien können Sie auf<br />

diese Weise im Dokument arbeiten,<br />

ohne den ganzen Code betrachten<br />

zu müssen. Über die<br />

rechte Maustaste entfernen oder<br />

ändern Sie Elemente. Sie rufen<br />

den DOM-Explorer über Konsolen<br />

| DOM Explorer auf.<br />

Erweiterungen<br />

Schon in der Grundausstattung<br />

lässt sich Bluegriffon sehr gut<br />

nutzen. Darüber hinaus erweitern<br />

Sie den HTML-Editor mit<br />

größtenteils kostenpflichtigen<br />

Addons wie den bereits erwähnten<br />

CSS Pro Editor. Eine eigene<br />

<strong>Web</strong>site [3] bietet eine Übersicht<br />

aller erhältlichen Addons.<br />

Sie können diese einzeln erwerben<br />

oder nach dem Silver Offer [4]<br />

Ausschau halten: Dieses Addon-<br />

Paket kostet 35 Euro und enthält<br />

acht nützliche Erweiterungen. In<br />

diesem Paket fehlen aber wichtige<br />

Zusatzfunktionen wie zum Beispiel<br />

der Project Manager, der Ihnen<br />

hilft, die Übersicht über die<br />

Projekte zu wahren und deren lokale<br />

Dateien mit dem <strong>Web</strong>-Server<br />

per FTP synchron hält. Ein weiteres<br />

interessantes Feature bietet<br />

der Mobile Viewer, der Sie bei der<br />

Entwicklung von <strong>Web</strong>sites für<br />

mobile Endgeräte unterstützt.<br />

Haben Sie sich für den Kauf von<br />

Addons entschieden, legen Sie<br />

wie von anderen Online-Shops<br />

gewohnt die Ware in einen Einkaufswagen.<br />

Zum Bezahlen benötigen<br />

Sie einen Paypal-Account,<br />

andere Zahlungsmöglichkeiten<br />

bietet der Shop nicht an.<br />

Sieht man genau hin, finden<br />

sich aber auch kostenlose Ergänzungen<br />

für Bluegriffon im Angebot.<br />

Mit FireFTP erhalten Sie einen<br />

FTP-Client, der auf einfache<br />

Weise den Zugriff per FTP auf Ihren<br />

<strong>Web</strong>server erlaubt. Außerdem<br />

finden Sie unter Dictionaries verschiedene<br />

Wörterbücher für die<br />

Rechtschreibkontrolle.<br />

Fazit<br />

Insgesamt präsentiert sich Bluegriffon<br />

als rundum zufriedenstellender<br />

HTML-Editor mit zahlreichen<br />

nützlichen CSS-Funktionen,<br />

der es ermöglicht, W3C-konformen<br />

HTML-Quellcode für <strong>Web</strong>seiten<br />

zu erstellen. Wer gewohnt<br />

ist, klassisch im Quellcode zu editieren,<br />

der muss sich jedoch ein<br />

wenig umgewöhnen.<br />

Insbesondere Einsteiger oder<br />

Anwender, die nur gelegentlich<br />

HTML-Seiten erstellen, empfinden<br />

die WYSIWYG-Arbeitsweise<br />

jedoch als Arbeitserleichterung.<br />

Bereits die Kernanwendung eignet<br />

sich bestens für das gelegentliche<br />

Arbeiten mit HTML.<br />

Gegen die Tatsache, dass sich<br />

das Projekt aus den Addon-Verkäufen<br />

finanzieren will, spricht<br />

grundsätzlich nichts. Für ernsthafte<br />

Anwender läppern sich die<br />

die Kosten für Addons aber recht<br />

schnell zu erklecklichen Geldbeträgen<br />

zusammen.<br />

Wer klug ist, spart mit dem Angebot<br />

Silver Offer: Es enthält zusätzlich<br />

den CSS Pro Editor, der<br />

die ernsthafte Arbeit mit komplexem<br />

CSS-Code erst so richtig<br />

komfortabel macht. (jlu) n<br />

info<br />

[1] Bluegriffon: http:// www. bluegriffon. org<br />

[2] Addons: http:// www. bluegriffon. com<br />

[3] Silver Offer: http:// www. bluegriffon. com/​<br />

index. php? pages/ SILVER‐OFFER<br />

[4] Download:<br />

http:// bluegriffon. org/ pages/ Download<br />

E Mit dem integrierten<br />

SVG-Editor betten Sie<br />

auf Knopfdruck eigene<br />

Vektorzeichnungen in<br />

Bluegriffon ein.<br />

www.linux-user.de<br />

08 | 12 37


schwerpunkt<br />

Nginx<br />

Die russische Alternative zum Apache-<strong>Web</strong>server<br />

Auf der Überholspur<br />

© Misha, Fotolia<br />

Schlank, schnell, vielseitig und einfach zu konfigurieren: Nginx bringt alles mit, was man sich von einem modernen<br />

<strong>Web</strong>server wünscht. Kein Wunder, dass das pfiffige Multitalent immer weiter zu Apache aufholt. Falko Benthin<br />

README<br />

Mit Nginx macht dem<br />

Apache ein leistungsfähiger<br />

<strong>Web</strong>server Konkurrenz,<br />

der sich zu<br />

Recht immer größerer<br />

Beliebtheit erfreut. Als<br />

eventbasierter Server<br />

kommt er mit wenigen<br />

Prozessen aus und verbraucht<br />

kaum System-<br />

Ressourcen, was ihn<br />

auch zu einem Kandidaten<br />

für betagte oder<br />

weniger gut ausgebaute<br />

Rechner macht.<br />

Zwar dominiert Apache mit<br />

Marktanteilen von über 60 Prozent<br />

noch immer den <strong>Web</strong>server-<br />

Markt, doch seit knapp vier Jahren<br />

schickt sich mit Nginx [1]<br />

eine feine, schnelle Alternative<br />

an, dem Marktführer Anteile abzuluchsen.<br />

Im Juni 2012 wurden<br />

laut der Netcraft <strong>Web</strong> Server Survey<br />

[2] weltweit bereits über<br />

zehn Prozent der <strong>Web</strong>seiten von<br />

Nginx ausgeliefert – ein grandioser<br />

Aufstieg, wenn man bedenkt,<br />

dass der aus Russland stammende<br />

<strong>Web</strong>server bis vor Kurzem<br />

noch ziemlich unbekannt war.<br />

Nginx wurde bereits 2002 von<br />

dem Russen Igor Sysoev entwickelt.<br />

Ursprünglich war er dafür<br />

gedacht, die <strong>Web</strong>seiten von Rambler.ru<br />

auszuliefern. Das tat der<br />

unter einer BSD-Lizenz stehende<br />

Server dann auch mit beeindruckender<br />

Leistung. Neben der Performance<br />

punktet Nginx auch, indem<br />

er sich modular einsetzen<br />

sowie leicht konfigurieren lässt<br />

und durch geringen Ressourcenverbrauch<br />

glänzt. Der <strong>Web</strong>server<br />

kann Anfragen nicht nur direkt<br />

beantworten, sondern auch als<br />

Reverse-Proxy für seine Kollegen<br />

dienen, etwa für Apache.<br />

Schnell installiert<br />

Nginx liegt in den Repositories<br />

aller gängigen Distributionen. Die<br />

Installation solcher fertig geschnürter<br />

Pakete ist zwar zweifelsohne<br />

bequem, bietet aber<br />

nicht immer das Bestmögliche:<br />

Anders als bei Apache gilt es die<br />

zu verwendenden Module und<br />

Funktionen bei Nginx schon beim<br />

Übersetzen des Quellcodes anzugeben,<br />

denn sie werden direkt<br />

beim Kompilieren integriert. Verwenden<br />

Sie Binärpakete einer<br />

Distribution, entlocken Sie Nginx<br />

mit nginx ‐V die beim Übersetzen<br />

berücksichtigten Module.<br />

Spätestens, wenn ein Modul<br />

fehlt, das Paket zu viele unnötige<br />

Komponenten als Ballast mitschleppt<br />

oder Nginx topaktuell<br />

sein soll, lohnt es sich, den <strong>Web</strong>server<br />

aus den Quellen zu übersetzen.<br />

Nachdem Sie die Quellen<br />

[3] der derzeit neuesten Version<br />

1.2.1 heruntergeladen haben,<br />

entpacken Sie diese mit tar ‐xzf<br />

nginx‐1.2.1.tar.gz und wechseln<br />

in das neu entstandene Verzeichnis.<br />

Die Installation erfolgt mittels<br />

./configure, make und (als root)<br />

make install.<br />

Mit ./configure ‐‐help erhalten<br />

Sie eine Übersicht aller möglichen<br />

Optionen für Configure. So prüfen<br />

Sie beispielsweise, ob die Konfiguration<br />

alle gewünschten Module<br />

integriert respektive die<br />

38 08 | 12<br />

www.linux-user.de


Nginx<br />

schwerpunkt<br />

unerwünschten außen vor lässt:<br />

Standardmäßig sind beispielsweise<br />

das SSL-Modul oder IPv6-Unterstützung<br />

deaktiviert. Außerdem<br />

können Sie mithilfe bestimmter<br />

Optionen von der Standardkonfiguration<br />

abweichende<br />

Pfade setzen. Neben den Core-<br />

Modulen existieren noch viele<br />

Module von Drittanbietern [4],<br />

die die Software zwar nicht offiziell<br />

unterstützt, die aber die Funktionalität<br />

des schnellen <strong>Web</strong>servers<br />

stark ausbauen.<br />

Standardmäßig landet Nginx im<br />

Verzeichnis /usr/local/nginx/.<br />

Dort lagern dann sowohl die ausführbaren<br />

Binaries als auch die<br />

Konfigurations- und Protokolldateien.<br />

In vielen Fällen residiert jedoch<br />

/usr/local/ auf der Root-Partition.<br />

Wenn diese aufgrund vieler<br />

temporärer Dateien zuläuft,<br />

und sich das System instabil verhält,<br />

liegt es nicht unbedingt auf<br />

der Hand, auf /usr/local/nginx/ als<br />

mögliche Quelle des aktuellen<br />

Übels zu kommen.<br />

Daher ist Konfiguration in der<br />

Regel in /etc/ beziehungsweise<br />

Protokolle in /var/log/ besser aufgehoben.<br />

Das regeln Sie entweder<br />

über die Schalter ‐‐conf‐path=Pfad,<br />

‐‐error‐log‐path=Pfad sowie über<br />

‐‐http‐log‐path=Pfad oder später<br />

über symbolische Links. Das Gleiche<br />

gilt für temporäre Dateien<br />

(‐‐http‐client‐body‐temp‐path und<br />

‐‐http‐fastcgi‐temp‐path), die Sie<br />

auf /tmp/ zeigen lassen sollten.<br />

Um zu prüfen, ob die Installation<br />

geklappt hat, hilft ein /usr/<br />

local/nginx/sbin/nginx ‐v ‐t.<br />

Spuckt Nginx daraufhin die Versionsnummer<br />

und einen positiven<br />

Bescheid über einen erfolgreichen<br />

Selbsttest aus, steht dem Start<br />

des Servers nichts mehr im Wege.<br />

Indem Sie Nginx aus den Quellen<br />

installieren, erhalten Sie zwar<br />

einen taufrischen <strong>Web</strong>browser,<br />

aber es fehlt das Startskript, mit<br />

dem sich der Server bequem beim<br />

Rechnerstart in Stellung bringen,<br />

neu starten, neu laden oder beenden<br />

lässt. Auf der Heft-DVD sowie<br />

als Download finden Sie ein<br />

entsprechendes Skript für Debian<br />

und Ubuntu [5], das Sie unter<br />

/ etc/init.d als nginx ablegen.<br />

A Die schematische Struktur der<br />

HTTP-Konfiguration von Nginx.<br />

Rasant einrichten<br />

Nginx ist fast ebenso schnell eingerichtet,<br />

wie Sie es installiert haben.<br />

In der Konfigurationsdatei<br />

(beziehungsweise den Dateien,<br />

wenn die Konfiguration einzelner<br />

Server separat erfolgen soll) gilt<br />

es in der Regel, nur noch wenige<br />

Änderungen vorzunehmen. Die<br />

wichtigste Konfigurationsdatei,<br />

nginx.conf, liegt – sofern Sie bei<br />

der Installation keinen anderen<br />

Pfad gesetzt haben – unter /usr/<br />

local/nginx/conf/. Stammt Nginx<br />

aus dem Distributionsfundus,<br />

findet sie sich möglicherweise<br />

auch unter /etc/nginx/.<br />

Sie konfigurieren den <strong>Web</strong>server<br />

in drei oder vier (mit Mailproxy)<br />

Modulen: main, events, http<br />

und mail. Bis auf das Main-Modul<br />

stehen alle Modul-Konfigurationen<br />

als sogenannte Blöcke innerhalb<br />

geschweifter Klammern,<br />

Strichpunkte schließen die einzelnen<br />

Anweisungen ab. Es gibt<br />

auch noch ein Konfigurationsmodul,<br />

das aber nichts weiter tut, als<br />

sich um das Einbinden externer<br />

Dateien zu kümmern, wodurch<br />

sich die Konfiguration aufteilen<br />

und damit übersichtlicher gestalten<br />

lässt.<br />

Nginx besteht aus einer einzigen<br />

Binärdatei. Der Server startet,<br />

sofern nicht anders gewünscht,<br />

einen Masterprozess<br />

mit Root-Rechten als Daemon.<br />

Dieser schickt anschließend eine<br />

Reihe Worker-Prozesse unter anderen<br />

Nutzer- und Gruppenrechten<br />

(gewöhnlich www oder wwwdata)<br />

ins Rennen, welche die anfragenden<br />

HTTP-Clients bedienen.<br />

Hier bietet es sich an, pro<br />

CPU-Kern einen Worker-Prozess<br />

zu starten. Die zugehörigen Parameter<br />

daemon, user und worker_processes<br />

gehören zu den wichtigsten<br />

Anweisungen im Main-Modul.<br />

In den Anweisungen für das<br />

Events-Modul legen Sie fest, wie<br />

viele gleichzeitige Verbindungen<br />

ein Worker bearbeitet, welches<br />

Ereignis-Modell er dazu nutzt<br />

oder ob Nginx alle eingehenden<br />

Verbindungen auf einmal akzeptiert.<br />

Mit der Anzahl der gleichzeitigen<br />

Verbindungen sollten Sie<br />

experimentieren: Liegt der angegebene<br />

Wert zu niedrig, lehnt der<br />

Server eventuell Anfragen ab, ist<br />

er zu hoch, kann das System abstürzen.<br />

Listing 1 zeigt eine kommentierte<br />

Beispielkonfiguration<br />

für die Module Main und Events.<br />

Listing 1<br />

# /etc/nginx/nginx.conf<br />

# als Daemon laufen<br />

daemon on;<br />

# User, der Worker‐Prozess<br />

ausfuehrt<br />

user www‐data www‐data;<br />

# Anzahl Worker‐Prozesse, einer<br />

pro CPU‐Core<br />

worker_processes 4;<br />

events {<br />

# Anzahl simultaner<br />

Verbindungen<br />

worker_connections 1024;<br />

use epoll;<br />

}<br />

Nginx 1.2.1,<br />

Memcached 1.4.13<br />

LU/nginx/<br />

www.linux-user.de<br />

08 | 12 39


schwerpunkt<br />

Nginx<br />

Listing 2<br />

Als letztes wichtiges und umfangreichstes<br />

Modul vor einem ersten<br />

Test gilt es das HTTP-Modul einzurichten.<br />

Es gliedert sich in die<br />

Blöcke http, server und location<br />

(Abbildung A, vorherige Seite).<br />

Angaben im Block http bestimmen<br />

die HTTP-Eigenschaften. Sie<br />

wirken sich auf alle server-Blöcke<br />

aus, die jeweils einen virtuellen<br />

Host des <strong>Web</strong>servers definieren.<br />

Die innerhalb der server-Direktiven<br />

stehenden location-Blöcke beeinflussen<br />

nur einzelne Verzeichnisse.<br />

Auch wenn Nginx mehrere<br />

http-Blöcke erlaubt, sollten Sie<br />

sich auf einen beschränken: Dadurch<br />

halten Sie einerseits die<br />

Konfigurationsdatei lesbarer, andererseits<br />

wird verhindert, dass<br />

Sie Anweisungen versehentlich<br />

überschreiben und so die Fehlersuche<br />

erschweren.<br />

Viele HTTP-Direktiven sind bereits<br />

mit sinnvollen Werten vorbelegt.<br />

Zu den Anpassungen, die<br />

für alle virtuellen Hosts (V-Hosts)<br />

gelten sollen, zählen wahrscheinlich<br />

die Werte für Timeouts, das<br />

Caching und die Gzip-Komprimierung<br />

auszuliefernder <strong>Web</strong>seiten.<br />

Kürzere Timeouts als die<br />

gängigen 60 bis 75 Sekunden bieten<br />

sich beispielsweise bei hochfrequentierten<br />

<strong>Web</strong>seiten an, die<br />

wenig Nutzer-Interaktionen erfordern.<br />

Clientseitiges Caching<br />

eignet sich ideal für Seiten, die<br />

sich selten ändern. Die Gzip-<br />

Komprimierung lässt sich auf bestimmte<br />

Dateitypen beschränken.<br />

http {<br />

include mime.types;<br />

default_type application/octet‐stream;<br />

sendfile on;<br />

keepalive_timeout 30;<br />

gzip on;<br />

gzip_comp_level 5;<br />

gzip_proxied any;<br />

gzip_types text/css text/javascript text/xml text/<br />

plain application/xml application/xhtml+xml application/<br />

x‐httpd‐php application/x‐httpd‐fastphp application/<br />

rss+xml application/javascript application/x‐javascript ;<br />

log_not_found off;<br />

include sites‐enabled/*;<br />

}<br />

Bei bereits komprimierten Dateien<br />

(typischerweise etwa Grafiken<br />

oder MP3s) würde eine wiederholte<br />

Kompression nur Rechenzeit<br />

kosten, ohne nennenswerte<br />

Vorteile zu bringen.<br />

Ein Beispiel für globale http-Direktiven<br />

zeigt Listing 2. Es integriert<br />

die Datei mime.types, nach deren<br />

Vorgaben Nginx verschiedene<br />

Dateitypen unterschiedlich behandelt.<br />

Erkennt der Server einen<br />

Typ nicht, liefert er die Datei als<br />

application/octet‐stream aus. Mit<br />

sendfile on halst Nginx die Verwaltung<br />

der Datei-Übertragungen<br />

dem Kernel auf. Der Server setzt<br />

Keep-Alive-Verbindungen schon<br />

nach 30 anstelle der standardmäßigen<br />

60 Sekunden zurück.<br />

Bei der Gzip-Komprimierung<br />

wurde zwischen schneller, aber<br />

schlechter Kompression (1) und<br />

bester, aber zeitaufwendiger<br />

Kompression (9) die goldene Mitte<br />

gewählt. Die Kompression<br />

greift auch dann, wenn die HTTP-<br />

Anfrage über einen Proxy abgesetzt<br />

wurde. Zudem komprimiert<br />

der Server neben text/html auch<br />

weitere textlastige Dateitypen,<br />

während Grafiken und Audio-Dateien<br />

außen vor bleiben. log_not_<br />

found off; verhindert, dass Nginx<br />

jede Anfrage nach einer nicht vorhandenen<br />

Datei zeit- und platzraubend<br />

protokolliert. Diese Anweisung<br />

gilt nicht nur für fehlende<br />

<strong>Web</strong>seiten, sondern auch für<br />

die gern und oft vergessenen Dateien<br />

robots.txt und favicon.ico.<br />

Jetzt kann es an die virtuellen<br />

Hosts gehen. Listing 3 zeigt eine<br />

sehr einfache server-Direktive:<br />

Nginx lauscht auf Port 80 und<br />

schaut, sobald eine Anfrage eingeht,<br />

im Verzeichnis /var/www/<br />

nach, ob er sie bedienen kann. Im<br />

Zweifelsfall liefert er die index.<br />

Listing 3<br />

server {<br />

listen 80;<br />

server_name localhost;<br />

root /var/www;<br />

index index.html index.htm;<br />

}<br />

htm(l) aus, sofern es eine solche<br />

gibt. Es bietet sich an, für jede<br />

gehostete Domain eine eigene<br />

Konfigurationsdatei anzulegen<br />

und diese dann einzubinden<br />

(siehe vorletzte Zeile in Listing<br />

2). Die beim Apache gern geübte<br />

Praxis, V-Hosts im Verzeichnis<br />

sites‐available/ einzurichten<br />

und dann über einen Softlink ins<br />

Verzeichnis sites‐enabled/ zu verlinken,<br />

funktioniert ebenfalls mit<br />

Nginx sehr gut.<br />

Mit der bis hierhin erstellten,<br />

einfachen Konfiguration können<br />

Sie Nginx über den Befehl usr/<br />

local/nginx/sbin/nginx ‐t prüfen<br />

lassen, ob er die getätigten Einstellungen<br />

klaglos akzeptiert.<br />

Treten keine Fehler auf, starten<br />

Sie den Server anschließend mit<br />

/ etc/init.d/nginx start. Sobald Sie<br />

im Browser http:// localhost/ aufrufen,<br />

sollte Nginx die index.html<br />

auf den Schirm holen.<br />

PHP, Caching und Denies<br />

Etwas komplizierter, aber auch<br />

realitätsnäher gibt sich Listing 4.<br />

Hier kommen auch Caching für<br />

statische Dateien, PHP sowie<br />

Rewrite-Regeln ins Spiel.<br />

Um in Scriptsprachen wie PHP,<br />

Python oder Perl implementierte<br />

dynamische Seiten auszuliefern,<br />

greift Nginx auf FastCGI zurück.<br />

Im Zusammenspiel mit PHP hat<br />

sich dazu in der Vergangenheit<br />

PHP-FPM [6] etabliert. In Listing<br />

4 übergibt Nginx die Verarbeitung<br />

von PHP an den FastCGI-<br />

Process-Manager, der auf einem<br />

Unix-Socket lauscht. Bei derartigen<br />

Lösungen gilt es darauf zu<br />

achten, dass entsprechende PHP-<br />

Instanzen beim Serverstart geladen<br />

werden. Falls Sie PHP-FPM<br />

aus dem Repository der Linux-<br />

Distribution installiert haben,<br />

sollten die zugehörigen<br />

Startskripte bereits eingerichtet<br />

sein; anderenfalls fällt ein wenig<br />

Nacharbeit an.<br />

Die location-Blöcke ermöglichen<br />

es Nginx, ausgewählte Dateien<br />

und Verzeichnisse speziell zu behandeln.<br />

Anstelle einfacher Ver-<br />

40 08 | 12<br />

www.linux-user.de


Nginx<br />

schwerpunkt<br />

zeichnisangaben lassen sich auch<br />

komplexe Muster verwenden, die<br />

Nginx dann nur auf wenige Dateien<br />

anwendet. Über einen Location-Modifikator<br />

(siehe Tabelle<br />

Location-Modifikatoren) teilen<br />

Sie dem Server mit, wie er das folgende<br />

Muster zu behandeln hat.<br />

So gilt zum Beispiel location ~* \.<br />

php$ für alle Dateien, die auf .php,<br />

.PHP, .pHp, … enden.<br />

Im Beispiel aus Listing 4 animiert<br />

Nginx die Browser, statische<br />

Inhalte wie Bilder, CSS- und<br />

Javascript-Dateien solange wie<br />

möglich im Browser-Cache zu halten.<br />

Dadurch verringern sich bei<br />

wiederholten Seitenbesuchen des<br />

Clients Datenvolumen und Ladezeiten.<br />

Ein weiteres, für die Praxis<br />

wichtiges Beispiel ist der Block<br />

location ~ /include/*: Er legt fest,<br />

dass Clients keine im Verzeichnis<br />

/include/ abgelegten Dateien laden<br />

dürfen. Versuchen Sie es<br />

dann trotzdem, speist der <strong>Web</strong>server<br />

Sie rundweg mit einem<br />

Fehler 404 (Not Found) ab.<br />

Modifikator<br />

kein Modifikator<br />

Beschreibung<br />

Rewrites<br />

Viele dynamische <strong>Web</strong>seiten verwenden<br />

kryptische URIs wie etwa<br />

http://www.site.de/?dir=foo&file=ba<br />

r&comment=baz. Sie sehen nicht nur<br />

gruselig aus und sind schlecht zu<br />

merken, sondern wirken sich<br />

auch ungünstig auf die Suchmaschinenoptimierung<br />

aus. Hier<br />

helfen Rewrite-Regeln, die hässlichen<br />

URIs zu verschönern. Um<br />

die obige URI in die lesefreundlichere<br />

Form http://www.Site.de/<br />

foo/bar/baz zu bringen, verwenden<br />

Sie die Anweisung<br />

rewrite ^/(.*)/(.*)/(.*)$ /?dir=U<br />

$1&file=$2&comment=$3;<br />

Hier verkörpern die regulären<br />

Ausdrücke (.*) jeweils einen Parameter<br />

und werden mit $1, $2, $3<br />

verarbeitet. Ähnliche Regeln helfen<br />

dabei, Besucher restrukturierter<br />

<strong>Web</strong>seiten an die richtige Stelle<br />

weiterzuleiten, statt sie mit einer<br />

Fehlermeldung zu vergraulen.<br />

Nehmen wir an, Sie haben die Seite<br />

/robinhood.php in das Verzeichnis<br />

/sherwood/ verschoben: Dann<br />

sorgt die Rewrite-Regel<br />

rewrite ^/robinhood.php$ /sherwoU<br />

od/robinhood.php permanent;<br />

dafür, dass Besucher die Seite<br />

über Lesezeichen und Suchmaschinen<br />

weiterhin erreichen und<br />

beim nächsten Besuch via HTTP-<br />

Statuscode 301 (Moved Permanently)<br />

erfahren, dass Sie die Seite<br />

dauerhaft verschoben haben.<br />

Lassen Sie dagegen das permanent<br />

weg, liefert Nginx den Statuscode<br />

302 (Found) aus, was signalisiert,<br />

dass Sie die Seite nur temporär<br />

verschoben haben und daher<br />

Lesezeichen sowie indizierte URIs<br />

weiter gelten.<br />

Neben den Parametern in der<br />

URI kann Nginx für die Rewrites<br />

auch verschiedene Variablen [7]<br />

auswerten, beispielsweise Werte<br />

Location-Modifikatoren<br />

Die URI (einfacher String) muss mit dem vorgegebenen Muster<br />

beginnen.<br />

= Die URI (einfacher String) muss dem Muster genau entsprechen.<br />

~ Nginx behandelt den folgenden regulären Ausdruck schreibweisenabhängig<br />

(case-sensitive).<br />

~* Nginx behandelt den folgenden regulären Ausdruck schreibweisenunabhängig<br />

(case-insensitive).<br />

^<br />

Die URI muss mit dem folgenden Muster beginnen. Sobald ein<br />

Treffer gelandet wurde, hört Nginx auf, nach weiteren Mustern<br />

zu suchen.<br />

@<br />

Ein benannter Location-Block, der intern von Nginx aufgerufen<br />

wird, aber für Clients nicht erreichbar ist.<br />

in GET-Anfragen ($arg_PARAMETER),<br />

den HTTP-User-Agent ($http_<br />

user_agent) oder den Referer<br />

($http_referer). Durch Auswerten<br />

des HTTP-User-Agents biegen Sie<br />

unter anderem Anfragen von<br />

Smartphones auf mobile Seiten<br />

um (siehe Listing 5 auf der folgenden<br />

Seite).<br />

Pimp my Nginx<br />

Nginx ist von Natur aus schon<br />

sehr leistungsstark. Möchten Sie<br />

dem Server zu noch mehr Geschwindigkeit<br />

verhelfen, erledigen<br />

Sie das mit zusätzlichen<br />

Werkzeugen wie Memcached [8].<br />

Dabei handelt es sich um ein skalierbares,<br />

verteiltes Memory-Object-Caching-System<br />

für dynamische<br />

<strong>Web</strong>seiten, das nach dem<br />

Key-Value-Prinzip arbeitet. Der<br />

Vorteil von Memcached: Es hält<br />

dynamisch erzeugte <strong>Web</strong>seiten<br />

im Hauptspeicher vor. Statt bei<br />

einer Anfrage erneut eine Seite zu<br />

generieren, greift Nginx auf die<br />

gepufferte Page zurück und liefert<br />

die Seite so um ein Vielfaches<br />

schneller aus. Auf den meisten<br />

Systemen müssen Sie Memcached<br />

server {<br />

listen 80;<br />

server_name meine_domain.de;<br />

root /var/www/meine_domain.de/;<br />

index index.php;<br />

location / {<br />

if !‐e $request_filename) {<br />

rewrite ^ /index.php last;<br />

}<br />

}<br />

location ~* \.php$ {<br />

fastcgi_pass unix:/tmp/php.socket;<br />

fastcgi_param SCRIPT_FILENAME /var/www/meine_<br />

domain$fastcgi_script_name;<br />

fastcgi_param PATH_INFO $fastcgi_script_name;<br />

include fastcgi_params;<br />

}<br />

# Caching<br />

location ~* (css|js|png|jpe?g|gif|ico)$ {<br />

expires max;<br />

}<br />

location ~ /include/* {<br />

deny all;<br />

return 404;<br />

}<br />

}<br />

Listing 4<br />

www.linux-user.de<br />

08 | 12 41


schwerpunkt<br />

Nginx<br />

tipp<br />

erst noch aus dem Repository der<br />

Distribution installieren oder aus<br />

den Quellen übersetzen. Anschließend<br />

ergänzen Sie den<br />

Block location ~* \.php$ des zu<br />

puffernden V-Hosts um die Zeilen<br />

aus Listing 6. Sie legen fest,<br />

dass die angefragte URI als Memcached-Key<br />

dient. Generiert der<br />

Server die Seiten auf Basis von<br />

GET-Parametern, ersetzen Sie<br />

$uri durch $request_uri. Die Direktive<br />

memcached_pass gibt an, wo der<br />

Memcached-Server zu finden ist.<br />

Wie schon bei PHP-FPM kommt<br />

auch hier wieder ein Unix-Socket<br />

zum Einsatz. Das hat den Vorteil,<br />

dass kein TCP-Overhead anfällt<br />

und kein Server-Port geöffnet<br />

wird. Der Nachteil: Memcached<br />

muss dazu auf demselben Rechner<br />

laufen.<br />

Ordentlich Dampf<br />

Da Memcached Key-Value-basiert<br />

arbeitet und nicht weiß, welche<br />

Art Value es ausliefert, dient hier<br />

text/html als Default-Typ. Behalten<br />

Sie stattdessen den von Nginx<br />

als Standard voreingestellten<br />

Wert application/octet‐stream bei,<br />

werden die von Memcached gelieferten<br />

Daten wie ein Download<br />

behandelt – was meist nicht im<br />

Sinne des <strong>Web</strong>masters sein dürfte.<br />

Hat Memcached einen Eintrag<br />

mit passenden Schlüssel gespeichert<br />

und den zugehörigen Wert<br />

ausgeliefert, gibt es einen Statuscode<br />

200 (OK) an Nginx weiter.<br />

Existiert kein Key-Value-Paar, resultiert<br />

daraus der Statuscode<br />

404 (Not Found). In dem Fall soll<br />

Nginx in den Block location @not_<br />

cached springen, der die im ursprünglichen<br />

Block ~* \.php$ vorhandenen<br />

Anweisungen für den<br />

Um zu prüfen, ob Memcached Nginx tatsächlich Feuer unter dem<br />

Hintern macht, nehmen Sie am besten ein Lasttest-Werkzeug zuhilfe.<br />

Zu den geeigneten Kandidaten zählen etwa Apache JMeter,<br />

Open<strong>Web</strong>Load, Http_load oder Httperf. Letzteres ist ein kleines,<br />

einfach zu bedienendes Kommandozeilenwerkzeug aus den HP<br />

Research Labs, das für einen schnellen Test meist reicht [12].<br />

Möchten Sie Ihre Installation mit aufwendigeren Testszenarien<br />

konfrontieren, greifen Sie stattdessen zu Apache JMeter [13].<br />

FastCGI-PHP-Handler enthält.<br />

Für einen separaten Memcached-<br />

Server müssen Sie den Unix-Socket<br />

durch die entsprechende<br />

Server:Port-Kombination ersetzen.<br />

Sind gar mehrere Server verfügbar,<br />

leistet das Upstream-Modul<br />

[9] wertvolle Dienste wie etwa<br />

ein Load-Balancing (Listing 7).<br />

Falls Sie von der Option Gebrauch<br />

machen möchten, tragen Sie hinter<br />

memcached_pass einfach den Namen<br />

der Upstream-Konfiguration<br />

ein.<br />

Das standardmäßig in Nginx<br />

enthaltene Memcached-Modul<br />

hat den Nachteil, dass es keine<br />

Key-Value-Paare an Memcached<br />

übergeben kann und so darauf<br />

angewiesen ist, dass die Anwendungen<br />

oder ein Skript den Cache<br />

füllen. Steht weder das eine noch<br />

das andere bereit, lohnt sich ein<br />

Blick auf das NginxHttpMemc-<br />

Module [10] oder das Enhanced<br />

Nginx Memcached Module [11].<br />

Listing 5<br />

location / {<br />

if ($http_user_agent ~*<br />

'(Android|iPhone|BlackBerry)') {<br />

set $mob_request '1';<br />

}<br />

if ($mob_request = '1') {<br />

rewrite ^.+ http://mobil.<br />

meine_domain.de/$uri;<br />

}<br />

}<br />

Listing 6<br />

set $memcached_key $uri;<br />

memcached_pass unix:/tmp/<br />

memcached.socket;<br />

default_type text/html;<br />

error_page 404 = @not_cached<br />

#127.0.0.1:11211;<br />

Listing 7<br />

upstream memcached_cluster {<br />

server ip_memcached_1:11211;<br />

server ip_memcached_2:11211;<br />

server ip_memcached_3:11211;<br />

}<br />

Fazit<br />

Nginx lässt sich dank seines modularen<br />

Aufbaus für viele Einsatzszenarien<br />

optimieren. Die Konfiguration<br />

gestaltet sich einfach<br />

und übersichtlich. Eine gute Dokumentation<br />

und ein umfangreiches<br />

Wiki kompensieren den<br />

Mangel an Fachbüchern zu dem<br />

russischen <strong>Web</strong>server. Um das<br />

Maximale aus Nginx herauszuholen,<br />

sollten Sie mit den Optionen<br />

experimentieren. Sollen dynamische<br />

Skriptsprachen zum Einsatz<br />

kommen, müssen Sie diese in die<br />

Experimente miteinbeziehen.<br />

Mit Nginx macht dem Apache<br />

ein leistungsfähiger <strong>Web</strong>server<br />

Konkurrenz, der sich zu Recht<br />

immer größerer Beliebtheit erfreut.<br />

Als eventbasierter Server<br />

kommt er mit wenigen Prozessen<br />

aus und verbraucht aus diesem<br />

Grund kaum System-Ressourcen,<br />

was ihn ebenfalls zu einem Kandidaten<br />

für betagte oder weniger<br />

gut ausgebaute Rechner macht.<br />

Er lässt sich einerseits dazu nutzen,<br />

um auf dem Server liegende<br />

Seiten direkt auszuliefern, andererseits<br />

kann er auch als Reverse-<br />

Proxy für bereits existierende<br />

<strong>Web</strong>server wie beispielsweise<br />

Apache Httpd, Tomcat oder Tornado<br />

fungieren. (jlu) n<br />

info<br />

[1] Nginx: http:// www. nginx. org<br />

[2] Netcraft <strong>Web</strong> Server Survey:<br />

http:// news. netcraft. com/ archives/ 2012/​<br />

06/ 06/ june‐2012‐web‐server‐survey. html<br />

[3] Nginx-Download:<br />

http:// www. nginx. org/ en/ download. html<br />

[4] Module von Drittanbietern:<br />

http:// wiki. nginx. org/ 3rdPartyModules<br />

[5] Nginx-Init-Skript: http:// www. linux‐user. de/​<br />

Downloads/ 2012/ 08/<br />

[6] PHP-FPM: http:// php‐fpm. org<br />

[7] Nginx-Variablen: http:// wiki. nginx. org/​<br />

HttpCoreModule# Variables<br />

[8] Memcached: http:// memcached. org<br />

[9] HttpUpstreamModule:<br />

http:// wiki. nginx. org/ HttpUpstreamModule<br />

[10] NginxHttpMemcModule: http:// wiki. nginx.​<br />

org/ NginxHttpMemcModule<br />

[11] Enhanced Nginx Memached Module:<br />

https:// github. com/ bpaquet/ ngx_http_enhanced_memcached_module<br />

[12] Httperf: http:// www. hpl. hp. com/ research/​<br />

linux/ httperf/<br />

[13] Apache JMeter: http:// jmeter. apache. org/<br />

42 08 | 12<br />

www.linux-user.de


Admin-MAGAZIN<br />

im Jahres-Abo<br />

Jede Ausgabe des Admin-Magazins bietet praktisch anwendbares Wissen<br />

von ausgewiesenen Experten und ausführliche Hintergrundberichte für alle<br />

Systemverwalter von Linux, Unix und Windows. Die Schwerpunkte reichen von<br />

Storage und Backup bis hin zu Netzwerk-Themen und Security.<br />

Ein Sonderteil hilft Admins heterogener Welten.<br />

15 % sparen<br />

Jetzt bestellen unter:<br />

www.admin-magazin.de/abo<br />

sichern Sie Sich Ihr<br />

gratis ADMIN T-Shirt!<br />

• Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@admin-magazin.de<br />

Mit dem Jahres-Abo erhalten Sie 6 Ausgaben des Admin-Magazins zum Vorzugspreis von E 49,90 * statt E 58,80 *<br />

(Lieferung frei Haus).<br />

* Preise gelten für Deutschland. Schweiz: SFr 82,32; Österreich: E 54,90; anderes Europa: E 59,90


schwerpunkt<br />

Hiawatha<br />

Schlanker, sicherer <strong>Web</strong>server Hiawatha<br />

Wachsamer<br />

Häuptling<br />

© Francisco Javier Quintana Galvàn, 123 RF<br />

Der freie <strong>Web</strong>server Hiawatha legt den Fokus auf Sicherheit und geringen Ressourcenverbrauch. Damit eignet er<br />

sich besonders für kleinere <strong>Web</strong>-Projekte, für die Apache zu schwerfällig und komplex erscheint. Thomas Drilling<br />

README<br />

Hiawatha 8.4<br />

LU/hiwatha/<br />

Seit 2002 entwickeln<br />

Developer den <strong>Web</strong>server<br />

Hiawatha kontinuierlich<br />

weiter. Sein Fokus<br />

liegt auf Sicherheit. Dieser<br />

Workshop konzentriert<br />

sich auf die Konfiguration<br />

und geht insbesondere<br />

auf die gebotenen<br />

Sicherheitsfunktionen<br />

ein.<br />

Der Entwickler von Hiawatha,<br />

Hugo Leising, begann 2002 mit<br />

der Programmierung eines eigenen<br />

<strong>Web</strong>servers [1], weil es seinerzeit<br />

keinen Vertreter dieser<br />

Gattung gab, der seinen Vorstellungen<br />

von Sicherheit, Einfachheit<br />

und dem Umgang mit Ressourcen<br />

gerecht wurde. Leisings<br />

Bonmot, Apache sei eine fette<br />

Kuh mit einer ziemlich hässlichen<br />

Konfigurationsdatei, trifft im<br />

Jahr 2012 zwar nicht mehr in allen<br />

Punkten zu. Dennoch gibt es<br />

nach wie vor einen Bedarf an<br />

kompakten, einfach zu konfigurierenden<br />

<strong>Web</strong>servern – unter anderem<br />

deshalb, viele <strong>Web</strong>-Anwendungen<br />

dann damit punkten können,<br />

„out-of-the-box“ zu funktionieren,<br />

indem sie den <strong>Web</strong>server<br />

einfach vorkonfiguriert mitliefern.<br />

Auch Hiawatha eignet sich<br />

mit seiner kompakten Größe von<br />

620 KByte hervorragend als „Beipack-Lösung“.<br />

Der komplett monolithisch aufgebaute<br />

Hiawatha sieht ein Laden<br />

von Modulen beim Programmstart<br />

nicht vor. Seine hohe Geschwindigkeit<br />

verdankt Hiawatha<br />

der Tatsache, dass der Server ausschließlich<br />

Threads verwendet.<br />

Hiawatha enthält zudem Funktionen<br />

im Standardumfang, die Sie<br />

bei anderen <strong>Web</strong>servern nachrüsten<br />

oder aufwendig konfigurieren<br />

müssen, wie etwa Support für<br />

IPv6, CGI und FastCGI, XSLT,<br />

VirtualHosts oder Basic/​Digest-<br />

HTTP-Authentifizierung.<br />

Herausragend sind aber vor allem<br />

die Sicherheitsfunktionen<br />

von Hiawatha, wie der Schutz vor<br />

Cross-Site-Scripting (CSS), Cross-<br />

Site Request Forgery (CSRF),<br />

SQL-Injection-Angriffen und Denial-of-Service-Attacken.<br />

Ferner<br />

kann der <strong>Web</strong>server Clients auf<br />

IP-Ebene anhand ihrer Adresse<br />

blockieren („Banning“) und lässt<br />

sich über einen separaten Port<br />

kontrollieren („Command<br />

Channel“). Hiawatha unterstützt<br />

außerdem auch URL-Rewriting<br />

anhand regulärer Ausdrücke.<br />

Allerdings heißt die Funktion bei<br />

Hiawatha UrlToolkit. Eine<br />

komplette Feature-Liste steht auf<br />

der <strong>Web</strong>seite [2] zur Verfügung.<br />

In Betrieb nehmen<br />

Hiawatha installieren Sie am besten<br />

aus den Quellen. Dazu benötigen<br />

Sie an Voraussetzungen neben<br />

einem C-Compiler und den<br />

Entwicklerversionen der Libc5,<br />

Glib2 und Libxslt noch eine aktuelle<br />

Cmake-Version. Daneben<br />

sollten Sie auch darauf achten,<br />

dass OpenSSL installiert ist. Nach<br />

dem Herunterladen des Quell-<br />

Listing 1<br />

$ mkdir build<br />

$ cd build<br />

$ sudo cmake ..<br />

$ sudo make install/strip<br />

44 08 | 12<br />

www.linux-user.de


Hiawatha<br />

schwerpunkt<br />

code-Archivs entpacken Sie es mit<br />

tar ‐xfzv hiawatha‐8.4.tar.gz,<br />

wechseln in das neu entstandene<br />

Verzeichnis und starten die Installation<br />

mit den Befehlen, die Sie<br />

in Listing 1 finden.<br />

Bei dieser Minimalversion erhalten<br />

Sie zwar elementare Dinge<br />

wie SSL-Unterstützung, das Url-<br />

Toolkit und XSLT-Support, verzichten<br />

aber auf ein paar ausgefeiltere<br />

Features, wie etwa den<br />

Chroot-Support, den Command-<br />

Channel oder den Hiawatha-Monitor.<br />

Diese binden Sie bei Bedarf<br />

beim Aufruf von Cmake über entsprechende<br />

Optionen ein (siehe<br />

Tabelle Cmake-Optionen).<br />

Um Hiawatha mit Chroot-Support<br />

zu übersetzen, verwenden<br />

Sie statt cmake .. beispielsweise<br />

cmake ‐DENABLE_CHROOT=on ... Vergessen<br />

Sie aber beim Cmake-Aufruf<br />

auf keinen Fall die beiden<br />

Punkte, die das Programm anweisen,<br />

im darüber liegenden Verzeichnis<br />

zu arbeiten.<br />

Hiawatha konfigurieren<br />

Der Hauptvorteil von Hiawatha<br />

besteht in seiner einfachen und<br />

übersichtlichen Konfiguration.<br />

Diese erfolgt in einer einzigen,<br />

kompakten Konfigurationsdatei<br />

namens hiawatha.conf, die per<br />

Default im Verzeichnis /usr/local/<br />

etc/hiawatha/ liegt.<br />

Abzüglich der auskommentierten<br />

Zeilen und der Pfadangaben<br />

zu den Log-Files setzt sich die<br />

mitgelieferte Datei aus lediglich<br />

sieben Einträgen zusammen. Für<br />

erste Tests sollten Sie die Default-<br />

Konfiguration sichern und entweder<br />

eine komplett neue Konfigurationsdatei<br />

anlegen oder mit den<br />

in der Default-Konfiguration auskommentierten<br />

Parametern experimentieren.<br />

Eine Minimalkonfiguration<br />

zeigt Listing 2, folgende Seite; im<br />

Normalfall steht in jeder Zeile genau<br />

eine Definition. Eine sogenannte<br />

Sektion in geschweiften<br />

Klammern ist außerdem schon<br />

das komplexeste Strukturmerkmal<br />

der Konfigurationsdatei.<br />

Mit der Binding-Definition (eingeschlossenen<br />

in geschweifte Klammern)<br />

legen Sie fest, auf welchem<br />

Interface und auf welchem Port<br />

der <strong>Web</strong>server Verbindungen entgegennimmt.<br />

Soll der <strong>Web</strong>server<br />

auf allen vorhandenen Netzwerkschnittstellen<br />

auf Verbindungen<br />

warten, lassen Sie die Interface-<br />

Angabe ganz einfach weg. Selbstverständlich<br />

können Sie außerdem<br />

mehrere Binding-Sektionen<br />

einbauen, etwa eine eigene für<br />

den SSL-Port 443.<br />

Das bei Apache als DocumentRoot<br />

bezeichnete <strong>Web</strong>server-Verzeichnis<br />

heißt bei Hiawatha schlicht<br />

<strong>Web</strong>siteRoot. Sie können hierfür<br />

zwar jeden beliebigen Ordner auf<br />

der Festplatte angeben, unter /<br />

usr/local/var/www/hiawatha liegt<br />

aber bereits eine vorbereitete Beispielseite<br />

index.html.<br />

Außerdem müssen Sie noch einen<br />

Namen oder eine IP-Adresse<br />

angeben, unter der sich die <strong>Web</strong>seite<br />

erreichen lässt. Dazu kommt<br />

wie bei Apache der Parameter<br />

Hostname zum Einsatz. Da Hiawatha<br />

wie eingangs erwähnt von<br />

Haus aus mit IPv6-Adressen zurechtkommt,<br />

stellt es kein Problem<br />

dar, eine solche einfach zu<br />

verwenden – sogar das Mischen<br />

ist erlaubt.<br />

Indianer rennt<br />

Für einen Schnellstart genügt es,<br />

den Server mit administrativen<br />

Rechten direkt auf der Kommandozeile<br />

mit hiawatha anzuwerfen.<br />

Im Unterverzeichnis extras/ findet<br />

sich jedoch das vorbereitete<br />

Start/​Stop-Skript hiawatha, das Sie<br />

mit etwas Erfahrung an Ihre Bedürfnisse<br />

anpassen und in den<br />

Init-Prozess Ihrer Distribution<br />

einbauen.<br />

Listing 2<br />

Binding {<br />

Port = 8080<br />

Interface = 192.168.0.45<br />

}<br />

<strong>Web</strong>siteRoot = /usr/local/var/<br />

www/hiawatha<br />

Hostname = localhost<br />

Sollten Sie die Fehlermeldung<br />

Warning: can’t write PID file /usr/​<br />

local/​var/​run/​hiawatha.pid erhalten,<br />

hat Hiawatha keine ausreichenden<br />

Zugriffsrechte für das<br />

Verzeichnis /usr/local/var/run.<br />

Den Pfad zur PID-Datei mit der<br />

Prozess-ID des Servers passen Sie<br />

bei Bedarf in der dokumentierten<br />

Konfigurationsdatei leicht an.<br />

Hat alles funktioniert, steht die<br />

mitgelieferte Testseite nach dem<br />

Start des Servers unter<br />

http://IP‐oder‐Servername:Port<br />

zur Verfügung (Abbildung A). Im<br />

Beispiel aus Listing 2 verwenden<br />

wir Port 8080, um einem laufenden<br />

Apache nicht in die Quere zu<br />

kommen. Ohne Start/​Stop-Skripte<br />

können Sie Hiawatha vorerst<br />

nur via sudo killall hiawatha wieder<br />

beenden.<br />

CGI<br />

Ohne den Einsatz Skripten geht<br />

im <strong>Web</strong>-2.0-Zeitalter nicht mehr<br />

viel. Um CGI zum aktivieren, erweitern<br />

Sie die Hiawatha-Konfigurationsdatei<br />

einfach um die<br />

Zeile ExecuteCGI = yes (Listing 3,<br />

Zeile 2, folgende Seite) und legen<br />

mit dem Parameter CGIextension<br />

fest, welche Dateiendung die CGI-<br />

Programme haben sollen (Zeile<br />

3). Möchten Sie PHP- oder Python-Anwendungen<br />

erlauben,<br />

müssen Sie Hiawatha noch Namen<br />

und Pfad zum zuständigen<br />

Interpreter mitteilen (Zeile 4).<br />

Option Vorgabe Funktion<br />

‐DENABLE_CACHE=on|off on Cache-Unterstützung<br />

‐DENABLE_CHROOT=on|off on Chroot-Support<br />

Tipp<br />

Möchten Sie Hiawatha<br />

speziell für<br />

Debian, Mac OS X<br />

oder Windows (via<br />

Cygwin) übersetzen,<br />

finden Sie im Unterverzeichnis<br />

extras<br />

spezielle Build-<br />

Skripte für die genannten<br />

Plattformen,<br />

wie etwa make_<br />

debian_ package.<br />

Cmake-Optionen<br />

‐DENABLE_COMMAND=on|off off Command-Channel aktivieren<br />

‐DENABLE_DEBUG=on|off off Debug-Information ausgeben<br />

‐DENABLE_IPV6=on|off on Unterstützung für IPv6<br />

‐DENABLE_MONITOR=on|off off Hiawatha-Monitor aktivieren<br />

‐DENABLE_RPROXY=on|off on Reverse-Proxy-Support<br />

‐DENABLE_SSL=on|off on SSL ermöglichen<br />

‐DENABLE_TOOLKIT=on|off on UrlToolkit nutzen<br />

‐DENABLE_XSLT=on|off on XSLT-Support<br />

www.linux-user.de<br />

08 | 12 45


schwerpunkt<br />

Hiawatha<br />

A Geschafft: Hiawatha<br />

läuft und grüßt mit seiner<br />

Willkommensseite.<br />

Listing 4<br />

Analog funktioniert das auch mit<br />

Perl oder Python (Zeilen 5 und 6).<br />

Sollen fehlerhafte oder bösartige<br />

CGI-Programme nicht gleich den<br />

ganzen <strong>Web</strong>server übernehmen<br />

können, empfiehlt es sich zudem,<br />

die jeweilige Lebensdauer der<br />

Skripte (in Sekunden) zu begrenzen<br />

(Zeile 7).<br />

Wie bereits erwähnt, zeichnet<br />

sich Hiawatha nicht zuletzt durch<br />

seine Sicherheitsfunktionen aus.<br />

Listing 3<br />

01 ...<br />

02 ExecuteCGI = yes<br />

03 CGIextension = cgi<br />

04 CGIhandler = /usr/bin/<br />

php5‐cgi:php,php5<br />

05 CGIhandler = /usr/bin/perl:pl<br />

06 CGIhandler = /usr/bin/<br />

python:py<br />

07 TimeForCGI = 10<br />

SystemLogfile = /usr/local/var/log/hiawatha/system.log<br />

AccessLogfile = /usr/local/var/log/hiawatha/access.log<br />

ErrorLogfile = /usr/local/var/log/hiawatha/error.log<br />

Listing 5<br />

$ openssl genrsa ‐out serverkey.pem 2048<br />

$ openssl req ‐new ‐x509 ‐days 365 ‐key serverkey.pem<br />

‐out server.crt<br />

$ echo "" >> serverkey.pem<br />

$ cat server.crt >> serverkey.pem<br />

$ echo "" >> serverkey.pem<br />

$ rm ‐f server.crt<br />

Diese Features gilt es ebenfalls<br />

explizit über die Konfigurationsdatei<br />

zu aktivieren.<br />

Dazu gehört unter anderen, von<br />

den gebotenen Logging-Möglichkeiten<br />

Gebrauch zu machen und<br />

Hiawatha anzuweisen, entsprechende<br />

Logfiles anzulegen und<br />

mit Inhalt zu füttern (Listing 4).<br />

Das SystemLogfile enthält die<br />

allgemeinen Meldungen des Daemons,<br />

während das AccessLogfile<br />

Zugriffe protokolliert und das<br />

ErrorLogfile Fehler aufzeichnet.<br />

Hiawatha läuft nur beim Start<br />

mit Root-Rechten, damit er sich<br />

an den angegebenen Port binden<br />

Listing 6<br />

...<br />

Binding {<br />

Port = 443<br />

Interface = 192.168.0.45<br />

UseSSL = yes<br />

ServerKey = /usr/local/etc/<br />

hiawatha/serverkey.pem<br />

}<br />

Listing 7<br />

...<br />

UrlToolkit {<br />

ToolkitID = rewrite<br />

RequestURI exists Return<br />

Match ^/images Return<br />

Match ^/data DenyAccess<br />

Match /(.*) Rewrite /index.<br />

php?page=$1<br />

}<br />

kann, und wechselt danach<br />

automatisch in den Kontext<br />

des Nutzers nobody.<br />

Sie dürfen aber über die<br />

ServerId auch ein anderes<br />

Benutzerkonto dazu vorgeben,<br />

etwa ServerId =<br />

www‐data.<br />

Die beiden ersten Zeilen<br />

der mitgelieferten Konfigurationsdatei<br />

widmen<br />

sich übrigens möglichen<br />

Denial-of-Service-Angriffen.<br />

Um die Anfälligkeit<br />

für solche Attacken zu verringern,<br />

reduzieren Sie am<br />

besten die Anzahl der<br />

gleichzeitig von Hiawatha<br />

akzeptierten Verbindungen<br />

insgesamt (ConnectionsTotal<br />

= 150 ) sowie pro IP-Adresse<br />

(ConnectionsPerIP = 10).<br />

Soll der Server zusätzlich oder<br />

ausschließlich SSL-Verbindungen<br />

akzeptieren, brauchen Sie neben<br />

dem dazu erforderlichen Binding<br />

zunächst ein X.509-SSL-Zertifikat.<br />

Wer das nicht käuflich bei einer<br />

Certificate Authority (CA) erwerben<br />

will, erzeugt es mittels<br />

OpenSSL selbst (Listing 5) und<br />

kopiert den damit erzeugten<br />

Schlüssel serverkey.pem ins Konfigurationsverzeichnis<br />

/usr/local/<br />

etc/hiawatha.<br />

Jetzt müssen Sie Hiawatha noch<br />

in der Binding-Sektion für HTT-<br />

PS (Port 443) den Pfad zum eben<br />

erzeugten Server-Key mitteilen<br />

und das Verwenden von SSL mit<br />

UseSSL einschalten (Listing 6). Ab<br />

sofort reagiert der <strong>Web</strong>server in<br />

unserem Beispiel auch auf Anfragen<br />

unter https://192.168.0.45:443.<br />

UrlToolkit<br />

Hiawatha kennt auch eine mit<br />

Apaches Mod_rewrite vergleichbare<br />

Funktion. Sie heißt hier Url-<br />

Toolkit und sorgt dafür, dass der<br />

<strong>Web</strong>server jede an ihn gerichtete<br />

URL mit einem vorgegebenen<br />

Muster abgleicht und nur bei<br />

Übereinstimmung die festgelegte<br />

Aktion ausführt (Listing 7).<br />

Das Beispiel sorgt dafür, dass<br />

Hiawatha URLs, die Dateien im<br />

46 08 | 12<br />

www.linux-user.de


Hiawatha<br />

schwerpunkt<br />

Verzeichnis images/ adressieren,<br />

nicht umschreibt. Dagegen weist<br />

er URLs, die auf Dateien unter<br />

data/ verweisen, zurück und<br />

schreibt alle übrigen URLs so um,<br />

dass sie auf die Startseite des<br />

<strong>Web</strong>servers (index.php) zeigen.<br />

Eine Übersicht der kompletten<br />

Syntax nebst aller Funktionen<br />

finden Sie unter [3].<br />

Virtuelle Hosts<br />

Auf diesem Weg kann Hiawatha<br />

auch mit virtuellen Hosts umgehen,<br />

also mehrere voneinander<br />

unabhängige virtuelle <strong>Web</strong>auftritte<br />

ausliefern – ganz so, als liefen<br />

auf der Maschine mehrere parallele<br />

<strong>Web</strong>server.<br />

Dazu ist es erforderlich, dass der<br />

physische Server anhand der<br />

übermittelten URL erkennt, welche<br />

<strong>Web</strong>seite er ausliefern muss.<br />

Möchten Sie mit Hiawatha virtuelle<br />

Hosts aufsetzen, legen Sie<br />

dazu ganz einfach für jeden davon<br />

in der hiawatha.conf eine eigene<br />

Sektion an (Listing 8)<br />

info<br />

[1] Hiawatha <strong>Web</strong>server:<br />

http:// www. hiawatha‐webserver. org<br />

[2] Features: http:// www. hiawatha‐webserver.​<br />

org/ features<br />

[3] UrlTookit: http:// www. hiawatha‐webserver.​<br />

org/ howto/ url_toolkit<br />

Innerhalb der Sektion dürfen Sie<br />

beliebig viele Konfigurationseinstellungen<br />

vornehmen. Es gibt allerdings<br />

einige Optionen, die Sie<br />

ausschließlich in Virtual-Host-<br />

Sektionen verwenden können.<br />

Dazu zählen vier interessante<br />

Schutzmechanismen.<br />

So verhindern Sie beispielsweise<br />

mit PreventCSRF = yes Cross-Site-<br />

Request-Forgery-Attacken<br />

(CSRF), weil der so ergänzte virtuelle<br />

Host dann alle von einem<br />

Browser gesendeten Cookies ignoriert,<br />

sofern die Anfrage über<br />

einen externen Link zustande<br />

kam. Mit PreventXSS = yes verhindern<br />

Sie Cross-Site-Skripting<br />

(XSS): Der virtuelle Host ersetzt<br />

sämtliche Kleiner- und Größerals-Zeichen<br />

sowie Hochkommas<br />

und Anführungsstriche in der<br />

URL durch Unterstriche.<br />

In ähnlicher Weise verhindert<br />

PreventCMDI = yes Command-Injection-Angriffe.<br />

Hiawatha ersetzt<br />

hier vorsorglich Backslashes,<br />

Strichpunkte und Pipe-Symbole<br />

in der URL durch einen Unterstrich,<br />

was allerdings hochgeladene<br />

Binärdateien zerstören kann.<br />

Ferner wirkt PreventSQLi = yes<br />

SQL-Injections entgegen, indem<br />

der virtuelle Host mit dieser Option<br />

einen Schrägstrich vor jedes<br />

Hochkomma in der URL stellt.<br />

Mit seinem runden Funktionsumfang<br />

und insbesondere den<br />

ausgefeilten Sicherheitsfunktionen<br />

kann Hiawatha in vielen Fällen<br />

einen Apache-<strong>Web</strong>server ersetzen<br />

– und lässt sich obendrein<br />

wesentlich einfacher konfigurieren.<br />

Darüber hinaus bietet Hiawatha<br />

noch weitere nützliche<br />

Funktionen. Fordert ein Client<br />

beispielsweise eine XML-Datei<br />

an, führt der <strong>Web</strong>server auf<br />

Wunsch eine automatische XSL-<br />

Transformation durch, sofern<br />

eine passende XSLT-Datei auf<br />

dem Rechner vorhanden ist.<br />

Wie bei Apache lässt sich die<br />

Ausführungsgeschwindigkeit von<br />

CGI-Skripten durch Einschalten<br />

von FastCGI steigern. Als „eierlegende<br />

Wollmilchsau“ für das <strong>Web</strong><br />

bleibt Apache allerdings aufgrund<br />

der unzähligen APIs, Schnittstellen,<br />

Addons und Zusatzprodukte<br />

erste Wahl. Für alles andere gibt<br />

es dann den schlanken Server<br />

Hiawatha. (jlu) n<br />

Listing 8<br />

...<br />

VirtualHost {<br />

<strong>Web</strong>siteRoot = /var/www/weitere‐webseite/wwwroot<br />

Hostname = www.weitere‐webseite.de<br />

... Parameter und Funktionen für den virtuellen<br />

Host ...<br />

}<br />

AKTION:<br />

NUR 7 EURO<br />

Holen Sie sich den kompletten Jahrgang<br />

2011 auf einer DVD-10!<br />

• Alle Artikel der Ausgaben<br />

01/2011 bis 12/2011 als<br />

HTML<br />

• Schnelle Volltextsuche für<br />

gängige <strong>Web</strong>browser<br />

• Bootfähiger Datenträger -<br />

auch für die Daten- und<br />

Systemrettung einsetzbar<br />

OpenSuse 12.1<br />

Install-DVD (32 Bit)<br />

www.linux-user.de<br />

Jetzt gleich bestellen!<br />

www.linux-user.de/DVD2011 oder<br />

08 | 12 47<br />

089 - 99 34 11 - 00


praxis<br />

Gramps<br />

Ahnenforschung mit der Genealogie-Software Gramps<br />

Stück für Stück<br />

Ahnenforschung erweist sich oft als Puzzle-Spiel mit unzähligen Teilen.<br />

Mit der Genealogie-Software Gramps fügen Sie alle Informationen<br />

zu einem spannenden Gesamtbild zusammen. Vincze-Aron Szabo<br />

© Riyono, sxc.hu<br />

Gramps 3.4.0<br />

LU/gramps<br />

Woher kommen wir, und wohin<br />

gehen wir? Diese Fragen haben<br />

die Menschen in vielfacher Form<br />

seit jeher beschäftigt. Auf die Frage<br />

nach dem Woher gibt es in Bezug<br />

auf die Ahnen in vielen Fällen<br />

eine konkrete Antwort. Damit<br />

nicht jede Generation aufs Neue<br />

die Antworten zu suchen braucht,<br />

lohnt sich der Einsatz einer Genealogie-Software<br />

wie Gramps.<br />

Die Ahnendatenbank Gramps<br />

unterstützt Sie dabei, Ihren<br />

Stammbaum mithilfe eines Computers<br />

zu pflegen und die Daten<br />

schrittweise zu ergänzen [1]. Dabei<br />

nimmt die Software weit<br />

mehr Informationen auf, als die<br />

Antwort auf die Frage, wer wessen<br />

Nachkomme ist. Sie haben<br />

die Möglichkeit, umfangreiche Informationen<br />

aus dem Leben einzelner<br />

Personen zu ergänzen,<br />

Orte des Geschehens zu dokumentieren,<br />

Recherchematerial zu<br />

verwalten und umfangreiche Berichte<br />

zu generieren.<br />

Wie Sie Gramps installieren,<br />

zeigt der Kasten Installation. Anschließend<br />

steht das Programm<br />

über das Startmenü unter Büro<br />

bereit. Mit der Eingabe von gramps<br />

starten Sie die Applikation aus einem<br />

Terminal.<br />

Das umfangreiche Programm<br />

enthält bereits alle Funktionen,<br />

die Sie für das produktive Arbeiten<br />

benötigen. Davon unberührt<br />

können Sie in dem beim ersten<br />

Start erscheinenden Dialog Verfügbare<br />

Gramps Aktualisierungen<br />

für Erweiterungen zusätzliche<br />

Funktionen in Form von kleinen<br />

Plugins von den Gramps-Servern<br />

herunterladen.<br />

Installation<br />

README<br />

Mit Gramps betreiben<br />

Sie professionelle Ahnenforschung,<br />

erfassen<br />

alle Informationen über<br />

Ihre Vorfahren sowie<br />

die Nachkommen und<br />

generieren auf Knopfdruck<br />

Berichte.<br />

Gramps liegt derzeit in der Version 3.4.0 vor. Um die Software<br />

zu installieren, suchen Sie im Paketmanager der Distribution<br />

einfach nach dem Stichwort gramps und installieren<br />

das entsprechende Archiv.<br />

Sofern die von Ihnen verwendete Distribution noch eine ältere<br />

Version als die 3.4.0 bereitstellt, laden Sie sich aus<br />

dem <strong>Web</strong> [2] die aktuelle Version als Paket herunter. Falls<br />

Sie auf ein offizielles Update Ihrer Distribution warten<br />

möchten und mit der Vorgängerversion loslegen, empfiehlt<br />

es sich, vor dem späteren Update einen Export aus Gramps<br />

heraus zu machen, um die Daten zu sichern.<br />

Das erledigen Sie einfach über das Menü Stammbäume |<br />

Export. Ein Assistent führt Sie durch den Vorgang. Wählen<br />

Sie als Format lediglich Gramps-XML Paket (Stammbaum<br />

und Medien) aus. An den restlichen Einstellungen müssen<br />

Sie nichts ändern. Nach dem Export können Sie auf die<br />

neue Version wechseln. Allerdings empfiehlt das Gramps-<br />

Projekt ganz klar die vorherige Deinstallation der alten Version<br />

und eine komplette Neuinstallation.<br />

Sollte Gramps nicht im Repository der verwendeten Distribution<br />

bereitstehen, schlagen Sie ebenfalls im <strong>Web</strong> [2]<br />

nach, ob ein passendes Paket existiert. Darüber hinaus<br />

empfiehlt es sich, einige Pakete nachzuinstallieren.<br />

Die sind zwar nicht zwingend nötig, erleichtern das Arbeiten<br />

mit Gramps aber in der Regel. Zu diesen Plugins gehören<br />

etwa python-gtkspell, python-enchant und desktop-file-utils.<br />

Dann steht für die Arbeit in Gramps eine Rechtschreibhilfe<br />

bereit, und Sie können Bilder mit einem Rechtsklick öffnen.<br />

50 08 | 12<br />

www.linux-user.de


Gramps<br />

praxis<br />

Über Gewählte Erweiterungen installieren<br />

starten Sie den Download<br />

der Module, woraufhin sich<br />

ein entsprechender Dialog öffnet.<br />

Falls Sie später Erweiterungen<br />

einrichten oder aktualisieren<br />

möchten, erledigen Sie das dagegen<br />

über den Menüeintrag Hilfe |<br />

Plug-in Manager.<br />

Sofern alle Vorbereitungen abgeschlossen<br />

sind, öffnet sich<br />

Gramps mit dem Dialog Stammbäume.<br />

Hier legen Sie einen neuen<br />

Stammbaum an und geben<br />

diesem gleich einen Namen.<br />

Ansichten und „Gramplets“<br />

Bei Bedarf passen Sie die Benutzeroberfläche<br />

an die eigenen Bedürfnisse<br />

an. Über die Leiste auf<br />

der linken Seite (Abbildung A)<br />

springen Sie in alle wichtigen<br />

Ansichten. Innerhalb der Ansicht<br />

legen Sie Personen an, setzen diese<br />

zueinander in Beziehung und<br />

bauen so die Datenbank der<br />

Ahnen Schritt für Schritt auf.<br />

Zusätzlich haben Sie die Möglichkeit,<br />

zu jedem Ort, an dem<br />

wichtige Ereignisse (wie zum Beispiel<br />

Geburten und Hochzeiten)<br />

stattfanden, umfassende Angaben<br />

zu machen – bis hin zur genauen<br />

Angabe der geografischen<br />

Koordinaten. Sogar Ihre Informationsquellen<br />

wie zum Beispiel<br />

Geburtsurkunden oder Zeugnisse<br />

können Sie bei Bedarf innerhalb<br />

von Gramps verwalten. Die Tabelle<br />

Ansichten zeigt, wozu die einzelnen<br />

Ansichten dienen.<br />

B Die zahlreichen Eigenschaften zu einem Eintrag für eine Person verwalten<br />

Sie in der Regel über den Dialog Neue Person.<br />

Sie haben die Möglichkeit, diese<br />

Ansichten anzupassen, indem Sie<br />

sogenannte Gramplets hinzufügen.<br />

Dahinter verbergen sich kleine<br />

Widgets, die spezielle Informationen<br />

bieten. In der Ansicht<br />

Gramplets sehen Sie übergeordnete<br />

Informationen, wie zum Beispiel<br />

Was sind die häufigsten Familiennamen<br />

in meiner Datenbank?<br />

oder eine Übersicht über die letzten<br />

Änderungen.<br />

Sie fügen ein Gramplet hinzu,<br />

indem Sie mit der rechten Maustaste<br />

an eine freie Stelle oder zwischen<br />

zwei vorhandenen Gramplets<br />

klicken und im Kontextmenü<br />

über Ein Gramplet hinzufügen ein<br />

solches aus der Liste auswählen.<br />

Wie Sie anhand der umfangreichen<br />

Liste erkennen, steht ein<br />

riesiges Portfolio bereit. Der Einsatz<br />

einiger Addons ergibt aber<br />

erst dann Sinn, wenn Sie die Datenbank<br />

gut gefüllt haben. Das<br />

gilt zum Beispiel für das Gramplet<br />

Vornamenwolke.<br />

Gramplets stehen für alle Ansichten<br />

bereit. Dies ermöglicht es<br />

zum Beispiel, in der Ansicht Personen<br />

über diese Widgets zusätzliche<br />

Informationen zu einzelnen<br />

Einträgen in der Liste anzuzeigen,<br />

ohne den ganzen Datensatz<br />

zu öffnen. Mit dem Gramplet Angehörige<br />

sehen Sie zum Beispiel<br />

auf einen Blick, wer Kinder, Part-<br />

Ansicht<br />

Gramplets<br />

Personen<br />

Beziehungen<br />

Familien<br />

Vorfahren<br />

Ereignisse<br />

Orte<br />

Geografie<br />

Quellen<br />

Aufbewahrungsorte<br />

Medien<br />

Notizen<br />

Beschreibung<br />

A In der Ansicht Personen<br />

füllen Sie die<br />

Datenbank mit allen<br />

Informationen zu Ihren<br />

Vorfahren und Nachkommen.<br />

Widgets zum Erweitern der Funktionalität<br />

Liste aller eingetragenen Personen<br />

Darstellen der Beziehungen zwischen Personen<br />

Partner und Art der Beziehung<br />

Stammbäume einer ausgewählten Person<br />

Dokumentiert Ereignisse<br />

Ansichten<br />

Anzeige aller in der Datenbank vorkommenden Orte<br />

Ansicht aller Orte, die im Leben einer Person, innerhalb<br />

einer Familie oder im Rahmen eines bestimmten<br />

Ereignisses eine Rolle spielen, oder die Anzeige<br />

aller gespeicherten Orte<br />

Übersicht über alle Quellenangaben<br />

Aufbewahrungsorte für Informationsquellen<br />

Übersicht über alle Medien in der Datenbank<br />

Liste eigener Notizen<br />

www.linux-user.de<br />

08 | 12 51


praxis<br />

Gramps<br />

C Natürlich arbeitet<br />

Gramps die erfassten<br />

Informationen auf<br />

Wunsch als klassische<br />

Ahnentafel auf.<br />

D Alternativ zur klassischen<br />

Ahnentafel<br />

zeigt die Fächergrafik<br />

die Ahnen einer Person<br />

kompakter kreisförmig<br />

angeordnet an.<br />

ner und Eltern der Person sind<br />

(Abbildung A, vorherige Seite).<br />

Daten erfassen<br />

Am Anfang der Arbeit empfiehlt<br />

es sich, erst mit einer Person zu<br />

starten, um sich so in Ruhe mit<br />

dem Programm vertraut zu machen.<br />

Neben personenbezogenen<br />

Daten haben Sie die Möglichkeit,<br />

Informationen zu Orten und Ereignissen<br />

abzulegen und all das<br />

zueinander in Beziehung zu setzen.<br />

Daher sollten Sie am Anfang<br />

die ersten Daten in der Hauptansicht<br />

Personen eingeben.<br />

Zum Hinzufügen einer neuen<br />

Person wechseln Sie in die Ansicht<br />

Personen und klicken auf das<br />

grüne Pluszeichen in der Symbolleiste<br />

oder drücken die Tastenkombination<br />

[Strg]+[Einfg].<br />

Es öffnet sich<br />

ein Dialog Neue<br />

Person (Abbildung<br />

B), vorherige<br />

Seite).<br />

Zunächst geben<br />

Sie den bevorzugten<br />

Namen<br />

der Person<br />

ein und legen<br />

das Geschlecht<br />

fest.<br />

Wichtig ist<br />

hierbei auch<br />

der Namenstyp,<br />

den Sie<br />

über die Auswahlliste<br />

Typ festlegen, weil eine<br />

Person im Laufe ihres Lebens ihren<br />

Namen auch mal ändert. So<br />

legen Sie fest, ob es sich um einen<br />

Geburtsnamen oder den Namen<br />

nach einer Hochzeit handelt.<br />

Neben der Auswahl für das Geschlecht<br />

der Person findet sich<br />

ein Eingabefeld mit der Beschriftung<br />

ID:. Dies zeigt bei einem<br />

vorhandenen Datensatz die interne<br />

Identifikationsnummer an.<br />

Gramps vergibt diese automatisch,<br />

falls Sie hier beim Anlegen<br />

des Datensatzes nichts eingeben.<br />

Die weiteren Informationen zu<br />

der Person geben Sie über die einzelnen<br />

Reiter im unteren Teil des<br />

Dialogs ein. Falls Sie sich gefragt<br />

haben, wie Sie das Geburtsdatum<br />

eintragen: Bei der Geburt handelt<br />

es sich um ein<br />

Ereignis im Leben<br />

einer Person,<br />

und dieses<br />

geben Sie folglich<br />

über den<br />

entsprechenden<br />

Reiter ein. Klicken<br />

Sie in diesem<br />

auf das<br />

kleine Symbol<br />

mit dem grünen<br />

Pluszeichen.<br />

Sofort öffnet<br />

sich der<br />

Ereignisreferenzeditor.<br />

Er dient zur Eingabe aller personenbezogenen<br />

Geschehnisse, die<br />

sich im Laufe des Lebens eines<br />

Menschen ereignen. Angefangen<br />

bei der Geburt über Taufe, Hochzeit<br />

bis hin zum Tod wählen Sie<br />

hier die Art des Ereignisses aus.<br />

Das Datum geben Sie direkt ein<br />

oder bearbeiten es, falls Sie besondere<br />

Kalender berücksichtigen<br />

müssen, über den passenden Editor<br />

im gleichen Dialog.<br />

Haben Sie die Daten für mehrere<br />

Personen eingegeben, können<br />

Sie diese Personen über die Ansicht<br />

Familien zueinander in Beziehung<br />

setzen. Dort fügen Sie<br />

über das Plus-Symbol in der Symbolleiste<br />

oder die Tastenkombination<br />

[Strg]+[Einfg] ein entsprechendes<br />

Objekt hinzu.<br />

Es öffnet sich der Dialog Neue<br />

Familie, in dem Sie aus der bestehenden<br />

Liste Mitglieder der Familie<br />

suchen und miteinander<br />

verknüpfen. Fehlt eine Person, legen<br />

Sie diese über das Symbol mit<br />

dem Pluszeichen an der entsprechenden<br />

Stelle direkt an; Sie<br />

brauchen dazu nicht erst wieder<br />

in die Ansicht Personen wechseln.<br />

So bauen Sie zu jedem Elternpaar<br />

eine Familie zusammen. Der<br />

Stammbaum wächst also kontinuierlich.<br />

Sobald ein paar Generationen<br />

zusammenkommen, lohnt<br />

es sich, einen Blick in die Ansicht<br />

Vorfahren zu werfen. Hier sehen<br />

Sie dann den Stammbaum für die<br />

aktuell markierte Person (Abbildung<br />

C). Dabei unterstützt die<br />

Software drei verschiedene Ansichten<br />

der Ahnentafel, die Sie<br />

über das Menü Ansicht aufrufen,<br />

wenn Sie sich in der Ansicht Vorfahren<br />

befinden.<br />

Die Ahnentafelansicht gibt Ihnen<br />

eine klassische Stammbaumübersicht<br />

über die Vorfahren einer bestimmten<br />

Person (Abbildung C).<br />

Über die Pfeile links und rechts<br />

springen Sie in die nächsten Generationen.<br />

Die aktive Person<br />

stellt Gramps übersichtlich in einer<br />

Detailansicht vor. Einen ganz<br />

anderen Blickwinkel auf die Ahnen<br />

bietet die Fächergrafik-An-<br />

52 08 | 12<br />

www.linux-user.de


Gramps<br />

praxis<br />

E Haben Sie Koordinaten zu den Orten in der Datenbank hinterlegt,<br />

zeigt Gramps deren Lage auf einer Karte an.<br />

F Gramps unterstützt verschiedene Quellen für die Karten, wie zum<br />

Beispiel Google Maps oder OpenStreetmap.<br />

sicht: Hier steht die aktive Person<br />

im Mittelpunkt eines Kreises (Abbildung<br />

D) aus ihren Vorfahren.<br />

Orte und Geographie<br />

Zu jedem Ereignis zu einer Person,<br />

wie Geburt oder Hochzeit,<br />

gehört neben einem Datum auch<br />

eine Ortsangabe. Sie haben die<br />

Möglichkeit, Orte direkt am Ereignis<br />

festzumachen oder vorab<br />

über die Ansicht Orte zu definieren<br />

und diese dann hier nachträglich<br />

anzupassen.<br />

Wie umfangreich die Informationen<br />

zum Eintrag für einen Ort<br />

ausfallen, bleibt Ihnen überlassen.<br />

Es genügt im Prinzip, dem<br />

Ort einen Namen zu geben. Allerdings<br />

kommen Sie so nicht in den<br />

Genuss, einige andere Funktio-<br />

3 AusgAben für nur 5,90 E<br />

Jetzt bestellen: 3 Hefte zum Preis von einem. Sie sparen 66 %!<br />

Neu!<br />

Jetzt bestellen unter:<br />

www.android–user.de/miniabo<br />

www.linux-user.de<br />

Kennenlernangebot:<br />

3 AusgAben<br />

für nur 5,90 E<br />

08 | 12 53<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de


praxis<br />

Gramps<br />

G Gramps erlaubt es,<br />

bei Berichten über die<br />

gespeicherten Daten<br />

umfassende Einstellungen<br />

vorzunehmen.<br />

Glossar<br />

GEDCOM: Genealogical<br />

Data Communication,<br />

gilt als internationaler<br />

De-facto-Standard für<br />

den Austausch von Ahnendaten.<br />

Das textbasierte<br />

Format wurde<br />

von den Mormonen entwickelt,<br />

bei denen Familienforschung<br />

aus religiösen<br />

Gründen eine<br />

wichtige Rolle spielt.<br />

nen von Gramps zu nutzen beziehungsweise<br />

diese entsprechend<br />

richtig auszureizen.<br />

Es empfiehlt sich daher, neben<br />

dem Namen des Ortes mindestens<br />

noch dessen Koordinaten in<br />

Form von Breiten- und Längengrad<br />

anzugeben. Dadurch erhalten<br />

Sie später in der Ansicht Geografie<br />

eine Übersicht, wo sich diese<br />

Orte auf einer Karte befinden.<br />

Die genauen geografischen Informationen<br />

erhalten Sie zum Beispiel<br />

über Beschreibungen der<br />

Orte in der Wikipedia oder über<br />

die <strong>Web</strong>site Mapcoordinates [3],<br />

wenn Sie mit genauen Adressen<br />

arbeiten. Zusätzlich haben Sie die<br />

Möglichkeit, zu einem Eintrag sogar<br />

alternative Angaben sowie<br />

Links und Bilder zu hinterlegen.<br />

In der Ansicht Geografie sehen<br />

Sie in einer Karte die Lage der<br />

Orte und deren Koordinaten (Abbildung<br />

E, Abbildung F, vorherige<br />

Seite). Über die rechte Maustaste<br />

zoomen Sie mit Alle Orte anzeigen<br />

in einem Schritt die Karte<br />

so zurecht, dass alle eingetragenen<br />

Orte übersichtlich im Kartenausschnitt<br />

liegen. Ebenfalls<br />

über die rechte Maustaste<br />

wechseln Sie zwischen<br />

verschiedenen Karten.<br />

Neben OpenStreetmap<br />

und Google Maps steht<br />

Kartenmaterial von Virtual<br />

Maps und Yahoo bereit.<br />

Berichterstattung<br />

Zur Bereicherung des eigenen<br />

Archivs oder zum<br />

Vorzeigen beim nächsten<br />

Familienfest enthält<br />

Gramps einige Funktionen<br />

zum automatischen<br />

Generieren von Berichten. Für<br />

solche Anlässe lohnt es sich zum<br />

Beispiel, einen Buchbericht zu generieren,<br />

der aus den Informationen<br />

und Grafiken der Datenbank<br />

eine umfassende Dokumentation<br />

der Familie erstellt.<br />

Darüber hinaus unterstützt<br />

Gramps zahlreiche grafische Berichte,<br />

wie einen Ahnenbaum<br />

oder einen Kalender mit allen Geburtstagen.<br />

Alle Berichtsformen<br />

erreichen Sie über das gleichnamige<br />

Menü. Außerdem können<br />

Sie für jeden Bericht umfangreiche<br />

Einstellungen vornehmen.<br />

Entscheiden Sie sich für einen<br />

Buchbericht, erstellt Gramps<br />

nach Ihren Vorgaben ein Dokument<br />

mit den Inhalten, die Sie bei<br />

der Konfiguration festlegen. Um<br />

einen solchen Bericht zu erstellen,<br />

klicken Sie auf Berichte | Bücher<br />

| Buchbericht…. Daraufhin<br />

öffnet sich der passende Dialog,<br />

in dem Sie alle Einstellungen vornehmen<br />

(Abbildung G).<br />

Nachdem Sie im Feld Buchname<br />

einen Namen angegeben haben,<br />

fügen Sie unter Verfügbare Artikel<br />

diesem mittels Doppelklick verschiedene<br />

Artikel hinzu. Die Artikel<br />

erscheinen in der Folge unter<br />

Aktuelles Buch.<br />

Diese einzelnen Artikel dürfen<br />

Sie wiederum individuell anpassen.<br />

Wählen Sie zum Beispiel den<br />

Artikel Titelseite aus, öffnen Sie<br />

über einen Doppelklick auf den<br />

Eintrag einen Dialog, der es ermöglicht,<br />

einen Buchnamen und<br />

einen Untertitel einzugeben. Sie<br />

haben hier auch die Möglichkeit,<br />

ein Bild einzutragen. In diesem<br />

Dialog definieren Sie unter Stileditor<br />

sogar Schriftformate.<br />

Klicken Sie auf OK, so öffnet<br />

sich ein Dialog, in dem Sie Optionen<br />

sowie Namen und Format<br />

(PDF oder ODF) der Datei festlegen.<br />

Diese liegt anschließend am<br />

angegebenen Speicherort.<br />

Im Menü Berichte finden Sie<br />

noch viele weitere Typen (Abbildung<br />

H). Vom Prinzip her funktioniert<br />

das Erstellen stets gleich:<br />

Sie wählen aus den Einträgen einen<br />

Bericht aus und nehmen in<br />

dem erscheinenden Dialog alle<br />

notwendigen Einstellungen vor.<br />

Eventuell schränken Sie abschließend<br />

noch ein, welche Daten das<br />

Programm auswertet.<br />

Fazit<br />

Durch die vielen Möglichkeiten<br />

zum Aufbereiten der Daten eröffnet<br />

Gramps eine nicht enden wollende<br />

Spielwiese. Dass Sie mit<br />

Gramps nicht nur Daten erfassen,<br />

sondern mit diesen allerhand anstellen<br />

können, zeichnet die Anwendung<br />

aus. Weder Import und<br />

Export von Daten stellen ein<br />

Prob lem dar: Gramps unterstützt<br />

das weitverbreitete GEDCOM-<br />

Format, das speziell für den Austausch<br />

von Ahnendaten entwickelt<br />

wurde [4]. (agr) n<br />

info<br />

[1] Gramps: http:// gramps‐project. org<br />

[2] Download: http:// sourceforge. net/ projects/​<br />

gramps/ files/ Stable/<br />

H Gramps generiert<br />

[3] Google Maps-Koordinaten finden:<br />

auf Wunsch aus der<br />

http:// www. mapcoordinates. net<br />

Ahnendatenbank viele<br />

[4] Wikipedia GEDCOM:<br />

verschiedene Berichte.<br />

http:// de. wikipedia. org/ wiki/ GEDCOM<br />

54 08 | 12<br />

www.linux-user.de


MyPaint<br />

praxis<br />

Freies Zeichnen mit dem Malprogramm MyPaint<br />

Digitale Kleckse<br />

Einfaches Zeichnen fast wie mit Pinsel und Stift verspricht<br />

© Ba1969, sxc.hu<br />

MyPaint. In Kombination mit einem Grafiktablett sind den künstlerischen<br />

Ambitionen kaum Grenzen gesetzt.<br />

MyPaint [1] gehört zur Kategorie<br />

der Malprogramme, die sich vom<br />

Konzept her von einer Bildbearbeitung<br />

wie etwa Gimp unterscheiden.<br />

Die Software spezialisiert<br />

sich auf das Zusammenspiel<br />

mit einem elektronischen Pinsel<br />

und bleibt in weiten Teilen darauf<br />

beschränkt. Viele der von Gimp<br />

her bekannten Funktionen fehlen<br />

in dieser Software daher. Selbst<br />

einfache Aktionen wie beispielsweise<br />

das freie Drehen oder Zuschneiden<br />

eines Bildes unterstützt<br />

MyPaint nicht. Dafür offeriert<br />

es aber eine große Anzahl<br />

spezieller Pinsel und Stifte.<br />

Während Gimp hauptsächlich<br />

beim Bearbeiten von Fotos und<br />

Grafiken zum Einsatz kommt,<br />

dient MyPaint zum Malen von<br />

Bildern. Eine Online-Galerie [2]<br />

zeigt, was begabte Künstler mit<br />

dem Programm schaffen. Das erfordert<br />

zwar nicht zwingend ein<br />

Grafiktablett, aber dessen Einsatz<br />

erscheint in vielen Szenarien<br />

sinnvoll. Die Werkzeuge sind direkt<br />

für diese Eingabegeräte ausgelegt<br />

und nutzen insbesondere<br />

die Informationen über den<br />

Druck der Stifte auf die Fläche,<br />

um die Striche zu modifizieren.<br />

Als Standardformat setzt<br />

MyPaint auf ORA (siehe Kasten<br />

OpenRaster). Auch Gimp unterstützt<br />

dieses Format, sowohl<br />

beim Laden als auch beim Speichern.<br />

Daher lassen sich mit<br />

MyPaint erstellte Bilder problemlos<br />

in Gimp laden, um die von<br />

MyPaint nicht bereitgestellten<br />

Funktionen zu nutzen und bei<br />

Bedarf im Anschluss mit MyPaint<br />

weiterzubearbeiten. MyPaint exportiert<br />

neben ORA als weitere<br />

Formate noch PNG und JPEG.<br />

Los geht’s<br />

Bisher findet sich die aktuelle<br />

Version MyPaint 1.0 noch nicht<br />

in den Repositories der gängigen<br />

Distributionen. Bei Ubuntu haben<br />

Sie allerdings die Möglichkeit,<br />

mit dem Y-PPA-Manager [3]<br />

eine Quelle zu finden. Die <strong>Web</strong>site<br />

führt weitere Quellen auf [4].<br />

MyPaint<br />

LU/mypaint/<br />

Das OpenRaster-Format ORA (Dateierweiterung: .ora)<br />

wurde als offenes Austauschformat für Bitmap-Grafiken entwickelt<br />

und steht damit quasi in Konkurrenz zum proprietären<br />

PSD-Format von Photoshop. Dabei bietet es einige interessante<br />

Möglichkeiten, die sich in Adobes proprietären<br />

Grafikformat dagegen nicht finden.<br />

So existiert beispielsweise eine vollständige, freie Dokumentation<br />

des Formats. Metadaten speichert ORA als<br />

XMP-, IPTC- oder EXIF-Tags, bei Bedarf für einzelne Ebenen<br />

OpenRaster<br />

getrennt. Es unterstützt außerdem Ebenen und Ebenengruppen,<br />

Ebenenmodi (das Verrechnen der Pixel zweier Ebenen)<br />

sowie Effekte bei Ebenen. Pfadinformationen, Paletten und<br />

Fonts lassen sich ebenso in der Datei ablegen wie Undo-<br />

Informationen.<br />

Programme, die ORA nutzen wollen, müssen nicht alle Features<br />

implementieren. Bisher unterstützen aber nur relativ<br />

wenige Applikationen das Format. Zu den bekanntesten<br />

zählt neben MyPaint und Gimp das KDE-Programm Krita.<br />

README<br />

MyPaint ist ein intuitiv<br />

einsetzbares Malprogramm.<br />

Speziell für den<br />

Einsatz mit Grafiktabletts<br />

konzipiert, verspricht<br />

die Software ein<br />

Zeichnen wie mit einem<br />

Stift oder Pinsel.<br />

www.linux-user.de<br />

08 | 12 55


praxis<br />

MyPaint<br />

1 Bei Bedarf docken<br />

Sie Dialoge am rechten<br />

Fensterrand an oder<br />

nutzen diese als eigenständige<br />

Fenster.<br />

Nach dem Start zeigt sich die<br />

Software spartanisch: Neben dem<br />

klassischen Menü gibt es nur<br />

noch eine Werkzeugleiste mit wenigen<br />

Buttons. Eine große Schaltfläche<br />

mit der Aufschrift MyPaint<br />

öffnet ein Menü, wie Sie es bei<br />

den meisten anderen Applikationen<br />

in einer Leiste finden. Darauf<br />

folgen die Schaltflächen für Undo<br />

beziehungsweise Redo. Weitere<br />

Buttons erlauben das direkte Ändern<br />

der Zeichenfarbe, des Pinseltyps<br />

sowie der Pinselspitze.<br />

Über die Schaltfläche mit dem<br />

Zahnrad rufen Sie einen Dialog<br />

auf, indem Sie die Parameter für<br />

das aktuelle Werkzeug bei Bedarf<br />

anpassen. Fast alle Aktionen<br />

steuern Sie bei MyPaint über den<br />

eingesetzten Pinsel und dessen<br />

Parameter. Diese hängen dabei im<br />

Wesentlichen vom Drucksensor<br />

im Stift des Grafiktabletts ab.<br />

Die Buttons im rechten Teil der<br />

Werkzeugleiste bieten ähnliche<br />

Funktionen, ein Klick ruft sie in<br />

einem eigenen Fenster auf. Die<br />

dort vorhandenen Dialoge verfügen<br />

über eine gestrichelte „Abreißkante“.<br />

Klicken Sie mit der<br />

Maus darauf, dockt die Software<br />

den entsprechenden Dialog am<br />

rechten Rand des Fensters an<br />

(Abbildung 1).<br />

Um mit dem Zeichnen zu beginnen,<br />

wählen Sie als Erstes einen<br />

Pinsel aus. Zunächst gilt es dabei,<br />

die unterschiedlichen Pinselvarianten<br />

kennenzulernen. Voreingestellt<br />

gibt es 35 klassische, mehr<br />

als 20 experimentelle und viele<br />

weitere, zu sogenannten „Sets“<br />

zusammengefasste Pinsel (Abbildung<br />

2). Darüber hinaus haben<br />

Sie die Möglichkeit, neue Pinsel<br />

selbst zu erzeugen [5] oder aus<br />

dem Internet zu laden [6].<br />

Nahezu alle Pinselmodi reagieren<br />

druckempfindlich. Meist<br />

steuert der Druck die Deckkraft<br />

der Striche, manchmal deren<br />

Breite, Form oder Farbe. Durch<br />

wiederholtes Übermalen erhöhen<br />

Sie die Deckkraft der Striche. Einige<br />

der experimentellen Pinsel,<br />

wie etwa DNA-brush oder particules_eraser,<br />

erzeugen Striche, die<br />

sich je nach Stiftbewegung ändern.<br />

Teilweise wertet die Software<br />

dazu neben der Geschwindigkeit<br />

noch die Richtung der Bewegung<br />

des Eingabegerätes aus.<br />

Wie es sich für ein interaktives<br />

Programm gehört, verfügt<br />

MyPaint über eine Undo- und<br />

Redo-Funktion. Über [Z] oder<br />

[Strg]+[Z] nehmen Sie die letzten<br />

Aktionen schrittweise zurück.<br />

Daher bietet es sich an, beim<br />

Zeichnen am besten einzelne,<br />

kurze Striche zu<br />

verwenden. Über [Y]<br />

heben Sie die letzte<br />

Undo-Aktion ganz einfach<br />

wieder auf.<br />

Farben wählen Sie<br />

entweder über den entsprechenden<br />

Dialog aus<br />

oder nehmen diese mit der Pipette<br />

aus dem Bild auf. Letzteres er-<br />

2 Der Brush List<br />

Editor enthält eine um-<br />

3 Die weitergehenden Einstellungen<br />

für Pinsel legen Sie im Brush<br />

Settings Editor fest.<br />

fangreiche Anzahl von<br />

Pinseln.<br />

56 08 | 12<br />

www.linux-user.de


MyPaint<br />

praxis<br />

weist sich in der Praxis als besonders<br />

interessant, da es schnell<br />

und einfach funktioniert. Über<br />

[R] aktivieren Sie die Pipette.<br />

Einstellungen<br />

Im Menü Bearbeiten unter Einstellungen<br />

konfigurieren Sie MyPaint.<br />

Besonders interessant sind dabei<br />

jene Dialoge, über die Sie den Tasten<br />

des Grafiktabletts und dessen<br />

Stift Funktionen zuweisen. Geübte<br />

Zeichner dürften das Umsetzen<br />

des Druckpunktes des Stiftes<br />

besonders interessant finden. Die<br />

Feineinstellungen für die Pinsel<br />

umfassen nahezu alle relevanten<br />

Aspekte (Abbildung 3). Für die<br />

einzelnen Parameter zeigt My-<br />

Paint eine Kurzhilfe, sobald Sie<br />

den Mauszeiger über einem Regler<br />

platzieren.<br />

[1] MyPaint: http:// mypaint. intilinux. com<br />

[2] Beispiele für Arbeiten mit MyPaint:<br />

info<br />

http:// mypaint. intilinux. com/ ? page_id=519<br />

[3] Y-PPA-Manager: Karsten Günther „Aus den<br />

Quellen“, LU 02/​2012, S. 68,<br />

http:// www. linux‐community. de/ 25220<br />

[4] MyPaint-Repositories: http:// wiki. mypaint.​<br />

info/ index. php? title=Packaging<br />

[5] Pinsel selbst erstellen:<br />

http:// mypaint. intilinux. com/ ? page_id=173<br />

[6] Pinsel laden: http:// wiki. mypaint. info/​<br />

Documentation/ Manual# Brush_Packs<br />

MyPaint unterstützt übrigens<br />

eine dynamische Tastenbindung.<br />

Das ermöglicht es, Menüpunkte<br />

über ein frei wählbares Tastenkürzel<br />

aufzurufen. Platzieren Sie<br />

dazu den Mauszeiger über dem<br />

entsprechenden Menüpunkt,<br />

ohne diesen anzuklicken, und<br />

drücken Sie die gewünschte Tastenkombination.<br />

Wer sein künstlerisches Talent<br />

nicht gleich auf die harte Probe<br />

stellen möchte, dem bietet die<br />

Software die Möglichkeit, zunächst<br />

einmal ein Bild abzuzeichnen.<br />

Dazu laden Sie eine Bitmap-<br />

Grafik und fügen darüber Ebenen<br />

ein: Das erlaubt ein Durchpausen.<br />

Im Ebenendock erzeugen Sie<br />

dazu durch Anklicken der Schaltfläche<br />

mit dem Pluszeichen eine<br />

neue Ebene (Abbildung 4).<br />

Fazit<br />

Dank des guten Supports für Grafiktabletts<br />

macht es Spaß, mit<br />

dem Programm herumzuspielen.<br />

Mit einer Maus als einzigem Eingabegerät<br />

bereitet MyPaint auf<br />

Dauer allerdings wenig Freude.<br />

Bei den Funktionen zum Malen<br />

bietet MyPaint einen anderen, intuitiveren<br />

Zugriff als Krita oder<br />

Gimp. Das ist zwar gewöhnungsbedürftig,<br />

bereitet aber keine großen<br />

Schwierigkeiten. (agr) n<br />

4 Über die Schaltfläche<br />

mit dem Pluszeichen<br />

unter dem Ebenendock<br />

erzeugen Sie<br />

eine neue Ebene.<br />

Einfach auf LinuX umstEigEn!<br />

DigiSub-Mini * : 2 digitale Ausgaben EasyLinux!<br />

5€<br />

ihRE VoRtEiLE<br />

❱<br />

FÜR 2 AUSGABEN<br />

EasyLinuX ist idEaL füR WindoWs-umstEigER<br />

❱ mit schRitt-füR-schRitt-anLEitungEn Zum ERfoLg<br />

❱<br />

2X tEstEn ohnE Risiko, das digisuB-mini<br />

ist JEdERZEit kündBaR!<br />

❱ nutZBaR auf notEBook und Pc,<br />

taBLEt odER smaRtPhonE!<br />

JEtZt gLEich BEstELLEn!<br />

n tel.: 07131 / 2707 274 n fax: 07131 / 2707 78 www.linux-user.de 601 n uRL: www.easylinux.de/abo 08 | 12 n E-mail: abo@easylinux.de 57<br />

*geht ohne Kündigung in ein digitales Jahresabo mit 4 Ausgaben pro Jahr über und ist jederzeit kündbar!


praxis<br />

Autokey<br />

Textbausteine einfügen und Aktionen automatisieren mit Autokey<br />

Wie von Geisterhand<br />

Autokey setzt wiederkehrende<br />

Phrasen automatisch in Texte ein<br />

und automatisiert obendrein auch beliebige<br />

andere Aufgaben, unabhängig von der gerade<br />

genutzten Anwendung. Tim Schürmann<br />

© Danil Chepko, 123RF<br />

README<br />

Autokey 0.90<br />

LU/autokey/<br />

Autokey ersetzt Textkürzel<br />

automatisch gegen<br />

vorgegebene Textbausteine<br />

und startet<br />

Python-Skripte schnell<br />

über selbst definierte<br />

Tastenkombinationen.<br />

Sie kennen sicher die praktische<br />

Autokorrekur von LibreOffice<br />

Writer: Es genügt, mfg einzutippen,<br />

und schon macht die Textverarbeitung<br />

daraus „Mit freundlichen<br />

Grüßen“. Dummerweise<br />

lassen sich diese Kürzel nur innerhalb<br />

der Office-Programme<br />

nutzen – das E-Mail-Programm<br />

weiß davon genauso wenig wie<br />

der Texteditor oder das Instant-<br />

Messaging-Programm.<br />

Universeller Helfer<br />

Hier springt das kleine Werkzeug<br />

Autokey [1] in die Bresche. Es beobachtet<br />

penibel alle Tastatureingaben.<br />

Kommt dabei ein Kürzel<br />

vor, das Autokey kennt, ersetzt es<br />

dieses automatisch gegen einen<br />

zuvor hinterlegten Textbaustein.<br />

Alternativ fügt eine frei wählbare<br />

Tastenkombination den Textbaustein<br />

ein. Das spart nicht nur<br />

Briefeschreibern Arbeit, sondern<br />

beispielsweise auch Programmierern,<br />

die sich so schnell ganze<br />

Codeblöcke in ihren Editor zaubern.<br />

Damit diese Automatik Sie<br />

auf Twitter oder in einem Terminalfenster<br />

nicht in den Wahnsinn<br />

treibt, beschränken Sie den Einsatz<br />

einfach auf eine bestimmte<br />

Anzahl an Programmen.<br />

Darüber hinaus bringt Autokey<br />

eine Art Makrorekorder mit, der<br />

auf Wunsch alle vorgenommenen<br />

Aktionen aufzeichnet. Autokey<br />

wiederholt sie dann später bei einem<br />

Druck auf Tastenkombination<br />

oder nach Eingabe eines speziellen<br />

Stichwortes. Auf diese Weise<br />

automatisieren Sie Abläufe.<br />

Noch komplexer<br />

Wem das immer noch nicht genügt,<br />

der kann sogar beliebige<br />

Python-Skripte einbinden. Die<br />

fügen beispielsweise das aktuelle<br />

Datum ein, stellen Datenbankanfragen<br />

oder füllen komplette Formulare<br />

aus. Das Aufsetzen solcher<br />

Skripte erfordert allerdings<br />

gute Python-Kenntnisse.<br />

Autokey selbst steht unter der<br />

GPLv3-Lizenz und besitzt eine<br />

komfortable Benutzeroberfläche,<br />

die das Anlegen von Skripten und<br />

Textbausteinen leicht macht.<br />

Mittlerweile hat Autokey den<br />

Weg in die Repository zumindest<br />

einiger der gängigen Distributionen<br />

gefunden – allerdings durchweg<br />

nur in veralteten Versionen.<br />

Zu Redaktionsschluss brachte<br />

Ubuntu 12.04 nur Autokey 0.71<br />

mit, während auf der Autokey-<br />

Homepage die Version 0.90 bereitstand.<br />

Immerhin gibt es ein<br />

Autokey-PPA für Ubuntu (siehe<br />

Kasten Autokey für Ubuntu).<br />

Autokey für Ubuntu<br />

Für Ubuntu gibt es immerhin ein eigenes<br />

Autokey-PPA. Dieses fügen<br />

Sie den Paketquellen in einem Terminalfenster<br />

durch folgende zwei<br />

Befehle hinzu:<br />

$ sudo add‐apt‐repository<br />

ppa:cdekter/ppa<br />

$ sudo apt‐get update<br />

Anschließend installieren Sie komfortabel<br />

über das Ubuntu Software-<br />

Center das Paket AutoKey (GTK).<br />

58 08 | 12<br />

www.linux-user.de


Autokey<br />

praxis<br />

In aller Regel gilt es jedoch, Autokey<br />

aus den Quellen selbst einzurichten.<br />

Dazu stellen Sie zunächst<br />

über den Paketmanager der verwendeten<br />

Distribution sicher,<br />

dass Python installiert ist. Hinzu<br />

kommen die Python-Module Xlib,<br />

Pyinotify, Qsci und – je nach Benutzeroberfläche<br />

– noch Python-<br />

Qt oder Python-GTK. Unter<br />

OpenSuse 12.1 steckt das Gesuchte<br />

in den Paketen python-gtk<br />

(beziehungsweise python-qt),<br />

python-xlib, python-pyinotify und<br />

python-qscintilla.<br />

Anschließend angeln Sie sich<br />

das aktuelle Autokey-Archiv von<br />

der Homepage, entpacken es auf<br />

der Festplatte, öffnen ein Terminalfenster,<br />

wechseln darin ins Autokey-Verzeichnis<br />

und rufen als<br />

Benutzer root den Befehl python<br />

setup.py install auf. Auf GTK-Systemen,<br />

wie unter Gnome oder<br />

Unity, startet Autokey dann via<br />

autokey‐gtk &, unter KDE hingegen<br />

mit autokey‐qt &<br />

Nun sollten Sie einen Blick an<br />

den oberen beziehungsweise unteren<br />

Bildschirmrand werfen:<br />

Dort verankert sich Autokey mit<br />

einem kleinen Symbol im Panel.<br />

Je nach Desktop-Umgebung<br />

reicht es eventuell schon aus, dieses<br />

Icon einmal anzuklicken.<br />

Klappt dann hingegen ein Menü<br />

aus, wählen Sie dort Show Main<br />

Window. Damit erscheint dann in<br />

jedem Fall das Autokey-Hauptfenster<br />

(Abbildung A).<br />

Anlageberatung<br />

Eine Liste am linken Rand des<br />

Autokey-Fensters führt alle vorhandenen<br />

Textbausteine und<br />

Skripte auf. Um auch bei sehr vielen<br />

Einträgen den Überblick zu<br />

wahren, gruppiert Autokey sie in<br />

Ordnern. In My Phrases stecken<br />

beispielsweise ein paar mitgebrachte<br />

Textbausteine, unter<br />

Sample Scripts eine Handvoll Beispiel-Skripte.<br />

Analog könnten Sie<br />

beispielsweise alle in Briefen verwendeten<br />

Textbausteine in einem<br />

neuen Ordner sammeln. Um einen<br />

solchen anzulegen, klicken<br />

Sie auf Neu<br />

beziehungsweise<br />

New in<br />

der Symbolleiste<br />

und<br />

wählen dann<br />

Folder.<br />

Da die Ordner<br />

für die<br />

Textbausteine<br />

tatsächlich<br />

den Inhalt<br />

echter Verzeichnisse<br />

auf der Festplatte widerspiegeln,<br />

müssen Sie daher jetzt für den<br />

neuen Ordner irgendwo in Ihrem<br />

Heimatverzeichnis ein passendes<br />

Plätzchen finden. Unter Umständen<br />

offeriert Autokey, den neuen<br />

Ordner in seinem Standardverzeichnis<br />

anzulegen. Das wiederum<br />

finden Sie unter ~/.config/autokey/data/.<br />

Lehnen Sie das Angebot<br />

mit Create Elsewhere ab, können<br />

Sie den Ordner an beliebiger<br />

Stelle selbst anlegen.<br />

Es empfiehlt sich dabei, alle Autokey-Ordner<br />

in einem gemeinsamen<br />

Verzeichnis zu sammeln:<br />

Das erleichtert zum einen die<br />

Übersicht, zum anderen das spätere<br />

Backup. Textbausteine für<br />

Briefe könnten Sie beispielsweise<br />

in ~/Dokumente/Briefe/ ablegen.<br />

Dazu steuern Sie in der GTK-Fassung<br />

von Autokey das Verzeichnis<br />

Dokumente an, tippen unter Name<br />

die Briefe ein und klicken auf OK.<br />

Unter KDE legen Sie in Dokumente<br />

über die rechte Maustaste das<br />

Verzeichnis Briefe an, stellen sicher,<br />

dass dessen kompletter Pfad<br />

im Eingabefeld ganz unten steht,<br />

und klicken auf OK.<br />

Ablageorte<br />

Im Hauptfenster finden Sie jetzt<br />

auf der linken Seite den neuen<br />

Ordner. Wo auf der Festplatte er<br />

liegt, prüfen Sie gegebenenfalls<br />

durch Anzeigen der Folder Settings.<br />

Stimmt die Verknüpfung<br />

nicht, wählen Sie den Ordner in<br />

der Liste auf der linken Seite an<br />

und klicken in der Symbolleiste<br />

auf Delete (oder wählen Edit | Delete<br />

Item). Doch Vorsicht: Autokey<br />

löscht dann das komplette Unterverzeichnis<br />

auf der Festplatte<br />

samt aller Inhalte.<br />

Um im Ordner Briefe jetzt einen<br />

neuen Textbaustein anzulegen,<br />

stellen Sie sicher, dass der Ordner<br />

links in der Liste markiert ist, klicken<br />

Sie auf Neu beziehungsweise<br />

New in der Symbolleiste und entscheiden<br />

Sie sich für die Phrase.<br />

B Autokey speichert jeden Textbaustein und jedes Skript in einer ganz normalen<br />

Textdatei. Wie die heißt, und wo sie liegt, verrät der Link rechts oberhalb<br />

des großen Eingabefeldes.<br />

A Das Hauptfenster<br />

von Autokey in der<br />

GTK-Variante (hier unter<br />

Unity) unterscheidet<br />

sich von der Qt-Variante<br />

nur in Details.<br />

www.linux-user.de<br />

08 | 12 59


praxis<br />

Autokey<br />

C Hier wurde die<br />

Tastenkombination<br />

[Strg]+[Alt]+[U] gewählt.<br />

Sie sollten sich<br />

möglichst für Tastenkombinationen<br />

entscheiden,<br />

die nicht anderweitig<br />

vom System<br />

belegt sind.<br />

D Hier wird gerade<br />

einem komplexeren<br />

Textbaustein das Kürzel<br />

mfg zugewiesen.<br />

Dem neuen Textbaustein geben<br />

Sie nun einen Namen, wie etwa<br />

Gruß. In der GTK-Version erscheint<br />

zu diesem Zweck ein neues<br />

Fenster, unter KDE tippen Sie<br />

einfach direkt drauflos.<br />

In jedem Fall taucht der neue<br />

Textbaustein links in der Liste<br />

unterhalb des Ordners Briefe auf.<br />

Vergewissern Sie sich, dass dort<br />

wie in Abbildung B, vorherige<br />

Seite, angewählt ist. Ins große<br />

Eingabefeld auf der rechten Seite<br />

tippen Sie den gewünschten Text<br />

ein – im Beispiel also etwa Mit<br />

freundlichen Grüßen,. Dabei überschreiben<br />

Sie einfach das vorgegebene<br />

Enter Phrase Content.<br />

Falls Sie Always prompt before<br />

pasting this phrase abhaken, fragt<br />

Autokey später immer noch einmal<br />

kurz nach, bevor es den Text<br />

tatsächlich einsetzt. Da das wiederum<br />

den Arbeitsfluss hemmt,<br />

sollten Sie die Funktion nur bei<br />

selten verwendeten Textbausteinen<br />

aktivieren.<br />

Am Drücker<br />

Wenn Sie den Gruß zukünftig mit<br />

einer Tastenkombination einfügen<br />

wollen, klicken Sie auf Set neben<br />

Hotkey. Es erscheint jetzt das<br />

kleine Fenster aus Abbildung C.<br />

dort aktivieren Sie Press to Set<br />

und drücken dann die gewünschte<br />

Tastenkombination. Nach einem<br />

Klick auf OK erscheint sie<br />

auch noch einmal rechts unten im<br />

Hauptfenster. Dort können Sie<br />

sie mit der danebenstehenden<br />

Schaltfläche<br />

Clear beziehungsweise<br />

Leeren jederzeit<br />

wieder aufheben.<br />

Speichern Sie jetzt<br />

alle Änderungen über<br />

Save, öffnen Sie einen Texteditor<br />

und drücken Sie probeweise die<br />

Tastenkombination. Die Grußformel<br />

sollte nun direkt an der Einfügemarke<br />

erscheinen. Passiert<br />

nichts, weisen Sie die Tastenkombination<br />

noch einmal neu zu –<br />

insbesondere unter KDE klemmt<br />

manchmal die Übernahme.<br />

Soll Autokey ein eingetipptes<br />

Kürzel automatisch durch den<br />

Gruß ersetzen, klicken Sie auf das<br />

Set neben Abbreviations. Es erscheint<br />

jetzt das Fenster aus Abbildung<br />

D. Wie die Liste linkerhand<br />

schon erahnen lässt, dürfen<br />

Sie für einen Textbaustein gleich<br />

mehrere Kürzel hinterlegen. Um<br />

ein neues anzumelden, klicken<br />

Sie auf Hinzufügen beziehungsweise<br />

das grüne Pluszeichen. Tippen<br />

Sie jetzt das entsprechende<br />

Kürzel ein, wie etwa mfg, und<br />

drücken Sie die Eingabetaste.<br />

Auf der rechten Seite können<br />

Sie noch festlegen, wie und in<br />

welchen Situationen Autokey das<br />

Kürzel ersetzen soll. Der Haken<br />

vor Removed typed abbreviation<br />

sorgt dafür, dass Autokey das eingegebene<br />

mfg entfernt und an seiner<br />

Stelle den Textbaustein einsetzt<br />

– also genau das Richtige für<br />

den Gruß. Interessant ist auch<br />

noch Ignore case of typed abbreviation:<br />

Aktiviert sorgt es dafür, dass<br />

die Groß- und Kleinschreibung<br />

des Kürzels keine Rolle spielt, Sie<br />

also sowohl mFG, als auch Mfg eintippen<br />

können. Wenn Sie einen<br />

Haken vor Match phrase case to typed<br />

abbreviation setzen, überträgt<br />

Autokey die Groß- und Kleinschreibung<br />

des Kürzels auf den<br />

Textbaustein. Aus einem mfg wird<br />

dann ein „mit freundlichen grüßen“,<br />

aus einem MfG hingegen<br />

„Mit freundlichen Grüßen“.<br />

Bei einem Haken vor Show in notification<br />

menu stellt Autokey den<br />

Textbaustein zusätzlich in dem<br />

kleinen Panelmenü bereit (siehe<br />

Abschnitt „Gut versteckt“). Dort<br />

genügt dann ein Mausklick auf<br />

den entsprechenden Eintrag, um<br />

den Textbaustein an der aktuellen<br />

Stelle im Text einzufügen.<br />

Für das Beispiel belassen Sie die<br />

Einstellungen wie in Abbildung D<br />

gezeigt und bestätigen mit OK.<br />

Dann speichern Sie die Änderungen<br />

via Save, wechseln zum Texteditor<br />

und tippen dort mfg ein, gefolgt<br />

von einem Leerzeichen. Autokey<br />

sollte das Kürzel jetzt umgehend<br />

durch den Gruß ersetzen.<br />

Ignorant<br />

Die Ersetzungsautomatik greift<br />

grundsätzlich in allen Fenstern.<br />

Wenn Sie etwa jetzt in einem Terminal<br />

mfg eintippen, dann ersetzt<br />

Autokey es auch dort sofort gegen<br />

„Mit freundlichen Grüßen“.<br />

Um das zu verhindern, klicken Sie<br />

im Autokey-Hauptfenster auf Set<br />

rechts neben Windows Filter. Im<br />

neuen Fenster geben Sie jetzt einen<br />

sogenannten regulären Ausdruck<br />

[2] ein, der die Namen aller<br />

zu berücksichtigender Fenstertitel<br />

beschreibt.<br />

Sofern Sie den Textbaustein nur<br />

auf eine einzelne Anwendung beschränken<br />

möchten, wie etwa den<br />

Editor Gedit, können Sie auch auf<br />

Detect Window Properties klicken,<br />

dann per [Strg]+[Tab] zum geöffneten<br />

Editor-Fenster wechseln<br />

und dessen Titelleiste anklicken.<br />

Im neu erscheinenden Fenster<br />

aus Abbildung E achten Sie darauf,<br />

dass es unter Window Class<br />

die korrekte Anwendung aufführt,<br />

und schließen dann alle<br />

noch offenen Fenster mit OK. Die<br />

so festgelegte Einschränkung he-<br />

60 08 | 12<br />

www.linux-user.de


Autokey<br />

praxis<br />

ben Sie später jederzeit<br />

mit Clear beziehungsweise<br />

Leeren<br />

rechts neben Window<br />

Filter wieder auf.<br />

Datum eingeben<br />

Recht häufig muss<br />

man das aktuelle Datum<br />

in einen Text einfügen.<br />

Die starren<br />

Textbausteine helfen<br />

an dieser Stelle allerdings<br />

nicht weiter.<br />

Glücklicherweise kann<br />

Autokey auch beliebige Python-<br />

Skripte ausführen. Ein paar vorgefertigte<br />

Beispiele bringt das<br />

Programm im Ordner Sample<br />

Scripts mit. Wenn Sie diesen mit<br />

einem Klick auf das kleine vorangestellte<br />

Dreieck öffnen, springt<br />

Ihnen auch Insert Date entgegen,<br />

welches das aktuelle Datum ausspuckt.<br />

Wählen Sie es aus, dürften<br />

Ihnen die Einstellungen im<br />

rechten unteren Bereich bekannt<br />

vorkommen: Autokey kann auch<br />

ein Skript mit einer Tastenkombination<br />

oder bei der Eingabe eines<br />

Kürzels starten. Beides legen Sie<br />

genauso fest wie bei den Textbausteinen<br />

(Abbildung F).<br />

Wiederkehrende Aktionen<br />

zeichnet der eingebaute Recorder<br />

auf. Er notiert sich einfach solange<br />

alle Tastatureingaben und<br />

Mausbewegungen, bis Sie die Aufzeichnung<br />

stoppen. Die dabei<br />

protokollierten Aktionen landen<br />

dann in einem Skript. Um den<br />

Recorder aufzurufen, markieren<br />

Sie zunächst einen Ordner, erzeugen<br />

dort über New | Script ein<br />

neues Skript, markieren es und<br />

rufen dann Tools | Record keyboard<br />

/ mouse respektive Tools |<br />

Record script auf.<br />

Im neuen Fenster legen Sie fest,<br />

ob der Recorder sowohl Tastatureingaben<br />

(Record keyboard<br />

events) als auch Mausaktionen<br />

(Record mouse events) aufzeichnen<br />

soll. Nach wie vielen Sekunden er<br />

damit beginnt, bestimmt die Zahl<br />

darunter. Um die Aufnahme zu<br />

stoppen, wählen Sie erneut<br />

Tools | Record keyboard / mouse<br />

beziehungsweise Tools | Record<br />

Script. Sofern Sie sich mit Python<br />

auskennen, können Sie jetzt noch<br />

im großen Eingabefeld rechts<br />

oben die Befehle nachbearbeiten<br />

oder ergänzen.<br />

Gut versteckt<br />

Wenn Sie das Hauptfenster<br />

schließen, verkrümelt sich Autokey<br />

wie bereits eingangs erwähnt<br />

in das Panel beziehungsweise die<br />

Kontrollleiste (Abbildung G). Dabei<br />

bleibt das Programm im Hintergrund<br />

aktiv, die Tastenkombinationen<br />

und Kürzel funktionieren<br />

weiterhin. Um Autokey komplett<br />

zu beenden, müssen Sie sein<br />

Symbol anklicken und dann aus<br />

dem Kontextmenü Beenden beziehungsweise<br />

Quit wählen. Unter<br />

KDE erscheint das Menü nur,<br />

wenn Sie das Symbol mit der<br />

rechten Maustaste anklicken.<br />

einem<br />

unübersichtlichen<br />

und<br />

lückenhaften<br />

Wiki [3].<br />

Zudem hat der Entwickler angekündigt,<br />

keine neuen Funktionen<br />

mehr in Autokey aufzunehmen,<br />

sondern nur noch Fehler in der<br />

Software zu beheben.<br />

Nichtsdestotrotz finden insbesondere<br />

Vielschreiber in Autokey<br />

einen idealen Partner. Das kleine<br />

Programm überträgt das praktische<br />

Prinzip der Autokorrektur<br />

aus LibreOffice in alle anderen<br />

Anwendungen. Darüber hinaus<br />

automatisiert es wiederkehrende<br />

und stupide Abläufe auf dem<br />

Computer auf angenehme Weise.<br />

Der Recorder hilft dabei allerdings<br />

nur eingeschränkt: Um die<br />

komplexeren Aktionen zu automatisieren,<br />

benötigen Sie zwingend<br />

Python-Kenntnisse. Einige<br />

von Benutzern erstellte, aber nur<br />

in Spezialfällen brauchbare Skripte<br />

finden Sie auf der Autokey-<br />

<strong>Web</strong>seite [4]. (jlu) n<br />

[1] Autokey:<br />

http:// code. google. com/ p/ autokey/<br />

[2] Regular Expressions: Frank Hofmann,<br />

„Schnipseljagd“, LU 09/​2011, S. 84,<br />

info<br />

F In diesem Fall<br />

startet Autokey beim<br />

Druck auf<br />

[Strg]+[Alt]+[D] das<br />

Skript Insert Date, das<br />

wiederum an der momentanen<br />

Position im<br />

Text das aktuelle Datum<br />

einfügt.<br />

G Nach dem Schließen<br />

erinnert an Autokey<br />

nur noch ein Symbol<br />

im Panel beziehungsweise<br />

der Kontrollleiste,<br />

über das man<br />

ein kleines Kontextmenü<br />

erreicht.<br />

E In diesem Fall würde Autokey die<br />

Ersetzungen ausschließlich im Editor<br />

Gedit anwenden.<br />

Fazit<br />

Ärgerlicherweise ist Autokey äußerst<br />

schlecht dokumentiert, das<br />

Handbuch besteht derzeit nur aus<br />

http:// www. linux‐community. de/ 24091<br />

[3] Dokumentation:<br />

http:// code. google. com/ p/ autokey/ w/ list<br />

[4] Spezielle Skripts: http:// code. google. com/​<br />

p/ autokey/ wiki/ ContributedScripts<br />

www.linux-user.de<br />

08 | 12 61


praxis<br />

Byobu<br />

Byobu als Sitzungsmanager für die Konsole<br />

Fensterbauer<br />

Der Sitzungsmanager Byobu erweitert die Shell um zahlreiche nützliche Funktionen: So teilt er auf Wunsch<br />

den Bildschirm, lässt Programme im Hintergrund weiterlaufen oder organisiert sie in Tabs. Florian Effenberger<br />

Byobu 5.18<br />

LU/byobu/<br />

Wer in der Wikipedia nach „Byobu“<br />

sucht, findet einen Artikel zu<br />

japanischen Wandschirmen. Das<br />

gleichnamige Linux-Tool [1] ist<br />

zwar nicht so dekorativ, aber<br />

doch ähnlich vielseitig und praktisch<br />

wie das Pendant aus dem<br />

fernen Osten. Es versteht sich als<br />

Erweiterung von Screen und findet<br />

sich in den Repositories der<br />

meisten Distributionen. Auf unserem<br />

Testsystem unter Linux<br />

Mint 12 genügte ein sudo apt‐get<br />

install byobu, um das Paket zu<br />

installieren.<br />

Je nach Distribution<br />

startet Byobu<br />

fortan automatisch<br />

für jeden Benutzer<br />

oder nur<br />

auf Wunsch – Letzteres<br />

auch bei Linux Mint. Möchten<br />

Sie das Tool erst einmal ausprobieren,<br />

rufen Sie es in der<br />

Bash per byobu auf. Gefällt die<br />

neue Umgebung, dann bearbeiten<br />

Sie über den entsprechenden Eintrag<br />

in byobu‐config – beziehungsweise<br />

über das Konfigurationsmenü<br />

([F9]) – die Datei .profile<br />

im Homeverzeichnis, sodass Byobu<br />

künftig bei jedem Login automatisch<br />

startet.<br />

Um Byobu zum Standard für<br />

alle Benutzer zu machen, nutzen<br />

Sie auf Debian-basierten Systemen<br />

die Konfiguration unter<br />

sudo dpkg‐reconfigure<br />

byobu. Falls sich einzelne<br />

Anwender nicht mit dem<br />

Programm anfreunden<br />

können, deaktivieren diese<br />

es dann individuell durch Anlegen<br />

einer leeren Datei mittels<br />

touch<br />

~/.byobu/<br />

disable‐autolaunch beziehungsweise<br />

im schon erwähnten Konfigurationsmenü.<br />

Alternativ stehen<br />

auch die beiden Tools byobu‐enable<br />

und byobu‐disable zur Verfügung.<br />

Guter Ausblick<br />

Doch egal, wie Sie Byobu letztendlich<br />

starten, es blendet am<br />

unteren Bildschirmrand zwei Zeilen<br />

ein, in denen es die wichtigsten<br />

Systeminformationen zusammenfasst<br />

(Abbildung A). In der<br />

ersten Zeile links listet es die Sitzungen<br />

auf, ähnlich den Tabs im<br />

Browser, wobei es anfangs nur<br />

eine einzige Instanz mit dem Namen<br />

der aktuellen Shell startet.<br />

Mit einem Druck auf [F2] öffnen<br />

Sie ein neues Fenster und navigieren<br />

mittels [F3] und [F4]<br />

nach links beziehungsweise<br />

rechts durch die verfügbaren Einträge.<br />

Diese sind aufsteigend<br />

nummeriert und lassen sich der<br />

README<br />

X11-Anwender haben die Wahl zwischen<br />

verschiedenen Sitzungs- und Fenstermanagern,<br />

die Konsole dagegen ist eher<br />

spartanisch ausgestattet. Byobu ergänzt<br />

die Kommandozeile um zahlreiche<br />

Funktionen, insbesondere SSH-Benutzer<br />

lernen es schnell zu schätzen.<br />

© Sergey Ilin, 123RF<br />

62<br />

08 | 12<br />

www.linux-user.de


Byobu<br />

praxis<br />

Übersicht halber durch einen<br />

Druck auf [F8] beliebig umbenennen.<br />

In Abbildung A stehen die<br />

Bezeichnungen Shell, htop, iotop<br />

und lynx für die dort gestarteten<br />

Programme – wer viel mit SSH-<br />

Verbindungen zu entfernten Servern<br />

arbeitet, trägt praktischerweise<br />

deren Namen dort ein.<br />

In der rechten Hälfte erscheinen<br />

der aktuelle Benutzername (floeff),<br />

der Name des Systems (floeffbook)<br />

sowie dessen IP-Adresse<br />

(192.168.0.11). Am Schluss folgt<br />

ein Hinweis auf<br />

das Konfigurationsmenü,<br />

das Sie<br />

mit [F9] öffnen –<br />

doch dazu später mehr. In der<br />

zweiten Zeile blendet Byobu die<br />

aktuelle Linux-Distribution ein,<br />

mit stilisiertem Logo voran. Während<br />

Byobu allerdings unter<br />

Ubuntu auch die genaue Version<br />

(11.04 in Abbildung B) anzeigt,<br />

fehlt dieser Hinweis bei Linux<br />

Mint gänzlich. Zudem erscheinen<br />

die Informationen bei jedem<br />

Logon. Interessanter ist da die Information<br />

zum aktuellen Datentransfer<br />

(^552kbps v496kbps in<br />

Abbildung B), die freilich nur<br />

dann erscheint, wenn der Rechner<br />

gerade größere Datenmengen<br />

überträgt. Gleiches gilt für die<br />

Hinweise auf notwendige Reboots<br />

mittels (R) und zur Anzahl<br />

verfügbarer Paket-Updates mit<br />

11!. Ebenso nützlich ist die Anzahl<br />

der aktuell angemeldeten Benutzer<br />

(#1), die Uptime des Systems<br />

(113d22h in Abbildung B),<br />

sofern vorhanden der Status der<br />

Batterie (|=| steht für geladen,<br />

eine Prozentanzeige gibt Auskunft<br />

über den Ladestand) sowie<br />

die Geschwindigkeit und Qualität<br />

der entsprechenden WLAN-Verbindung<br />

(54Mbps,91%). Schlussendlich<br />

macht Byobu noch Angaben<br />

zur aktuellen Systemlast<br />

(0.24, der Zahl der CPU-Kerne sowie<br />

deren aktueller Geschwindigkeit<br />

(16x1.6GHz) und liefert Details<br />

zum verfügbaren RAM und<br />

dessen Ausnutzung (2.0GB,18%).<br />

Das aktuelle Datum nebst Uhrzeit<br />

rundet die zweite Statuszeile ab.<br />

In der Regel aktualisieren sich alle<br />

Angaben automatisch, ein manuelles<br />

Nachladen erzwingt ein<br />

Druck auf [F5].<br />

Anpassungsfähig<br />

Was Byobu in der Statusleiste anzeigt,<br />

passen Sie bei Bedarf über<br />

das eingangs schon erwähnte<br />

Konfigurationsmenü (Abbildung<br />

C) an, das Sie entweder<br />

durch einen Druck auf [F9] oder<br />

das separate Programm byobu‐config<br />

aufrufen. Neben dem Farbschema<br />

für die Statuszeile definieren<br />

Sie dort auch deren Inhalt<br />

(Abbildung D, folgende Seite).<br />

Wer beispielsweise weiß, welche<br />

Distribution er einsetzt, und ohnehin<br />

stets die Uhr im Blick hat,<br />

der wird sich über den gewonnenen<br />

Platz freuen und nutzt ihn<br />

beispielsweise für die Anzeige der<br />

CPU-Temperatur und Festplattengeschwindigkeit.<br />

Die genaue<br />

Anzeigeposition der einzelnen<br />

Elemente können Sie zwar nicht<br />

verändern, aber Byobu achtet von<br />

sich aus darauf, den zur Verfügung<br />

stehenden Platz optimal<br />

auszunutzen. Finden Sie die Statusanzeige<br />

in der zweiten Zeile<br />

generell überflüssig, dann deaktivieren<br />

Sie diese einfach mit<br />

byobu‐quiet. Um die Informationen<br />

später wieder hervorzuholen,<br />

rufen Sie byobu‐quiet ‐‐undo auf.<br />

Fühlen Sie sich gar von allen Byobu-Anzeigen<br />

genervt, schalten Sie<br />

sie mit byobu‐silent ab. Auch hier<br />

funktioniert ein späteres byobu‐silent<br />

‐‐undo. Auf manchen<br />

Systemen funktionieren die Tastenkombinationen<br />

nicht ganz im<br />

Sinne des Erfinders: Unter Mac<br />

OS X beispielsweise ruft [F8] die<br />

betriebssystem eigene Exposé-<br />

Funktion auf. Daher bietet das<br />

Konfigurationsmenü auch die<br />

Möglichkeit, Byobu auf die Nutzung<br />

von Escape-Folgen umzustellen.<br />

Diese rufen Sie standardmäßig<br />

mit [Strg]+[A] auf, was<br />

sich bei Bedarf jedoch ebenfalls<br />

per Menü ändern lässt.<br />

Praktisch ist zudem die Möglichkeit,<br />

neue Sitzungen zu erstellen<br />

und diese zu den sogenannten<br />

Standardfenstern zu nehmen. Rufen<br />

Sie bei jedem Login mutt für<br />

die Mailbearbeitung und htop zur<br />

Anzeige der Systemlast auf, fügen<br />

Sie die beiden einfach dort hinzu.<br />

Fortan öffnet Byobu das Duo bei<br />

jedem Start automatisch.<br />

A Byobu zeigt standardmäßig<br />

verschiedene<br />

Statusmeldungen<br />

an, hier per SSH vom<br />

Mac aus.<br />

B Je nach System und<br />

dessen Zustand blendet<br />

Byobu nur bestimmte<br />

Felder ein.<br />

C Das Aussehen<br />

und das Verhalten von<br />

Byobu passen Sie ganz<br />

an die eigenen Bedürfnisse<br />

an.<br />

www.linux-user.de<br />

08 | 12 63


praxis<br />

Byobu<br />

D Zur Wahl stehen<br />

Der Autor<br />

zahlreiche Statusanzeigen,<br />

die<br />

Informationen zum<br />

System geben.<br />

Florian Effenberger<br />

engagiert sich seit<br />

vielen Jahren ehrenamtlich<br />

für freie<br />

Software. Er ist<br />

Chairman of the<br />

Board der Document<br />

Foundation<br />

und war zuvor fast<br />

sieben Jahre im<br />

Projekt OpenOffice.<br />

org aktiv. Nebenbei<br />

schreibt er regelmäßig<br />

für Fachpublikationen.<br />

Benötigen Sie<br />

mehr Informationen<br />

auf einen<br />

Blick, erweist sich<br />

Byobu ebenfalls<br />

als Mittel der<br />

Wahl: Statt die<br />

Fenster artig nebeneinander<br />

in<br />

Tabs anzuzeigen,<br />

beherrscht es<br />

auch den sogenannten<br />

Split-<br />

Screen, also das horizontale oder<br />

vertikale Teilen des Bildschirms.<br />

Die Split-Screen-Funktion eignet<br />

sich hervorragend, um Htop und<br />

Iotop nebeneinander anzuzeigen<br />

– oder auch, um zwei Editorfenster<br />

parallel zu öffnen.<br />

Öffnen Sie dazu zwei Sitzungen<br />

und drücken Sie [Umschalt]+[F2],<br />

um diese horizontal nebeneinander<br />

anzuzeigen, respektive [Strg]+<br />

[F2], um sie vertikal anzuordnen<br />

(Abbildung E). Zwischen den so<br />

geteilten Fenstern springen Sie<br />

mit [Umschalt]+[F4] und [Umschalt]+[F3]<br />

vor beziehungsweise<br />

zurück. Um die Inhalte wieder in<br />

eigene Tabs zu verfrachten, genügt<br />

ein kurzer Druck auf [Umschalt]+[F5].<br />

Schaufenster<br />

Eine der praktischsten Funktionen<br />

von Byobu stellt die Fähigkeit<br />

dar, Programme im Hintergrund<br />

weiterlaufen zu lassen, wenn Sie<br />

das Terminal schließen – etwa für<br />

via SSH auf einem Remote-Rechner<br />

gestartete Prozesse. Die Sitzung<br />

läuft dann im sogenannten<br />

Detached-Mode weiter, und Sie<br />

können sich jederzeit wieder damit<br />

verbinden. Die beste Variante,<br />

um Byobu kontrolliert in den<br />

Hintergrund zu schieben, stellt<br />

ein Druck auf [F6] dar, aber auch<br />

das bloße Schließen des Terminalfensters<br />

funktioniert. Zwar<br />

ginge das Ganze theoretisch mit<br />

Screen, doch Byobu hat den unschätzbaren<br />

Vorteil, dass es automatisch<br />

startet, während Sie<br />

Screen meist dann vergessen aufzurufen,<br />

wenn Sie es benötigen.<br />

Selbst, wenn die Verbindung<br />

eine Weile verloren geht, müssen<br />

Sie keine Angst haben, wichtige<br />

Meldungen zu übersehen: Byobu<br />

wartet mit einer integrierten Historie<br />

auf. Drücken Sie zu einem<br />

beliebigen Zeitpunkt auf [F7],<br />

friert das Tool den aktuellen Bildschirminhalt<br />

ein, ohne das laufende<br />

Programm dabei zu beenden.<br />

Nun können Sie mit den<br />

Pfeiltasten durch die Anzeigen<br />

navigieren und bei Bedarf sogar<br />

seitenweise per [Bild auf] und<br />

[Bild ab] scrollen.<br />

Um auch bei umfangreichen<br />

Historien den Überblick zu wahren,<br />

gibt es zudem eine Suchfunktion.<br />

Um ab der aktuellen Cursorposition<br />

vorwärts zu suchen, drücken<br />

Sie [Umschalt]+[ 7 ] („/​“),<br />

für die Suche rückwärts dagegen<br />

[Umschalt]+[ß] („?“). Zwischen<br />

den einzelnen Treffern navigieren<br />

Sie mittels [N].<br />

Haben Sie die Historie zur Genüge<br />

durchwandert und gesichtet,<br />

kehren Sie mittels [Esc] wieder<br />

zur laufenden Sitzung zurück.<br />

Spiegel-Reflex<br />

Byobu ist dann nützlich, wenn Sie<br />

auf mehreren Geräten gleichzeitig<br />

arbeiten, denn die Sitzung steht<br />

allen Anmeldungen eines Benutzers<br />

zur Verfügung. Damit nehmen<br />

Sie das Editorfenster vom<br />

Desktop aufs Notebook mit – Sie<br />

öffnen es in Byobu und melden<br />

sich dann mit dem Notebook zusätzlich<br />

an. Byobu synchronisiert<br />

die Anzeige auf beiden Systemen,<br />

auch Tastatureingaben sind hier<br />

wie da möglich.<br />

Dieses Verfahren nutzen Teams,<br />

die gemeinsam in einer Sitzung<br />

arbeiten wollen, oder Dozenten<br />

bei Schulungen: Melden sich alle<br />

Anwender mit demselben Benutzerkonto<br />

an, kann jeder Teilnehmer<br />

die Arbeitsschritte auf diesem<br />

Weg „live“ nachvollziehen.<br />

Fazit<br />

Byobu ist ein praktischer Helfer<br />

für alle, die regelmäßig mit der<br />

Konsole arbeiten. Neben den hier<br />

erwähnten Funktionen bietet es<br />

weitere Möglichkeiten: So lassen<br />

sich die Statusanzeigen per Konfigurationsdatei<br />

individuell anpassen,<br />

verschiedene Programm-<br />

Backends auswählen, der Inhalt<br />

der Historie in eine Zwischenablage<br />

kopieren und eigene Statusanzeigen<br />

programmieren. Auch<br />

vorgefertigte Fensterlisten, auf<br />

die Sie direkt zugreifen können,<br />

unterstützt das Tool. Möchten Sie<br />

sich näher damit befassen, empfiehlt<br />

sich neben der Lektüre der<br />

Byobu-Manpage [2] ein Blick in<br />

die Screen-Anleitung [3]. (jlu) n<br />

info<br />

[1] Byobu: https:// launchpad. net/ byobu<br />

[2] Byobu-Manpage:<br />

E Dank der Split-<br />

http:// manpages. ubuntu. com/ manpages/​<br />

Screen-Funktion<br />

precise/ en/ man1/ byobu. 1. html<br />

haben Sie auch bei<br />

[3] Screen-Manpage:<br />

mehreren Program-<br />

http:// manpages. ubuntu. com/ manpages/​<br />

men alles im Blick.<br />

precise/ en/ man1/ screen. 1. html<br />

64 08 | 12<br />

www.linux-user.de


Android User im Abo<br />

Die Monatszeitschrift für Android-Fans, Smartphone- und Tablet-Nutzer<br />

Neu mit Prämie!<br />

15% sparen beim Print- oder<br />

Digital-Abo und exklusive<br />

Prämie sichern!<br />

SoftMaker Office über Google Play erhältlich, Freischaltung erfolgt per<br />

Gutscheincode. Angebot gilt solange der Vorrat reicht, Tablet und<br />

Smartphone sind nicht Bestandteil der Prämie!<br />

Jetzt bestellen!<br />

www.android–user.de/abo<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de


praxis<br />

ImageMagick<br />

Bildbearbeitung mit ImageMagick<br />

Bilder<br />

im Griff<br />

Wer nicht unzählige Urlaubsbilder von Hand skalieren, normieren,<br />

beschneiden oder mit Wasserzeichen versehen möchte, für den führt kein<br />

Weg an der Werkzeugsammlung ImageMagick vorbei. Thomas Drilling<br />

© Altomedia, 123RF<br />

README<br />

Bildbearbeitung auf der<br />

Kommandozeile – das<br />

klingt umständlich, erweist<br />

sich aber als extrem<br />

leistungsfähig und<br />

zudem alternativlos,<br />

wenn es um Stapelverarbeitung<br />

geht. Die Grafikwerkzeuge<br />

der Image-<br />

Magick-Suite eröffnen<br />

hier im Zusammenspiel<br />

mit der Shell weitreichende<br />

Möglichkeiten.<br />

ImageMagick zählt zu den Dauerbrennern<br />

der Open-Source-Szene:<br />

Der Grafik-Werkzeugkasten<br />

für die Kommandozeile wird seit<br />

1999 kontinuierlich weiterentwickelt<br />

und trägt aktuell die Versionsnummer<br />

6.7.7. An der grundsätzlichen<br />

Handhabung hat sich<br />

über die Jahre kaum etwas geändert,<br />

allerdings kommen von Version<br />

zu Version neu unterstützte<br />

Bildformate, Funktionen oder<br />

Programmierschnittstellen hinzu.<br />

Es besteht nur selten ein Anlass,<br />

die aktuellste Version von der<br />

Projektseite [1] herunterzuladen<br />

und aus den Quellen [2] zu übersetzen,<br />

weil alle wichtigen Distributionen<br />

das Paket bereits mitbringen,<br />

Ubuntu 12.04 etwa in<br />

der Version 6.6.9.7.<br />

Magisches Universum<br />

ImageMagick gibt es nicht nur für<br />

Linux, sondern auch für Windows,<br />

Mac OS X und iOS. Zudem existieren<br />

diverse Programmierschnittstellen,<br />

darunter die C-Core-API<br />

Magick Core [3], ein objektorientiertes<br />

C++-API namens Magick++<br />

sowie das Perl-Interface PerlMagick,<br />

sodass sich Bilder auch dynamisch<br />

generieren lassen. Daher<br />

setzen <strong>Web</strong>-Anwendungen häufig<br />

auf die Tool-Sammlung. Image-<br />

Magick besteht aus einer Reihe<br />

von einzelnen Werkzeugen zur<br />

Bildmanipulation [4], derzeit elf<br />

an der Zahl, von denen convert<br />

das bekannteste und am meisten<br />

benutzte sein dürfte (siehe Tabelle<br />

ImageMagick-Tools). Der gemeinsame<br />

Nenner der Werkzeuge besteht<br />

darin, dass alle auf das gleiche<br />

Fundament an Basis-Bibliotheken<br />

zurückgreifen, die unter<br />

anderem das Lesen und Schreiben<br />

der inzwischen knapp 100 unter-<br />

1 Hier zeigt ImageMagick die Ergebnisse des Bearbeitens im eigenen Viewer.<br />

68 08 | 12<br />

www.linux-user.de


ImageMagick<br />

praxis<br />

stützen Dateiformate<br />

ermöglichen.<br />

Die Basis-<br />

Bibliotheken<br />

zeichnen auch für<br />

zahlreiche andere<br />

grafische Basis-<br />

Operationen verantwortlich.<br />

Die eigentliche<br />

Mächtigkeit der<br />

Tool-Sammlung<br />

liegt – abgesehen<br />

von den erwähnten<br />

Programmierschnittstellen<br />

–<br />

aber vor allem in<br />

der Vielzahl möglicher<br />

Operatoren<br />

begründet. Da alle<br />

ImageMagick-<br />

Tools kommandozeilenorientiert<br />

arbeiten, lassen<br />

sie sich auch in<br />

vielfältiger Weise<br />

verknüpfen.<br />

Das mit Abstand<br />

populärste Tool aus der Image-<br />

Magick-Sammlung heißt Convert.<br />

Viele Nutzer betrachten es irrtümlich<br />

als eigenständiges Werkzeug<br />

oder gar Linux-Bordgepäck,<br />

weil viele Distributionen Image-<br />

Magick bereits vorinstallieren.<br />

Findet sich Convert auf Ihrem<br />

Rechner nicht, installieren Sie<br />

erst einmal via Paketverwaltung<br />

ImageMagick.<br />

Convert kann jedes der unterstützten<br />

Dateiformate ineinander<br />

konvertieren und außerdem jedes<br />

Bild skalieren, beschneiden, beschriften<br />

oder in sonst irgendeiner<br />

Form transformieren: Es ist<br />

also der eigentliche Bildbearbeiter<br />

im Reigen der ImageMagick-<br />

Tools. Der Einsatz von Convert<br />

funktioniert wie bei fast allen<br />

Werkzeugen nach dem Schema<br />

$ Befehl Ursprungsbild [OptionenU<br />

] Ergebnisbild<br />

Dabei erlauben fast alle Image-<br />

Magick-Tools statt der Angabe eines<br />

Ergebnisbildes auch den Parameter<br />

x:, womit das Resultat der<br />

Verarbeitung quasi als Preview<br />

auf der X11-Oberfläche in einem<br />

Viewer erscheint, statt in einer<br />

Datei zu landen (Abbildung A).<br />

Convert<br />

Der einfachste Anwendungsfall<br />

für Convert besteht im Umwandeln<br />

des Eingangsformates in eines<br />

der unterstützten Ausgangsformate<br />

mittels<br />

$ convert bild‐alt.jpg bild‐neu.U<br />

png<br />

Die zu verwendenden Grafikformate<br />

erkennt Convert anhand der<br />

Dateiendung selbstständig. Bei<br />

der Gelegenheit ist es ein Leichtes,<br />

gleich die Größe des Zielbildes zu<br />

verändern. Dazu dient der Parameter<br />

‐resize. Er akzeptiert sowohl<br />

absolute Größenangaben in<br />

Pixeln (‐resize 320x240) als auch<br />

relative Größenangaben in Prozent<br />

(‐resize 20%). Beachten Sie,<br />

dass Sie auf diesem Weg zwar eine<br />

Zielgröße angeben dürfen, Convert<br />

aber ohne weitere Anweisungen<br />

stets das Seitenverhältnis des<br />

Ursprungsbildes beibehält. Versuchen<br />

Sie etwa, einen Screenshot<br />

von WXGA+ (1440x900) auf XGA<br />

(1024x768) herunterzurechnen,<br />

so führt der entsprechende Befehl<br />

$ convert wxga.jpg ‐resize 1024xU<br />

768 xga.jpg<br />

Name<br />

animate<br />

convert<br />

Funktion<br />

B Das Beschneiden<br />

von Bildern gehört zu<br />

den leichtesten Übungen<br />

von Convert.<br />

C Jeder Ausschnitt<br />

lässt sich durch Angabe<br />

von Offsets an einer<br />

beliebigen Stelle<br />

im Bild platzieren.<br />

ImageMagick-Tools<br />

spielt eine Serie von Bildern schnell hintereinander ab<br />

Bilder einlesen, bearbeiten und speichern<br />

compare vergleicht zwei Bilder und schreibt die Unterschiede in<br />

eine Bilddatei<br />

composite fügt mehrere Bilder zu einem Bild zusammen<br />

conjure führt Skripte in der Skriptsprache von ImageMagick<br />

aus<br />

display stellt ein Bild auf einem X11-Server dar<br />

identify zeigt Dateiformat, Bildgröße und weitere Bildparameter<br />

an<br />

import erzeugt Bildschirmfotos<br />

montage fügt mehrere Bilder zusammen<br />

mogrify funktioniert wie Convert, ersetzt aber das Ursprungsbild<br />

durch das Ergebnis<br />

stream liest Teile aus Bilddateien aus, um sie etwa als Rohdaten<br />

auszugeben<br />

www.linux-user.de<br />

08 | 12 69


praxis<br />

ImageMagick<br />

D Mit ‐crop zerlegen<br />

Sie ein Bild bei Bedarf<br />

in mehrere Teile.<br />

E Mit der Option<br />

‐gravity verschieben<br />

Sie den Ursprung für<br />

einen Bildausschnitt.<br />

dazu, dass xga.jpg keineswegs das<br />

angegebene Zielformat aufweist,<br />

sondern vielmehr eine Größe von<br />

1024 mal 640 Pixeln – im selben<br />

Seitenverhältnis wie das Ausgangsbild.<br />

Sie können ‐resize<br />

allerdings durch Angabe eines<br />

Ausrufezeichens hinter der Größenangabe<br />

(‐resize 320x240!) auch<br />

zwingen, die angegebene Skalierung<br />

vorzunehmen. Daraus resultieren<br />

je nach Formfaktor des Ursprungsbildes<br />

mehr oder minder<br />

starke Verzerrungen im Ergebnis.<br />

Beschneiden mit Convert<br />

Zum Beschneiden von Bildern<br />

verwendet Convert den Parameter<br />

‐crop, gefolgt von einer Größenangabe,<br />

die sich aus der Ausschnittsgröße<br />

und der Startposition<br />

zusammensetzt:<br />

$ convert bilU<br />

d‐alt.jpg ‐crU<br />

op 500x300+0+U<br />

0 bild‐neu.jpg<br />

Dies führt<br />

dazu, dass Convert<br />

aus dem<br />

Ursprungsbild<br />

eine Auswahl<br />

von 500 Punkten<br />

nach rechts<br />

und 300 Punkten<br />

nach unten<br />

ausschneidet<br />

und an der Position<br />

0/​0 beginnt,<br />

was der<br />

linken oberen Ecke des Bildes entspricht<br />

(Abbildung B, vorige Seite).<br />

Dagegen schneidet der Befehl:<br />

$ convert bild‐alt.jpg ‐crop 500U<br />

x300+300+100 bild‐neu.jpg<br />

erst 300 Bildpunkte rechts und<br />

100 Bildpunkte unterhalb der linken<br />

oberen Bildecke eine Auswahl<br />

von 500 mal 300 Punkten aus<br />

(Abbildung C, vorige Seite).<br />

Der Parameter ‐crop weist noch<br />

einige Besonderheiten auf. Lassen<br />

Sie beispielsweise die Positionsangabe<br />

weg, erzeugt er so viele<br />

durchnummerierte Ergebnisbilder,<br />

wie mit dem vorgegebenen<br />

Ausschnitt in X- und Y-Richtung<br />

ins Originalbild passen (Abbildung<br />

D). Die Option ‐gravity erlaubt,<br />

den Ursprung zur Berechnung<br />

des Offsets zu verschieben.<br />

Als Vorgabe fungiert dabei 0/​0<br />

(oben links), daneben gibt es die<br />

Angaben NorthWest, North, North‐<br />

East, West, Center, East, SouthWest,<br />

South sowie SouthEast. Der Befehl:<br />

$ convert bild‐alt.jpg ‐gravity U<br />

Center ‐crop 50%+0+0 bild‐neu.jpg<br />

ließe sich beispielsweise dazu einsetzen,<br />

das Resultat aus Abbildung<br />

E zu erzielen.<br />

Der Vollständigkeit halber sei<br />

noch die Option +repage erwähnt,<br />

die Sie korrekterweise noch anfügen<br />

müssen, weil sonst beim Beschneiden<br />

mit ‐crop die Werte für<br />

canvas und offset im Header des<br />

Bildes falsch erhalten bleiben.<br />

Sie können die oben gezeigte<br />

Formatumwandlung sowie das<br />

Skalieren und Beschneiden – wie<br />

alle Convert-Optionen – auch in<br />

einem Befehl kombinieren.<br />

Stapelverarbeitung<br />

Möchten Sie die genannten Operationen<br />

auf 100 oder mehr Fotos<br />

anwenden, kommen die Fähigkeiten<br />

der Shell ins Spiel. Im folgenden<br />

Beispiel schreiben wir die<br />

verkleinerten Ausgangsbilder in<br />

einen zuvor angelegten separaten<br />

Ordner (fotos‐small/), damit die<br />

Originalbilder erhalten bleiben<br />

$ for i in .jpg; do convert $i -U<br />

resize 1280x960 ‐gravity SouthWeU<br />

st ‐crop 1024x768+0+0 +repage foU<br />

tos‐small/$i; done<br />

Das Kombinieren von ‐resize,<br />

‐crop und ‐gravity bietet sich insbesondere<br />

dann an, wenn Sie eine<br />

große Anzahl von Bildern etwa<br />

für einen <strong>Web</strong>-Katalog normieren<br />

müssen. In einem Szenario aus<br />

dem Bereich Produktmanagement<br />

sah sich der Autor beispielsweise<br />

mit der Situation konfrontiert,<br />

Produktbilder eines Fahrradherstellers<br />

für einen Online-<br />

Katalog in ein einheitliches Format<br />

zu bringen, wobei die vom<br />

Hersteller gelieferten Bilder nicht<br />

durchgängig das gleiche Format<br />

70 08 | 12<br />

www.linux-user.de


ImageMagick<br />

praxis<br />

besaßen. Außerdem wurde<br />

beim Fotografieren nicht<br />

immer der gleiche Ausschnitt<br />

und die gleiche Perspektive<br />

gewählt. Die Ausgangsbilder<br />

sollten am<br />

Ende ausnahmslos über einen<br />

Rand verfügen, damit<br />

sie sich optisch gut in das<br />

Layout des Katalogs einfügten.<br />

Als Lösung wurden die<br />

Bilder zunächst mit ‐resize<br />

in ein einheitliches Format<br />

gebracht, das geringfügig<br />

größer als das Zielformat<br />

ausfiel. Nach Festlegen eines<br />

neuen Koordinatenursprungs<br />

(links unten) mit<br />

‐gravity entstand durch Anwenden<br />

von ‐crop eine Auswahl,<br />

die in X- und Y-Richtung<br />

10 Pixel unter dem<br />

Zielformat lag. Anschließend<br />

erhielten alle Bilder<br />

mit convert ‐bordercolor<br />

white ‐border 5 einen weißen<br />

Rand von 5 Pixeln.<br />

F Das Drehen eines<br />

Bildes gehört zu den<br />

leichteren Übungen für<br />

das Tool Convert.<br />

G Das Spiegeln gehört<br />

ebenfalls zu den eher<br />

trivialen Operationen.<br />

Drehen und Spiegeln<br />

Selbstverständlich kann<br />

Convert Bilder auch in vielfältiger<br />

Weise transformieren.<br />

Zum Drehen eines Bildes kommt<br />

beispielsweise ‐rotate n zum Einsatz,<br />

wobei n den Drehwinkel in<br />

Grad angibt (Abbildung F, vorherige<br />

Seite). Geben Sie einen negativen<br />

Wert vor, rotiert Convert<br />

das Bild gegen den Uhrzeigersinn.<br />

Als nützlich erweisen sich in diesem<br />

Zusammenhang die Operatoren<br />

< und >, die häufig in Skripten<br />

Verwendung finden. Stellen Sie<br />

der Winkelangabe ein < voran,<br />

dreht Convert das Bild nur dann,<br />

wenn es in einem Hochformat<br />

vorliegt; bei > nur, falls es ursprünglich<br />

querformatig ist.<br />

Convert kann Bilder auch problemlos<br />

spiegeln (Abbildung G,<br />

vorherige Seite) und bietet dazu<br />

die vier Varianten waagerecht<br />

(‐flip), senkrecht (-flop), diagonal<br />

links oben/​rechts unten (‐transpose)<br />

und diagonal rechts oben/​<br />

links unten (‐transverse) an.<br />

Weitere Optionen<br />

Neben den bereits vorgestellten,<br />

wohl am häufigsten eingesetzten<br />

Optionen kennt ImageMagick<br />

noch Hunderte weitere [5]. Ein<br />

paar Beispiele sollen im Folgenden<br />

die mögliche Bandbreite des<br />

Werkzeugkastens aufzeigen.<br />

So streckt etwa die Option ‐normalize<br />

das Histogramm des Bildes<br />

mit dem Ergebnis, dass Weiß die<br />

hellste und Schwarz die dunkelste<br />

Farbe ist, was in vielen Fällen zu<br />

einer Verbesserung führt. Mit<br />

dem Befehl:<br />

$ convert bild‐ein.jpg ‐fx u*(1+U<br />

j/h)*0.85 x:<br />

betonen Sie beispielsweise die<br />

helleren Bildteile (Abbildung 8,<br />

nächste Seite). Das Bild verliert<br />

dabei zwar etwas an Kontrast,<br />

das lässt sich aber mit ‐normalize<br />

umgehend wieder korrigieren.<br />

Sie ahnen sicher bereits, dass der<br />

Operator ‐fx nicht für das Aufhellen<br />

oder Abdunkeln eines Bildes<br />

steht. Vielmehr handelt es sich<br />

um den Special-Effects-Operator<br />

von ImageMagick. Er erwartet als<br />

Argument einen mehr oder weniger<br />

komplexen mathematischen<br />

Ausdruck. Mithilfe von ‐fx können<br />

Sie beispielsweise auch Gradienten<br />

erzeugen, Farbwerte zwischen<br />

Bild und Farbkanälen austauschen,<br />

Farben in komplexer<br />

Weise mischen und vieles mehr.<br />

Zum Generieren eines passenden<br />

Ausdrucks stehen an die hundert<br />

Operatoren der Fx Expression<br />

Language zur Verfügung [6]. Im<br />

Netz finden sich Beispiele zum direkten<br />

Verwenden, das Verständnis<br />

der Wirkungsweise komplexer<br />

Formeln zur Bildmanipulation erfordert<br />

allerdings mathematisches<br />

Grundlagenwissen zur elektronischen<br />

Bildbearbeitung.<br />

www.linux-user.de<br />

08 | 12 71


praxis<br />

ImageMagick<br />

H Convert erlaubt<br />

das Anwenden von<br />

komplexen Filtern, die<br />

ihre mathematische<br />

Natur in ImageMagick<br />

schonungsloser offenbaren<br />

als in Gimp.<br />

hend von der linken oberen<br />

Bildecke) auszugeben<br />

(Abbildung J).<br />

Convert komprimiert<br />

die Bilder auf Wunsch außerdem<br />

mit ‐compress Typ<br />

für verschiedene Anwendungszwecke.<br />

Zur Verfügung<br />

stehen die Kompressionstypen<br />

None, BZip,<br />

Fax Group4, JPEG, JPEG2000,<br />

Lossless, LZW, RLE und Zip.<br />

I Mit Convert lassen<br />

sich auch Gamma-Korrekturen<br />

vornehmen.<br />

J Dank Convert<br />

versehen Sie mit<br />

wenigen Handgriffen<br />

ein Bild mit einem<br />

Wasserzeichen.<br />

Convert kann darüber hinaus<br />

auch Gamma-Werte manipulieren:<br />

Mit dem Befehl convert ‐gamma<br />

1.10,1.05,1.0 verstärken Sie<br />

beispielsweise den Rot- und den<br />

und Grün-Anteil und machen ein<br />

Bild damit wärmer (Abbildung I).<br />

Wasserzeichen<br />

Um mit Convert Bildern mit wenigen<br />

Handgriffen ein Wasserzeichen<br />

hinzuzufügen, benötigen Sie<br />

lediglich die Optionen ‐font, ‐fill<br />

und ‐draw. Schriftart sowie Größe<br />

und Farbe des Textes legen Sie<br />

nach Belieben fest:<br />

$ convert bild‐ein.jpg ‐font UbuU<br />

ntu ‐pointsize 30 ‐fill gray ‐drU<br />

aw "text 200,100 'Copyright by DU<br />

rilling'" bild‐aus.png<br />

Dabei weist "text 200,100 'Copyright<br />

by Drilling'" den Operator<br />

‐draw an, den angegebenen Text<br />

an der Position 200,100 (ausge-<br />

Filter einsetzen<br />

ImageMagick kennt zahlreiche<br />

Filter, mit deren<br />

Hilfe Sie mehr oder weniger<br />

nützliche Effekte auf<br />

die Bilder anwenden.<br />

Eine Liste dieser Filter<br />

inklusive Syntax finden<br />

Sie in der bereits erwähnten<br />

Operatoren- und Parameter-Liste<br />

[5] auf der<br />

ImageMagick-<strong>Web</strong>site.<br />

Zu den Standard-Effekten<br />

zählt ‐sharpen zum<br />

Schärfen eines Bildes, der als Argument<br />

wahlweise eine einfache<br />

Radius-Funktion akzeptiert oder<br />

einen komplexen Gaußschen<br />

Operator. Ähnlich funktioniert<br />

der Blur-Effekt, der die Schärfe<br />

aus einen Bild herausnimmt, indem<br />

er den Hintergrund verwischt<br />

(Abbildung K). Möchten<br />

Sie den Kontrast erhöhen, dann<br />

erledigen Sie das wahlweise für<br />

die einzelnen Kanäle Rot, Grün,<br />

Blau und Alpha getrennt oder in<br />

einem Rutsch für alle vier<br />

Kanäle über den Operator<br />

‐contrast‐stretch (Abbildung<br />

L).<br />

Wer bin ich?<br />

Convert ist nur eines von<br />

elf Werkzeugen des<br />

ImageMagick-Paketes –<br />

wenn auch mit Abstand<br />

das wichtigste, was die eigentliche<br />

Bildbearbeitung<br />

angeht. Als besonders<br />

nützlich erweist sich aber<br />

immer wieder auch das<br />

Tool Identify, mit dessen<br />

Hilfe Sie ohne großen<br />

72 08 | 12<br />

www.linux-user.de


ImageMagick<br />

praxis<br />

K Die Wirkungsweise<br />

des Blur-Effektes lässt<br />

sich am besten mit<br />

„Verwischen“ umschreiben.<br />

Aufwand jedem Bild wichtige Parameter<br />

entlocken.<br />

So liefert beispielsweise der Aufruf<br />

indentify *.jpg Informationen<br />

zu Breite, Höhe, Farbtiefe und<br />

Dateigröße jedes JPEG-Bildes im<br />

aktuellen Verzeichnis. Jede Zeile<br />

der Ausgabe beschreibt bei dieser<br />

Kurzform genau ein Bild. Die<br />

Auskunftsfreudigkeit von identify<br />

lässt sich aber über den Parameter<br />

‐verbose erhöhen und entlockt<br />

dem Bild dann unter anderem<br />

auch Exif-Werte.<br />

Fazit<br />

ImageMagick zählt zweifelsohne<br />

zu den nützlichsten Tool-Paketen<br />

unter Linux überhaupt. Die Leistungsfähigkeit<br />

der einzelnen<br />

Funktionen braucht sich hinter<br />

jener von Werkzeugen wie Gimp<br />

nicht zu verstecken.<br />

Die elf Komponenten der Suite<br />

basieren alle auf den gleichen Bibliotheken,<br />

verwenden dasselbe<br />

Syntax-Schema und lassen sich<br />

nahtlos miteinander kombinieren.<br />

Dazu gibt es Hunderte von<br />

Operatoren und eine eigene Formelsprache.<br />

Dabei beschränkt<br />

sich ImageMagick nicht nur auf<br />

einfache Filter, sondern kann beispielsweise<br />

auch Morph-Effekte<br />

auf Bildserien anwenden.<br />

Allerdings erfordern zahlreiche<br />

Funktionen, insbesondere Filter<br />

und Effekte, fundiertes Grundlagenwissen<br />

der Mathematik zur<br />

Bildbearbeitung, um beim Anwenden<br />

von Effekten nicht auf<br />

bloßes Herumprobieren angewiesen<br />

zu sein. Das gilt aber ebenso<br />

für grafische Programme des Ka-<br />

libers von Adobe Photoshop oder<br />

Gimp, obwohl sie die Funktionen<br />

in eine hübsche GUI verpacken.<br />

Die meisten Anwender nutzen<br />

ImageMagick aber ohnehin eher<br />

für einfache Dinge, wie Normierungen<br />

oder Formatumwandlungen,<br />

denn hierbei ermöglicht die<br />

Kommandoschnittstelle ein automatisiertes<br />

Verarbeiten. <strong>Web</strong>-<br />

Dienstleister nutzen oft die Tools<br />

– etwa, wenn sie eine Upload-<br />

Funktion für Bilder anbieten.<br />

Hinsichtlich der ungeheuren Flexibilität<br />

der Suite gibt es nichts,<br />

was hier mit ImageMagick mithalten<br />

könnte. (jlu) n<br />

L Das Erhöhen des<br />

Kontrastes gelingt<br />

wahlweise für alle<br />

oder jeden einzelnen<br />

Farbkanal.<br />

info<br />

[1] ImageMagick:http:// imagemagick. org<br />

[2] ImageMagick-Quellen: http:// imagemagick.​<br />

org/ script/ install‐source. php# unix<br />

[3] ImageMagick Core API: http:// image-<br />

magick. org/ script/ magick‐core. php<br />

[4] ImageMagick-Tools: http:// imagemagick.​<br />

org/ script/ command‐line‐tools. php<br />

[5] ImageMagick-Optionen:<br />

http:// imagemagick. org/ script/​<br />

command‐line‐options. php<br />

[6] FX-Expressions:<br />

http:// www. imagemagick. org/ script/ fx. php<br />

www.linux-user.de<br />

08 | 12 73


netz&system<br />

Netcat & Co.<br />

Einfache Datenübertragung zwischen Hosts mit Netcat<br />

Netzwerker<br />

Die Unix-Bordmittel erweisen sich in Sachen Netzwerkkommunikation<br />

als recht flexibel. Bei Bedarf setzen Sie mit einfachen Mitteln<br />

sogar einen kleinen Server auf. Falko Benthin<br />

© Colin Broug, sxc.hu<br />

README<br />

Ncat 5.51 (RPM)<br />

LU/ncat/<br />

Cryptcat 1.2.1<br />

(Quellen)<br />

LU/cryptcat/<br />

Schnell Dateien zwischen<br />

zwei Rechnern<br />

austauschen, Ports und<br />

dahinterlaufende Anwendungen<br />

abklopfen,<br />

eine Bind Shell oder einen<br />

einfachen Server<br />

einrichten – eigentlich<br />

Aufgaben, die verschiedene<br />

Programme erfordern.<br />

Oder nur eines,<br />

wenn es sich dabei um<br />

das 1996 entwickelte<br />

Netcat oder dessen<br />

Nachfolger Ncat oder<br />

Cryptcat handelt.<br />

Als Schweizer Taschenmesser<br />

unter den Netzwerk-Tools gilt<br />

schon seit 1996 Netcat [1]. Es ist<br />

etwas in die Jahre gekommen<br />

und lässt daher inzwischen einige<br />

Funktionen vermissen, wie etwa<br />

das verschlüsselte Übertragen<br />

von Daten oder das immer populärer<br />

werdende IPv6.<br />

So existieren inzwischen etliche<br />

neue Implementationen, wie<br />

Ncat [2] oder Cryptcat [3], die einen<br />

beträchtlich erweiterten Umfang<br />

an Funktionen mitbringen.<br />

Ncat, das Netcat für das 21. Jahrhundert,<br />

kommt von den Machern<br />

des populären Netzwerk-<br />

Scanners Nmap. Cryptcat stammt<br />

aus der Schmiede mehrerer Entwickler<br />

rund um Farm9.<br />

Suchen und Finden<br />

Wie bereits oben erwähnt, eignen<br />

sich die in diesem Beitrag vorgestellten<br />

Werkzeuge für ein breites<br />

Spektrum an Aufgaben. Netcat<br />

dient beispielsweise als Werkzeug<br />

zur Diagnose, wenn sich ein<br />

Rechner im Netz anders verhält<br />

als erwartet. Mit dem Befehl nc<br />

‐vz Host 1‐1024 klopfen Sie alle<br />

Ports bis 1024 ab. Auf diesen laufen<br />

die meisten bekannten Dienste,<br />

wie Mail, FTP oder SSH.<br />

Findet das Programm einen offenen<br />

Port, quittiert es dies mit<br />

einer entsprechenden Nachricht.<br />

Die Portnummer dient dann als<br />

Grundlage für weitere Analysen.<br />

Verbindet sich Netcat direkt mit<br />

einem offenen Port, plaudern viele<br />

der dahinterlaufenden Anwendungen<br />

Name und Versionsnummer<br />

aus.<br />

Mit Netcat haben Sie nicht nur<br />

die Möglichkeit, zu prüfen, welche<br />

Dienste hinter einem Port<br />

laufen, sondern zusätzlich, ob sie<br />

korrekt funktionieren. Angenommen,<br />

ein Mailclient verweigert<br />

seinen Dienst und konfrontiert<br />

den Nutzer mit Nachrichten wie<br />

Der SMTP-Server hat keine korrekte<br />

Begrüßung gesendet. Ein Überprüfen<br />

des Ports zeigt zunächst,<br />

dass dieser offensteht. Dann wäre<br />

der nächste Schritt, den Mailserver<br />

direkt zu kontaktieren und<br />

die Begrüßung manuell vorzunehmen<br />

(Abbildung 1).<br />

Dabei zeigt sich dann, ob der<br />

Datenaustausch mit dem Server<br />

reibungslos funktioniert oder<br />

eine zu scharf eingestellte<br />

Firewall, eine falsche Konfiguration<br />

oder eine fehlerhafte Implementation<br />

des SMTP-Handshakes<br />

im Mail-Client als Ursache infrage<br />

kommt.<br />

Allrounder<br />

Möchten Sie Daten von einem<br />

Rechner auf einen anderen übertragen<br />

oder mit einem anderen<br />

Anwender via Kommandozeile<br />

plaudern, hilft Netcat ebenfalls<br />

weiter. Der Befehl nc ‐l ‐p 11111<br />

veranlasst Netcat, in den Server-<br />

Modus zu gehen und auf Port<br />

11111 zu lauschen.<br />

Verbindet sich jetzt ein Client<br />

via nc Host> 11111 von einem anderen<br />

Rechner mit dem fraglichen<br />

Port, erscheinen die Einga-<br />

Installation<br />

Sowohl Netcat (oft auch nc) als<br />

auch Ncat und Cryptcat finden sich<br />

in den Repositories der meisten<br />

Distributionen. Bei Bedarf spielen<br />

Sie die Tools also mithilfe des Paketmanagers<br />

ein. Einige Distributionen<br />

installieren zumindest Netcat<br />

sogar standardmäßig. Ncat gehört<br />

zu Nmap und findet seinen Weg auf<br />

die Platte, sobald Sie diesen Portscanner<br />

installieren.<br />

74 08 | 12<br />

www.linux-user.de


Netcat & Co.<br />

netz&system<br />

ben auf dem einen Rechner als<br />

Ausgabe auf dem anderen, und<br />

zwar so lange, bis eine der beiden<br />

Netcat-Instanzen endet. Um auf<br />

einem Port kleiner oder gleich<br />

1024 zu lauschen, müssen Sie<br />

Netcat mit Root-Rechten starten.<br />

Auf diesem Weg können Sie<br />

auch Dateien mithilfe von Netcat<br />

übers Netzwerk kopieren: Dazu<br />

gilt es lediglich, jeweils die Standardeingabe<br />

und die Standardausgabe<br />

umzubiegen. Um das zu<br />

bewerkstelligen, erweitern Sie<br />

den Befehl auf dem Server um ><br />

Ausgabedatei, während Sie auf dem<br />

Client < Eingabedatei anhängen.<br />

Mit einigen Hilfsmitteln wie<br />

etwa Tar und Pipes kopieren Sie<br />

auf diesem Weg sogar ganze Verzeichnisse.<br />

Vertauschen Sie die<br />

Ein- und Ausgabe, sorgen Sie auf<br />

diese Weise für einen Transfer<br />

der Daten vom Server zum Client.<br />

Das ermöglicht es, mit wenig Aufwand<br />

blitzschnell einfache Server<br />

einzurichten.<br />

Netcat stellt so beispielsweise<br />

<strong>Web</strong>seiten bereit oder verschickt<br />

Audio- und Video-Dateien. Dabei<br />

stört es jedoch, dass sich Netcat<br />

beendet, sobald das Übertragen<br />

der Daten abgeschlossen ist. Dem<br />

schieben Sie einen Riegel vor, indem<br />

Sie Netcat in ein kleines<br />

Skript verpacken, das sofort eine<br />

neue Instanz startet, sobald eine<br />

sich beendet (Listing 1).<br />

rameter ‐e, gefolgt<br />

von der favorisierten<br />

Shell. Mit nc ‐l ‐e<br />

/ bin/bash ‐p 11111<br />

wartet Netcat am<br />

Port 11111 und bietet<br />

jedem Vorbeikommenden<br />

ohne weitere<br />

Authentifizierung<br />

eine Bash mit den<br />

Rechten desjenigen<br />

Nutzers an, der Netcat<br />

gestartet hat (Abbildung<br />

B).<br />

Ebenso lässt sich eine Reverse<br />

Shell ins Leben rufen. Dazu starten<br />

Sie auf dem Rechner mit physischen<br />

Zugriff Netcat als Server.<br />

Dem Client übergeben Sie dann<br />

mit ‐e die gewünschte Shell. Sobald<br />

dieser sich mit dem Server<br />

verbunden hat, können Sie diesen<br />

von dort kontrollieren.<br />

Verschlüsselter Transfer<br />

Während es im heimischen Netzwerk<br />

nicht ganz so tragisch erscheint,<br />

wenn Daten unverschlüsselt<br />

von einem Rechner zum anderen<br />

rauschen, sieht das im Firmennetz<br />

oder Internet schon<br />

ganz anders aus: Hier leistet<br />

Cryptcat gute Dienste, eine Kombination<br />

aus Netcat und einer<br />

Funktion zum Verschlüsseln. Dabei<br />

kommt der Twofish-Algorithmus<br />

[4] zum Einsatz.<br />

Der Einsatz von Cryptcat gleicht<br />

dem von Netcat. Cryptcat bringt<br />

jedoch den zusätzlichen Parameter<br />

‐k Passwort mit, mit dem Sie<br />

das Passwort für die Verschlüsselung<br />

festlegen. Geben Sie kein<br />

Passwort an, dann greift Cryptcat<br />

auf das fest implementierte Passwort<br />

metallica zurück.<br />

Cryptcat überträgt die Daten<br />

also in jedem Fall verschlüsselt.<br />

Setzen Sie also an einem Ende der<br />

A Netcat bei der Fehlerdiagnose.<br />

Zum Angriff<br />

Netcat eignet sich für viel Gutes,<br />

hat aber ebenso Potenzial für einen<br />

Angriff. Neben Lauschen und<br />

Daten austauschen vermag es zusätzliche<br />

Anwendungen zu starten.<br />

Das eröffnet die Möglichkeit,<br />

in einem Netzwerk eine Backdoor-Shell<br />

zu öffnen, die Verbindungen<br />

von außen zulässt. Um<br />

Netcat für derart finstere Szenarien<br />

einzusetzen, genügt der Pa-<br />

B Kleiner Befehl,<br />

große Wirkung: Selbst<br />

eine primitive Backdoor<br />

mit Netcat liefert zahlreiche<br />

Informationen<br />

über einen Rechner.<br />

Listing 1<br />

#! /bin/bash<br />

while true ; do<br />

nc ‐l ‐p 11111 < Ausgabedatei<br />

done<br />

C Cryptcat versendet<br />

verschlüsselt mit<br />

passwortgeschütztem<br />

Twofish-Algorithmus.<br />

www.linux-user.de<br />

08 | 12 75


netz&system<br />

Netcat & Co.<br />

D Die Broker-Funktion<br />

von Ncat erlaubt den<br />

Datenaustausch zwischen<br />

Clients.<br />

E Ncat arbeitet bei<br />

Bedarf als einfacher<br />

Glossar<br />

Chat-Server.<br />

SCTP: Stream Control<br />

Transmission Protocol<br />

(RFC 4960). Zuverlässiges,<br />

verbindungsorientiertes<br />

Transportprotokoll,<br />

das auf einem potenziell<br />

unzuverlässigen<br />

verbindungslosen Paketdienst<br />

aufsetzt. Ursprünglich<br />

entwickelt,<br />

um Signalisierungsdaten<br />

von Telefonnetzen<br />

auch über IP-Netzwerke<br />

übertragen zu<br />

können.<br />

Ncat: Zertifikate einbinden<br />

Ort<br />

Auf dem Server<br />

Auf dem Client<br />

Zusatzoptionen<br />

Kommunikation auf Netcat, dann<br />

sendet Cryptcat an dieses chiffrierte<br />

Daten oder versucht, den<br />

im Klartext übermittelten Datenstrom<br />

zu entschlüsseln. Beides<br />

führt unweigerlich zu Unsinn<br />

(Abbildung C, vorherige Seite).<br />

Ncat<br />

Obwohl das traditionelle, aber betagte<br />

Netcat noch gute Dienste<br />

leistet, hat sich das Rad der Zeit<br />

weitergedreht und zahlreiche<br />

neue Anforderungen hervorgebracht.<br />

Diese bewegten die<br />

Nmap-Entwickler 2005 dazu, die<br />

Software neu zu implementieren.<br />

Die neue Variante Ncat verfügt<br />

(bis auf das Portscanning) über<br />

alle Funktionen, die Netcat mitbringt,<br />

und verwendet sogar<br />

weitgehend dieselben Parameter.<br />

Darüber hinaus erweiterten die<br />

Entwickler die Software im Vergleich<br />

zum Original erheblich.<br />

Ncat versteht sich auf die gängigen<br />

Transportprotokolle TCP und<br />

SCTP sowie neben IPv4 auch auf<br />

IPv6. Bei Bedarf verwaltet die<br />

‐‐ssl ‐‐ssl‐cert Zertifikatsdatei ‐‐ssl‐key<br />

Schlüsseldatei<br />

‐‐ssl‐verify ‐‐ssl‐trustfile Schlüsseldatei<br />

Software mehrere parallele Verbindungen<br />

und kontrolliert, ob<br />

anfragende Clients eine Verbindung<br />

herstellen dürfen.<br />

Wer Ncat bereits kennt, dem<br />

fällt der Umstieg auf Ncat nicht<br />

schwer. Mit ncat ‐l versetzen Sie<br />

die Software in den Server-Modus,<br />

der Parameter ‐p entfällt. Die<br />

Angaben für Host und Port sind<br />

optional: Geben Sie sie nicht mit,<br />

lauscht Ncat an allen Netzwerkschnittstellen<br />

auf Port 31337.<br />

Mit der einfachen Eingabe des<br />

Befehls bauen Sie eine Verbindung<br />

zu einem anderen Rechner<br />

auf. Standardmäßig akzeptiert<br />

Ncat bis zu 100 gleichzeitige Verbindungen<br />

– ein Wert, den Sie<br />

mit der Option ‐m gefolgt von einem<br />

Zahlenwert anpassen.<br />

Sobald sich einer der Clients beendet,<br />

verabschiedet sich auch<br />

der Server. War bei Netcat noch<br />

ein kleines Skript nötig, das den<br />

Server nach dem Beenden sofort<br />

wieder startete, verhindert bei<br />

Ncat die Option ‐k (‐‐keep‐open),<br />

dass sich der Server zeitgleich mit<br />

einem Client davonmacht.<br />

Gut gesichert<br />

Dank SSL kommunizieren Ncat-<br />

Instanzen miteinander, ohne dass<br />

Dritte die Datenströme im Klartext<br />

abgreifen können. Dazu erstellt<br />

der Ncat-Server mit dem<br />

zusätzlichen Schalter ‐‐ssl temporäre<br />

SSL-Zertifikate und<br />

‐Schlüssel. Diese chiffrieren zwar<br />

die Kommunikation, schützen<br />

aber nicht vor Man-in-the-<br />

Middle- Angriffen. Ist das erforderlich,<br />

schicken Sie mithilfe der<br />

Optionen aus der Tabelle Ncat:<br />

Zertifikate einbinden vorhandene<br />

(und eventuell signierte) Zertifikate<br />

und Schlüssel ins Rennen.<br />

In der Regel wissen die bei einem<br />

Ncat-Server angemeldeten<br />

Clients nichts voneinander. Damit<br />

sich das ändert, schlüpft die<br />

moderne Netzkatze in die Rolle<br />

des Vermittlers: Die Option<br />

‐‐broker sorgt dafür, dass der<br />

Ncat-Server zentral die Kommunikation<br />

zwischen den Clients abwickelt.<br />

Der Server kann eigene<br />

Nachrichten absetzen, aber er<br />

zeigt keine Mitteilungen an, die<br />

er an die anderen Clients weiterleitet<br />

(Abbildung D).<br />

Auf diese Weise verteilen Sie<br />

beispielsweise Datenströme aus<br />

der Standardeingabe über einen<br />

Broker an mehrere Hosts. Haben<br />

Sie erst einmal den Server mit<br />

ncat ‐l ‐‐broker gestartet, besteht<br />

auch die Möglichkeit, die empfangenden<br />

Clients zum Leben zu erwecken.<br />

Dazu geben Sie dort beispielsweise<br />

folgenden Befehl ein:<br />

$ ncat Server > Ausgabedatei<br />

Er leitet alle empfangenen Bits<br />

und Bytes in die Ausgabedatei<br />

um, genauso wie beim originalen<br />

Ne tc at .<br />

Da Ncat nichts puffert, darf der<br />

sendende Client erst starten,<br />

wenn der Empfänger bereits<br />

läuft. Dann schicken Sie mit dem<br />

folgenden Befehl die Datei auf<br />

den Weg:<br />

$ ncat Server < Eingabedatei<br />

Einen empfangenden Client<br />

müssen Sie manuell mit<br />

[Strg]+[C] herunterfahren. Mit<br />

‐‐recv‐only und ‐‐send‐only ver-<br />

76 08 | 12<br />

www.linux-user.de


Netcat & Co.<br />

netz&system<br />

fügt Ncat über zwei Optionen,<br />

um die Daten entweder nur zu<br />

senden oder nur zu empfangen.<br />

Wie Netcat unterstützt Ncat<br />

den direkten Dialog im Netzwerk.<br />

Dabei erhöht sich die Anzahl der<br />

möglichen Gesprächsteilnehmer<br />

dank der multiplen Verbindungen<br />

deutlich. Sobald allerdings mehr<br />

als zwei Anwender miteinander<br />

ins Gespräch kommen, fällt es<br />

schwer, Geschriebenes einer Person<br />

zuzuordnen.<br />

Dennoch tauschen die Nmap-<br />

Entwickler offenbar des Öfteren<br />

Informationen auf diesem Weg<br />

aus – anders ist die Option ‐‐chat<br />

nicht zu erklären. Geben Sie diese<br />

beim Start des Servers an, verwandelt<br />

sich Ncat in einen einfachen<br />

Chat-Server (Abbildung E).<br />

Dieser ordnet die Nutzer: Alle<br />

Ausgaben erhalten ein Präfix der<br />

Form . Meldet sich ein<br />

Anwender ab, passiert es unter<br />

Umständen, dass er später unter<br />

einem völlig anderen Namen wieder<br />

im Chat auftaucht.<br />

Während andere Netcat-Implementierungen<br />

in vielen Features<br />

mit Ncat zusammenspielen, ist<br />

beim Chat Schluss: Anwender mit<br />

dem traditionellen Netcat dürfen<br />

sich anmelden, bleiben jedoch<br />

vom Gespräch ausgeschlossen.<br />

Privilegierter Kreis<br />

Schon bei Netcat zeigte sich die<br />

Gefahr, dass jeder beliebige Host<br />

sich mit dem Programm verbinden<br />

kann, sofern Sie keine<br />

Schutzmaßnahmen ergreifen.<br />

Ncat bringt zwar einige einfache<br />

Schutzmaßnahmen mit, ein Angreifer<br />

könnte diese jedoch im<br />

Zweifel schnell überwinden.<br />

Mit den Anweisungen ‐‐allow<br />

beziehungsweise ‐‐deny bauen Sie<br />

eine einfache Zugriffskontrolle<br />

[1] Netcat: http:// nc110. sourceforge. net<br />

[2] Ncat: http:// nmap. org/ ncat/<br />

info<br />

[3] Cryptcat:<br />

http:// sourceforge. net/ projects/ cryptcat/<br />

[4] Twofish:<br />

http:// de. wikipedia. org/ wiki/ Twofish<br />

auf, die einzelne IP-<br />

Adressen, Subnetze<br />

oder Hostnamen umfasst<br />

(Abbildung F).<br />

Ncat akzeptiert mehrere<br />

Hosts, die Sie<br />

durch Kommata getrennt<br />

auflisten.<br />

Starten Sie Ncat oft<br />

mit der Allow/​Deny-<br />

Option, lohnt es sich, die betroffenen<br />

Hosts in einer Textdatei<br />

aufzulisten, um sie nicht immer<br />

neu eingeben zu müssen. Die entsprechende<br />

Datei geben Sie Ncat<br />

beim Start über die Parametern<br />

‐‐allowfile Datei oder ‐‐denyfile<br />

Datei mit auf den Weg.<br />

Protokoll<br />

Ncat bietet die Möglichkeit, die<br />

komplette Kommunikation in einer<br />

Datei mitzuschneiden, ein sogenanntes<br />

Dump-File. Dazu leiten<br />

Sie die Daten mit der Option<br />

‐o Datei um, und schon findet<br />

sich der gesamte Datenaustausch<br />

in dieser Datei wieder.<br />

Verwenden Sie die Option ‐x anstelle<br />

von ‐o, wandert der Verkehr<br />

in Hexadezimal-Ausgabe in die<br />

Option<br />

Einsatzzweck<br />

Datei. Wollen Sie die Ausgabe an<br />

eine bestehende Datei anhängen,<br />

verwenden Sie die Option ‐‐appendoutput.<br />

Netcat kennt daneben die<br />

Option ‐o, schreibt aber direkt im<br />

Hexadezimalformat mit.<br />

Ncat und Netcat plotten zwar<br />

den Verkehr mit, die durchaus<br />

ebenfalls interessanten Ereignisse<br />

– etwa, welcher Host sich mit der<br />

jeweiligen Software verbunden<br />

hat – tauchen jedoch nicht auf.<br />

Fazit<br />

Es lohnt sich auf jeden Fall, die<br />

einzelnen Varianten zu vergleichen.<br />

Netcat und Konsorten sind<br />

keinesfalls die besten Werkzeuge<br />

für jede Aufgabe, erweisen sich<br />

aber in kundigen Händen als flexible<br />

Werkzeuge. (agr) n<br />

F Hosts mit falscher<br />

Adresse weist Ncat auf<br />

Wunsch ab.<br />

Optionen für Netcat und Ncat<br />

‐l Port, ‐‐listen Port Server-Modus, lauscht auf dem angegebenen Port nach eingehenden Verbindungen<br />

‐p Port, ‐‐source‐port Port legt den zu verwendenden Ausgangsport fest (in manchen Implementationen<br />

nicht in Kombination mit ‐l erlaubt)<br />

‐u, ‐‐udp<br />

UDP anstelle von TCP verwenden<br />

‐w Zahl, ‐‐wait Zahl Timeout auf Zahl Sekunden setzen<br />

‐v, ‐‐verbose<br />

ausführliche Ausgabe (wiederholte Angabe erhöht den Umfang der Ausgabe)<br />

‐e Befehl, ‐‐exec Befehl nach Aufbau der Verbindung Befehl ausführen<br />

‐c Befehl, ‐‐sh‐exec Befehl nach Aufbau der Verbindung Befehl in Shell /bin/sh ausführen<br />

‐o, ‐‐output Datei<br />

Ausgabe in Datei umleiten<br />

‐4, ‐6 ausschließlich IPv4 beziehungsweise IPv6 erlauben<br />

‐n, ‐‐nodns<br />

IP-Adressen nicht zu Hostnamen auflösen<br />

nur Netcat<br />

‐z kein Datenaustausch beim Scannen von Ports<br />

nur Ncat<br />

‐k, ‐‐keep‐open<br />

Server läuft weiter, wenn sich der Client beendet<br />

‐m Zahl, ‐‐max‐conns Zahl Anzahl simultaner Verbindungen (voreingestellt: 100)<br />

‐‐send‐only, ‐‐recv‐only nur Daten senden, beziehungsweise empfangen<br />

‐‐allow, ‐‐deny<br />

Kontakt mit angegebenen Hosts erlauben, beziehungsweise verbieten<br />

‐‐broker<br />

Kommunikation zwischen per Ncat-Server verbundenen Hosts erlauben<br />

‐‐chat<br />

einfacher Chat-Server<br />

‐‐ssl<br />

Daten SSL-verschlüsselt übertragen<br />

www.linux-user.de<br />

08 | 12 77


hardware<br />

Samsung CLX-6220FX<br />

Multifunktionsgerät CLX-6220FX von Samsung<br />

Multitalent<br />

Multifunktionsgeräte lösen im Home-Office zunehmend den<br />

Maschinenpark aus Drucker, Kopierer, Faxgerät und Scanner ab.<br />

Samsung will mit seinen Profi-Geräten dabei auch bei<br />

Linux-Anwendern punkten. Erik Bärwaldt<br />

README<br />

Leistungsfähige Multifunktionsgeräte<br />

gelten<br />

aufgrund mangelnder<br />

Betriebssystem-Unterstützung<br />

durch die Hersteller<br />

unter Linux immer<br />

noch als schlecht<br />

einsetzbar. Wir testen,<br />

was ein professionelles<br />

Gerät von Samsung unter<br />

Linux leistet.<br />

A Ein einziges<br />

Tool fasst beim CLX-<br />

6220FX alle wichtigen<br />

Einstelloptionen<br />

zusammen.<br />

Sogenannte Multifunktionsgeräte,<br />

die Drucker, Scanner, Kopierer<br />

und oft noch ein Faxgerät in<br />

einem Gehäuse vereinen, haben<br />

sich in den letzten Jahren fest am<br />

Markt etabliert. Doch die Hersteller<br />

liefern oft keine passenden Linux-Treiber<br />

oder bestenfalls einen<br />

simplen Druckertreiber mit,<br />

sodass man die anderen Komponenten<br />

entweder gar nicht oder<br />

erst nach einer gewissen Wartezeit<br />

mit freien Treibern nutzen<br />

kann. Einen völlig anderen Weg<br />

beschreitet der südkoreanische<br />

Mischkonzern Samsung: Hier gehört<br />

Linux in verschiedensten<br />

Derivaten zum festen Bestandteil<br />

der Treiber-Entwicklung für Multifunktionsgeräte.<br />

Als Testgerät erhielten wir einen<br />

Samsung CLX-6220FX [1]. Dabei<br />

handelt es sich um einen Farblaserdrucker<br />

mit eingebautem<br />

Scanner,<br />

Kopierfunktion<br />

und Faxgerät.<br />

Zudem<br />

verfügt der<br />

CLX-6220FX über<br />

eine Ethernet-<br />

Buchse und lässt sich dank eines<br />

integrierten Drucker- und Scanner-Servers<br />

problemlos in ein<br />

Intranet einbinden. Ein USB-Anschluss<br />

ermöglicht zusätzlich den<br />

Betrieb an einem Einzelplatzsystem.<br />

Ab Werk liefert Samsung neben<br />

einer Schnellanleitung, einer<br />

CD-ROM mit diversen Treibern<br />

und einem Handbuch im PDF-<br />

Format einen kompletten Satz an<br />

Druckerkartuschen mit. Diese<br />

eignen sich nach Herstellerangaben<br />

für rund 2000 Seiten.<br />

Die Inbetriebnahme des mit<br />

etwa 36 Kilogramm nicht gerade<br />

leichtgewichtigen<br />

Gerätes<br />

gestaltet sich<br />

denkbar einfach:<br />

Nach<br />

Entfernen diverser<br />

Fixierbänder<br />

und<br />

der Entriegelung<br />

des<br />

Scannerschlittens<br />

gilt<br />

es nur noch<br />

die vier Tonerkartuschen<br />

einzusetzen.<br />

Dazu<br />

öffnen Sie an<br />

der Frontseite des Gerätes eine<br />

gut zugängliche Abdeckklappe<br />

und schieben die vier Kartuschen<br />

anschließend in farblich entsprechend<br />

gekennzeichnete Schächte<br />

ein. Abschließend verbinden Sie<br />

den CLX-6220FX entweder mit<br />

einem Einzelplatzcomputer oder<br />

mit dem Ethernet. Sofern Sie in<br />

Ihrem Netz einen DHCP-Server<br />

betreiben, konfiguriert sich der<br />

CLX-6220FX nach dem ersten<br />

Einschalten automatisch. Um die<br />

Faxeinheit des Geräts zu nutzen,<br />

müssen Sie zusätzlich noch eine<br />

Verbindung zur Telefonbuchse<br />

herstellen, wofür der Hersteller<br />

aber ein ausreichend langes TAE-<br />

N-Kabel mitliefert.<br />

Software<br />

Auf der mitgelieferten CD-ROM<br />

finden sich außer einer Java-Software,<br />

die der Anpassung des Gerätes<br />

an ein Netzwerk mit statischen<br />

IP-Adressen dient, keine<br />

weiteren unter Linux nutzbaren<br />

Programme oder Treiber. Allerdings<br />

lässt sich eine feste IP für<br />

den CLX-6220FX auch am Bedienfeld<br />

des Gerätes definieren.<br />

So gingen wir im Internet auf<br />

die Suche und wurden auf den<br />

Herstellerseiten sofort fündig:<br />

78 08 | 12<br />

www.linux-user.de


Samsung CLX-6220FX<br />

hardware<br />

Samsung liefert auf der <strong>Web</strong>site<br />

des Gerätes [1] im Reiter Support<br />

unter Handbuch, Software, Treiber<br />

und Firmware eine stattliche Anzahl<br />

von Dokumenten und Applikationen<br />

für unterschiedlichste<br />

Betriebssysteme. Im Reiter Treiber<br />

gibt es gleich drei multilinguale<br />

Linux-Pakete für den CLX-<br />

6220FX, wobei die wichtigste<br />

Komponente der Unified Driver<br />

darstellt. Samsung hat für seine<br />

Multifunktionsgeräte den Scanner-<br />

und den Druckertreiber in<br />

dieser Software zusammengefasst,<br />

sodass mit Installation eines<br />

einzigen Treibers das komplette<br />

System einsatzfähig ist.<br />

Möchten Sie, bevor Sie die Applikationen<br />

herunterladen, einen<br />

Blick in die Linux-Kompatibilitätsliste<br />

werfen, so eröffnet sich<br />

Ihnen nach einem Klick auf den<br />

Reiter Technische Daten eine Aufzählung<br />

unterschiedlichster Distributionen.<br />

Hier fehlen zwar aktuelle<br />

Linux-Systeme größtenteils,<br />

doch die vielen aufgeführten<br />

älteren Varianten lassen den<br />

Rückschluss zu, dass die Treiber<br />

auch neuere Derivate unterstützen.<br />

Die für Linux bereitgestellten<br />

Programme und Treiber liegen<br />

als Tarballs vor.<br />

Treiberinstallation<br />

Nach dem Download des Basistreibers<br />

für den CLX-6220FX<br />

(Unified Driver) entpacken Sie diesen<br />

und wechseln in den beim dabei<br />

entstandenen Ordner cdroot/.<br />

Dort starten Sie mit Administratorrechten<br />

die Installation über<br />

den Befehl ./autorun. Die Routine<br />

geleitet Sie in einen grafischen<br />

Assistenten, der zunächst an den<br />

Computer angeschlossene USBund<br />

Parallelport-Drucker abfragt.<br />

Hier gilt es, die LPT-Port-Unterstützung<br />

abzuschalten. Im nächsten<br />

Schritt geben Sie den verwendeten<br />

Druckeranschluss an. Erkennt<br />

der Installer den CLX-<br />

6220FX nicht automatisch, setzen<br />

Sie ein Häkchen vor der Option<br />

Network Printer und lassen<br />

den Drucker im Netz suchen.<br />

Anschließend richtet der Installer<br />

die Treiber für Drucker und Scanner<br />

sowie die entsprechenden<br />

Hilfsprogramme ein. Nach einem<br />

Neustart von CUPS finden Sie auf<br />

dem Desktop einen neuen Starter<br />

mit der Bezeichnung Samsung<br />

Unified Driver Configurator vor.<br />

Dahinter verbirgt sich eine sehr<br />

komfortable grafische Oberfläche<br />

zur Feinjustierung und zum Test<br />

von Drucker- und Scannereinheit<br />

(Abbildung A).<br />

Nach einem Klick auf das Scannersymbol<br />

links oben im Konfigurationsfenster<br />

öffnet sich der<br />

Einstellungsdialog für die Scaneinheit<br />

des CLX-6220FX. Hier<br />

nehmen Sie einige grundlegende<br />

Anpassungen des Scanners vor,<br />

wie beispielsweise Modifikationen<br />

an der Vorlagengröße, der<br />

Farbtiefe, der Auflösung und dem<br />

Vorlagenformat (Abbildung B).<br />

Anschließend lässt sich der<br />

Scanner aus jeder entsprechenden<br />

Anwendung heraus nutzen.<br />

Wir testeten das Gerät sowohl<br />

mit Xscanimage als auch SANE/​<br />

Xsane, die beide den Scanner sofort<br />

erkannten und korrekt ansprachen.<br />

Auch die in der Software<br />

vorgesehenen Einstellmöglichkeiten<br />

ließen sich problemlos<br />

nutzen und damit der CLX-<br />

6220FX von mehreren Arbeitsstationen<br />

im Netz aus als Scanner<br />

verwenden (Abbildung C).<br />

Smart Panel<br />

Beim Smart Panel handelt es sich<br />

um ein einfaches Hilfsprogramm<br />

für die Panelleiste des Desktops.<br />

Es zeigt auf einen Blick<br />

den Status des CLX-<br />

6220FX an und erlaubt<br />

Einstellungen. Nach dem<br />

Download des etwa 20<br />

MByte großen Tarballs<br />

entpacken Sie diesen und<br />

wechseln anschließend in<br />

den dabei entstandenen<br />

Ordner cdroot/. Von dort<br />

installieren Sie die Software<br />

durch Aufruf von<br />

./ install.sh mit administrativen<br />

Rechten.<br />

Klicken Sie danach in der Panelleiste<br />

auf das blau-graue Symbol<br />

des Smart Panels, öffnet sich ein<br />

Fenster mit den aktuellen Füllstandsanzeigen<br />

der Tonerkartuschen<br />

des CLX-6220FX (Abbildung<br />

D, folgende Seite). Darüber<br />

hinaus können Sie durch einen<br />

Klick auf die Schaltfläche Printer<br />

Settings den Einstellungsdialog<br />

für den Drucker öffnen und dort<br />

Modifikationen vornehmen.<br />

Ein Klick auf die Schaltfläche<br />

Buy Now bringt Sie dagegen auf<br />

eine <strong>Web</strong>seite, die Verbrauchsmaterialien<br />

anbietet. Vor dem<br />

schnellen Kauf per Smart Panel<br />

sollten Sie jedoch erst einmal die<br />

Preise für Verbrauchsmaterialien<br />

im Internet vergleichen: Die Kartuschen<br />

für den CLX-6220FX gibt<br />

B Im Konfigurator<br />

können Sie auch Vorlagen<br />

einscannen.<br />

C Jedes Linux-Scanprogramm<br />

kommt auf<br />

Anhieb mit dem CLX-<br />

6220FX zurecht.<br />

www.linux-user.de<br />

08 | 12 79


hardware<br />

Samsung CLX-6220FX<br />

D Das Smart<br />

Panel verschafft<br />

einen schnellen Überblick<br />

über den Verbrauch<br />

des Toners.<br />

Samsung CLX-6220FX<br />

Drucker<br />

Auflösung<br />

Sprachen<br />

Speicher<br />

Prozessor<br />

Duplexdruck<br />

Kopierer<br />

Auflösung<br />

Duplex<br />

Einzug<br />

Geschwindigkeit<br />

Scanner<br />

Standards<br />

Auflösung<br />

Formate<br />

Besonderheiten<br />

Geschwindigkeit<br />

Faxgerät<br />

Auflösung<br />

Geschwindigkeit<br />

Speicher<br />

Rufnummernspeicher<br />

Papiermanagement<br />

Zufuhr<br />

Ablage<br />

Gewicht<br />

Sonstiges<br />

Energieverbrauch<br />

Auslastung<br />

Anschlüsse<br />

Bezug<br />

Bezugsquelle<br />

Preis<br />

es bei Drittanbietern preisgünstiger<br />

als im verlinkten Shop.<br />

9600x600 dpi<br />

PCL5c, PCL6, PostScript 3, SPL-C<br />

256 MByte (max. 512 MByte)<br />

Samsung 360 MHz<br />

ja<br />

1200x1200 dpi<br />

ja<br />

1 bis 99 Blatt<br />

max. 20 Seiten/​Minute<br />

TWAIN, WIA<br />

4800x4800 dpi<br />

BMP, JPG, PDF, TIFF<br />

Scan to Network, Scan to FTP, Scan to<br />

USB, Scan to SMB<br />

bis zu 3 Bilder/​min. bei 300 dpi (Farbe)<br />

max. 300x300 dpi (s/​w)<br />

33,6 kbit/​s<br />

4 MByte<br />

240 Rufnummern<br />

250 Blatt Papiermagazin (erweiterbar)<br />

170 Blatt<br />

60 bis 220 g/​qm<br />

< 550 W in Betrieb, < 11 W im Standby<br />

maximal 65 000 Seiten/​Monat<br />

USB 2.0, 10/​100-Mbit-Ethernet (RJ45),<br />

RJ11 (Faxgerät)<br />

Testgerät: IP-<strong>Web</strong> GmbH, Schwandorf,<br />

http:// www. ok2. de<br />

empf. VK: 700 Euro, Straßenpreis: unter<br />

400 Euro<br />

SyncThru<br />

Die webbasierte Informationsund<br />

Management-Konsole des<br />

CLX-6220FX firmiert unter der<br />

Bezeichnung SyncThru. Anders<br />

als bei herkömmlichen Printservern<br />

erhalten Sie<br />

hier detaillierte Informationen<br />

nicht<br />

nur zum Drucker,<br />

sondern können<br />

auch Warnmeldungen<br />

abfragen oder<br />

das Telefonbuch des<br />

integrierten Faxgerätes<br />

konsultieren.<br />

Dabei erreichen Sie SyncThru<br />

bequem von jedem Arbeitsplatz<br />

im Netz aus durch Eingabe der<br />

IP-Adresse des CLX-6220FX im<br />

<strong>Web</strong>browser. Die übersichtliche<br />

Oberfläche zeigt im Hauptfenster<br />

wichtige Angaben zum Gerät. Darüber<br />

befindet sich eine Menüleiste<br />

mit den Punkten Information,<br />

Adressbuch und Wartung (Abbildung<br />

E).<br />

Klicken Sie auf eine dieser<br />

Schaltflächen, so teilt sich das<br />

Hauptfenster in ein linkes Segment,<br />

das die einzelnen Untermenüs<br />

hierarchisch anzeigt, und einen<br />

mittigen, größeren Info-Bereich,<br />

der die aktuellen Statusmeldungen<br />

zum Gerät visualisiert.<br />

Als besonderes Schmankerl<br />

zeigt SyncThru über das Untermenü<br />

Information | Verbrauchsmaterial<br />

den genauen Tonerverbrauch<br />

inklusive der Anzahl der<br />

gedruckten Seiten an, aufgeschlüsselt<br />

nach den einzelnen Tonerkartuschen,<br />

sodass Sie einen<br />

detaillierten Überblick über die<br />

tatsächlichen laufenden Kosten<br />

für die Verbrauchsmaterialien erhalten<br />

(Abbildung F).<br />

Diese Informationen lassen sich<br />

durch einen Klick auf den Menüeintrag<br />

Informationen drucken<br />

oder die Schaltfläche Direktdruck<br />

auch auf Papier festhalten. Die<br />

Druck-Option steht dabei in jedem<br />

Informationsmenü zur Verfügung.<br />

Auf die gleiche Art und<br />

Weise durchforsten und drucken<br />

Sie über Adressbuch das Telefonbuch<br />

für das integrierte Faxgerät.<br />

Die Management-Konsole von<br />

SyncThru erreichen Sie ebenfalls<br />

im <strong>Web</strong>browser durch Eingabe<br />

der IP-Adresse des CLX-6220FX.<br />

Um hier Optionen modifizieren<br />

zu können, müssen Sie sich am<br />

Gerät als Administrator authentifizieren.<br />

Dazu klicken Sie rechts<br />

oben im Fenster auf die Schaltfläche<br />

Anmeldung und geben anschließend<br />

in den Eingabefeldern<br />

ID und Passwort die jeweiligen<br />

Zeichenfolgen ein. Voreingestellt<br />

hat Samsung die ID admin und<br />

das Passwort sec00000.<br />

In der Management-Konsole<br />

können Sie sehr detaillierte Einstellungen<br />

treffen, inklusive vieler<br />

Möglichkeiten zum Absichern<br />

des CLX-6220FX gegen unbefug-<br />

E Die Einstiegsseite von SyncThru liefert wichtige Informationen.<br />

80 08 | 12<br />

www.linux-user.de


Samsung CLX-6220FX<br />

hardware<br />

ten Zugriff sowie zusätzlicher<br />

Funktionen vor allem beim Betrieb<br />

des Scanners. Daneben lassen<br />

sich einzelne Benutzer freigeben<br />

oder sperren sowie nicht benötigte<br />

Dienste abschalten (Abbildung<br />

G).<br />

Manuelle Einstellungen<br />

Neben den software- und webbasierten<br />

Einstellmöglichkeiten bietet<br />

der CLX-6220FX auch die Option,<br />

die grundlegende Konfiguration<br />

am Gerät selbst vorzunehmen.<br />

Dazu stehen ein beleuchtetes<br />

mehrzeiliges Display sowie ein<br />

Tastenfeld zur Verfügung, das numerische<br />

Tasten und auch ein<br />

Tastenrad umfasst. Die einzelnen<br />

Gerätemodi erreichen Sie dabei<br />

durch drei rechts neben dem Display<br />

angeordnete Tasten mit einem<br />

Scanner-, einem Faxgeräteund<br />

einem Drucker-Symbol. Das<br />

Bedienfeld dient zusätzlich der<br />

Eingabe von Faxnummern und<br />

der Steuerung des Kopierers.<br />

In der Praxis<br />

Der CLX-6220FX überzeugte im<br />

Praxiseinsatz ohne Einschränkung.<br />

Er lieferte sowohl beim Monochrom-<br />

als auch beim Farbdruck<br />

selbst auf schlechteren Papieren<br />

tadellose Ausdrucke. Weder<br />

Druck- noch Scan-Geschwindigkeit<br />

gaben Anlass zur Kritik.<br />

Das Gerät wacht zudem sehr zügig<br />

aus dem Energiesparmodus<br />

auf, sodass Ausdrucke bereits<br />

nach wenigen Sekunden fertig<br />

vorliegen. Auch die von Samsungs<br />

Multifunktionsgerät erzeugte Geräuschkulisse<br />

hält sich in Grenzen:<br />

Zwar sind im CLX-6220FX<br />

Lüfter eingebaut, aber deren Betriebsgeräusch<br />

wirkt selbst im<br />

Dauereinsatz nicht penetrant.<br />

Die Verarbeitungsqualität des<br />

Gerätes kann sich ebenfalls sehen<br />

lassen. Obwohl der grau-blaue<br />

Kunststoff des Gehäuses auf den<br />

ersten Blick nicht sehr wertig erscheint,<br />

deuten geringe Spaltmaße<br />

auf eine sorgfältige Verarbeitung<br />

hin. Verschlüsse, Scharniere<br />

und die Tastatur des Bedienfeldes<br />

sind solide ausgeführt, und die<br />

Mechanik arbeitet ohne Toleranzen.<br />

Ein weiterer Pluspunkt:<br />

Innerhalb der Garantiezeit gewährt<br />

Samsung Vor-Ort-Service,<br />

der beim Ausfall oder Problemen<br />

schnell für Abhilfe sorgt.<br />

Fazit<br />

Das Gerät weist keine Schwächen<br />

auf und eignet sich aufgrund seiner<br />

soliden Bauweise sowohl für<br />

das anspruchsvolle Home-Office<br />

als auch für eine Firmenabteilung<br />

oder eine mittlere Unternehmensfiliale<br />

mit größerem Druckaufkommen.<br />

Linux-Anwender erhalten<br />

zudem mit dem Gerät eine<br />

sehr gute Software-Unterstützung,<br />

die weit über das bislang<br />

meist übliche Maß hinausgeht.<br />

Erfreulich ist außerdem, dass<br />

der koreanische Hersteller die<br />

laufenden Kosten nicht aus den<br />

Augen verloren hat und dabei<br />

eine genaue Kontrolle durch verschiedene<br />

Software-Tools ermöglicht.<br />

Mit einem Straßenpreis von<br />

deutlich unter 400 Euro ist der<br />

Samsung CLX-6220FX in der Anschaffung<br />

erheblich günstiger als<br />

vier Einzelgeräte und empfiehlt<br />

sich auch funktional als zuverlässig<br />

arbeitende Alternative. (jlu) n<br />

F Das freut jeden Controller:<br />

die Verbrauchsanzeige<br />

im<br />

CLX-6220FX.<br />

G SyncThru erlaubt<br />

auch etwas ungewöhnliche<br />

Einstellungen.<br />

info<br />

[1] Samsung CLX-6220FX:<br />

http:// tinyurl. com/ lu0812‐clx‐6220fx<br />

www.linux-user.de<br />

08 | 12 81


know-how<br />

Mosh/​AutoSSH<br />

SSH über unzuverlässige Leitungen<br />

Starke Verbindung<br />

SSH nervt, wenn die WLAN-Verbindung immer wieder abbricht, sich die IP-Adresse ändert,<br />

die Datenpakete über GSM nur tröpfeln und man das Getippte erst nach Sekunden zu Gesicht bekommt.<br />

Glücklicherweise gibt es mit AutoSSH und Mosh einen eleganten Ausweg aus dieser Situation. Axel Beckert<br />

README<br />

AutoSSH 1.4c,<br />

Mosh 1.2.2<br />

LU/autossh/<br />

AutoSSH und Mosh versuchen mit unterschiedlichen<br />

Methoden das Leben des SSH-<br />

Benutzers bei unzuverlässigen Internet-Verbindungen<br />

zu erleichtern. Während AutoSSH als<br />

Wrapper um SSH arbeitet, implementiert<br />

Mosh ein eigenes Protokoll über UDP.<br />

SSH ist für den Linux-Admin das<br />

Programm der Wahl, wenn es darum<br />

geht, sich per Kommandozeile<br />

auf einem entfernten Linuxoder<br />

BSD-Rechner einzuloggen.<br />

Allerdings kann SSH auch Nerven<br />

kosten – etwa, wenn die Verbindung<br />

in einem wackeligen Netz<br />

immer wieder abbricht oder die<br />

Datenpakete über GSM oder<br />

SkyDSL nur tröpfeln. Dasselbe<br />

gilt, wenn man den Laptop mal<br />

kurz schlafen legt oder in ein anderes<br />

Netzwerk wechselt und sich<br />

danach die IP-Adresse geändert<br />

hat. Die beiden Programme<br />

AutoSSH und Mosh gehen diese<br />

Problematik von ganz unterschiedlichen<br />

Seiten her an.<br />

AutoSSH<br />

AutoSSH [1] gibt es bereits seit<br />

über zehn Jahren. Es arbeitet als<br />

Wrapper um das normale<br />

SSH. Bedingt durch<br />

dieses Prinzip<br />

beherrscht<br />

AutoSSH fast alles, was SSH auch<br />

kann, weist aber auch fast alle<br />

Nachteile der SSH auf.<br />

Der Unterschied zwischen einer<br />

normalen SSH-Verbindung und<br />

einer via AutoSSH liegt darin,<br />

dass AutoSSH die Verbindung<br />

überwacht und sie bei einem Abbruch<br />

automatisch mit den gleichen<br />

Parametern neu startet –<br />

also mit den gleichen Tunnel und<br />

demselben auf dem entfernten<br />

Rechner auszuführenden Kommando.<br />

Die Verbindungsüberwachung<br />

von AutoSSH geschieht durch<br />

zwei eigene Port-Weiterleitungen.<br />

AutoSSH richtet diese zusätzlich<br />

zu gegebenenfalls vom Benutzer<br />

gewünschten Port-Weiterleitungen<br />

ein, jeweils eine in Hin- und<br />

eine in Rückrichtung (Abbildung<br />

A). Beide sind auf dem entfernten<br />

Rechner so miteinander<br />

verbunden, dass Daten, die Sie<br />

über die eine Weiterleitung senden,<br />

auf dem entfernten Rechner<br />

direkt wieder in die andere wandern<br />

und auf diesem Weg<br />

wieder bei Ihnen eintreffen.<br />

Bleiben<br />

sie<br />

aus, terminiert AutoSSH die bestehende<br />

Verbindung und versucht,<br />

sie anschließend neu aufzubauen<br />

(Listing 1).<br />

Sofern auf dem entfernten<br />

Rechner GNU Screen installiert<br />

ist, können Sie sich mithilfe des<br />

Kommandos<br />

$ autossh Remote‐Rechner ‐t 'scrU<br />

een ‐RD'<br />

auf dem entfernten Rechner zu<br />

einer existierenden Screen-Session<br />

verbinden, oder – wenn<br />

noch keine existiert – ein neue<br />

starten. Registriert AutoSSH einen<br />

Verbindungsabbruch, dann<br />

ruft es nach dem erneuten erfolgreichen<br />

Aufbau der SSH-<br />

Verbindung automatisch wieder<br />

screen ‐RD auf dem entfernten<br />

Rechner auf. Da dieses Mal eine<br />

Screen-Session existiert, verbindet<br />

es sich zu dieser.<br />

Auf diese Weise arbeiten Sie mit<br />

der Kombination aus AutoSSH<br />

und GNU Screen recht schnell<br />

wieder an der gleichen Stelle weiter,<br />

an der Sie – beispielsweise<br />

durch einen IP-Wechsel – zuvor<br />

unterbrochen wurden.<br />

Bemerken Sie noch vor AutoSSH,<br />

dass die Verbindung unterbrochen<br />

würde, terminieren Sie<br />

diese einfach mithilfe<br />

der SSH-<br />

Escape-<br />

© Oleksly Mark, 123RF<br />

82 08 | 12<br />

www.linux-user.de


Mosh/​AutoSSH<br />

know-how<br />

Sequenz Eingabetaste, Tilde,<br />

Punkt – das entspricht [Eingabe],<br />

[Alt]+[+],[Leertaste],[.] beim<br />

deutschen Tastaturlayout mit toter<br />

Tilde-Taste. AutoSSH startet<br />

die Verbindung daraufhin direkt<br />

wieder neu.<br />

Mosh<br />

Bei der „mobilen Shell“ Mosh [2]<br />

handelt es sich um eine Neuentwicklung<br />

aus den vergangenen<br />

zwei Jahren. Sie hat zum Ziel, auf<br />

den heutigen mobilen Endgeräten<br />

das entfernte Arbeiten per Kommandozeile<br />

zu ermöglichen, ohne<br />

dass die von TCP-Verbindungen<br />

her bekannten Probleme auftreten:<br />

TCP- und damit auch SSH-<br />

Verbindungen vertragen keinen<br />

Wechsel der IP-Adresse und werden<br />

bei schlechten Verbindungen<br />

empfindlich langsamer [3].<br />

Eine Mosh-Sitzung bricht im<br />

Gegensatz zu einer SSH-Sitzung<br />

nie endgültig ab. Deswegen<br />

braucht man mit Mosh auch keinen<br />

Wachhund plus künstliches<br />

Terminal mehr, wie das Duo<br />

AutoSSH und GNU Screen. Allerdings<br />

bedient sich Mosh intern<br />

ähnlicher Techniken wie Screen.<br />

Sie melden sich von Ihrem Laptop,<br />

Netbook oder Linux-Smartphone<br />

aus per Mosh auf dem Server<br />

an und bleiben dort angemeldet.<br />

Dabei spielt es keine Rolle,<br />

ob Sie in der Zwischenzeit vom<br />

WLAN auf UMTS gewechselt haben,<br />

die Internetverbindung zwischendurch<br />

einmal verloren ging<br />

oder der Laptop ein, zwei Tage im<br />

Suspend war: Solange auf keinem<br />

der beiden verbundenen Geräte<br />

der Mosh-Prozess beendet wurde,<br />

ist die Verbindung sofort wieder<br />

da, sobald Sie wieder eine Netzwerkverbindung<br />

zwischen den<br />

Rechnern herstellen.<br />

Aber Mosh bietet nicht nur bei<br />

wechselnden, sondern auch bei<br />

langsamen oder unzuverlässigen<br />

Internet-Verbindungen Vorteile,<br />

beispielsweise bei solchen über<br />

Satellit, bei schlechtem Mobilfunk-Empfang<br />

oder einem wackeligen<br />

WLAN.<br />

SSH-Verbindung<br />

Port-Weiterleitung retour<br />

Shell-Verbindung<br />

Port-Weiterleitung hin<br />

Sobald Mosh merkt, dass die Latenz<br />

für interaktives Arbeiten zu<br />

hoch oder die Datenrate zu niedrig<br />

ist, versucht es vorherzusagen,<br />

welche Änderung an der Terminalausgabe<br />

ein gemachter Tastendruck<br />

hervorruft, und zeigt<br />

das interpolierte Ergebnis an, bevor<br />

das tatsächliche Resultat über<br />

die Leitung zurückkommt.<br />

Das erweist sich als angenehm,<br />

wenn Sie auf dem entfernten<br />

Rechner mehr als nur ein paar<br />

Worte tippen – sei es beim Erstellen<br />

einer E-Mail, beim Chatten<br />

via Irssi, bei der Eingabe eines<br />

längeren Kommandos oder beim<br />

Editieren einer Textdatei in Vim.<br />

Obwohl Sie vielleicht blind<br />

schreiben, merken Sie manchmal,<br />

dass Sie sich vertippt haben, wissen<br />

aber oft nicht mehr genau,<br />

bei welchem Zeichen das war.<br />

Dann müssten Sie normalerweise<br />

warten, bis alle bereits getippten<br />

Zeichen im Terminal erscheinen,<br />

und erst das bereits Getippte korrigieren.<br />

Mit Mosh ist das einfacher:<br />

Nach wenigen getippten<br />

Zeichen merkt Mosh, dass es sich<br />

um Text handelt, der wieder angezeigt<br />

wird (etwa im Einfüge-<br />

Modus von Vim) und fängt an,<br />

getippte, aber noch nicht wieder<br />

vom entfernten Rechner zurückgekommene<br />

Zeichen auszugeben.<br />

Falls die getippten Zeichen dann<br />

doch nicht wie erwartet zurückkommen,<br />

etwa bei automatischem<br />

Zeilenumbruch, korrigiert<br />

Mosh die Anzeige. Und damit Sie<br />

wissen, was bereits von der Ge-<br />

user@lokaler.pc$ autossh remote.pc<br />

Willkommen auf remote.pc!<br />

user@remote.pc $<br />

Connection to remote.pc closed.<br />

ssh: connect to host remote.pc port 22: Connection timed out<br />

ssh: connect to host remote.pc port 22: Connection timed out<br />

Willkommen auf remote.pc!<br />

user@remote.pc $ exit<br />

Connection to remote.pc closed.<br />

user@lokaler.pc $<br />

Im Syslog finden sich danach folgende Meldungen:<br />

autossh: starting ssh (count 1)<br />

autossh: ssh child pid is 18851<br />

autossh: ssh exited with error status 255; restarting ssh<br />

autossh: starting ssh (count 2)<br />

autossh: ssh child pid is 19061<br />

autossh: ssh exited with status 0; autossh exiting<br />

Listing 1<br />

A AutoSSH überwacht<br />

die SSH-Verbindung<br />

mittels zweier Port-<br />

Weiterleitungen.<br />

www.linux-user.de<br />

08 | 12 83


know-how<br />

Mosh/​AutoSSH<br />

B Mosh bemerkt die<br />

unterbrochene Verbindung,<br />

aber Sie können<br />

trotzdem in aller Ruhe<br />

weitertippen.<br />

Mosh für alle<br />

genstelle zurückkam und was<br />

Mosh bisher nur vorhergesagt<br />

hat, unterstreicht es die vorhergesagten<br />

Zeichen (Abbildung B).<br />

Arbeiten Sie also über eine Verbindung<br />

mit hoher Latenz, zeigen<br />

sich immer die letzten paar getippten<br />

Wörter unterstrichen.<br />

Während die Unterstreichung<br />

rechts den frischen Eingaben<br />

folgt, verkürzt sie sich auf der linken<br />

Seite, sobald nach und nach<br />

die Zeichen vom entfernten Rechner<br />

hereintröpfeln. Es sieht fast<br />

so aus, als würde jemand unter<br />

dem Getippten „Snake“ spielen.<br />

Bei Fehleingaben erkennen Sie<br />

sofort, wo und wie Sie sich vertippt<br />

hat, und können ohne Verzögerung<br />

eine Korrektur vornehmen,<br />

obwohl der Vertipper vom<br />

entfernten Rechner noch nicht<br />

zurückgesendet wurde.<br />

Die Technik hinter Mosh<br />

Wie schafft Mosh nach knapp<br />

zwei Jahren Entwicklung Dinge,<br />

die SSH in mehr als 15 Jahren<br />

nicht gelernt hat? Wie kommt es,<br />

dass nach so langer SSH-Vorherrschaft<br />

beim entfernten Einloggen<br />

plötzlich wieder neuer Schwung<br />

Mosh ist als freie Software unter der GNU GPLv3 verfügbar. Viele<br />

gängige Distributionen stellen auch Binärpakete oder Ports bereit,<br />

darunter Debian (via Backports), Ubuntu (via PPA), Gentoo,<br />

Arch Linux (via AUR), Fedora, Mageia und Slackware. Daneben<br />

gibt es Mosh auch für Mac OS X (via Homebrew, MacPorts oder<br />

als Pkg-Paket) und in den FreeBSD Ports. An einem Android-<br />

Client arbeiten die Entwickler gerade [4]. Für diverse Umgebungen<br />

und Geräte, wie etwa das Nokia N9 oder für Cygwin unter<br />

Windows liefert das Mosh-Wiki von der Community gepflegte<br />

Installationsanleitungen [5].<br />

in diesen Bereich<br />

kommt? Die Antwort<br />

ist einfach und<br />

kompliziert zugleich:<br />

Mosh hat<br />

nur Teile des Rades<br />

neu erfunden – die,<br />

bei denen es unumgänglich<br />

war.<br />

Mosh nutzt zur<br />

Synchronisation der<br />

Anzeige auf dem lokalen<br />

Terminal ein<br />

neu entwickeltes<br />

Protokoll namens State Synchronization<br />

Protocol (SSP), also zu<br />

Deutsch etwa „Zustandssynchronisationsprotokoll“.<br />

SSP setzt<br />

statt auf TCP auf UDP auf und<br />

braucht damit weniger Netzwerkressourcen<br />

für die Verbindungsverwaltung<br />

als die TCP-Verbindungen<br />

von SSH. Gleichzeitig erlaubt<br />

SSP auch ein Roaming, also<br />

das Wechseln der IP-Adresse des<br />

lokalen Rechners.<br />

Beibehalten hat Mosh vor allem<br />

Dinge, die SSH von Haus aus gut<br />

und zuverlässig erledigt, wie die<br />

Authentifizierung („Wer loggt<br />

sich ein?“) und die Autorisierung<br />

(„Darf der das?“). Für diese Zwecke<br />

nutzt es selbst eine SSH-Verbindung.<br />

Über diese wird dann<br />

auch der Mosh-Server gestartet<br />

und Sitzungsschlüssel zwischen<br />

ihm und dem Mosh-Client ausgetauscht.<br />

Danach beendet das Tool<br />

die anfängliche SSH-Verbindung<br />

wieder, und Mosh arbeitet nun<br />

noch über seine eigene UDP-basierte<br />

und AES-128 verschlüsselte<br />

SSP-Verbindung.<br />

Insofern stellt Mosh weniger<br />

eine Konkurrenz für SSH dar als<br />

vielmehr eine funktionelle Ergänzung.<br />

Zusammengefasst läuft<br />

eine Mosh-Sitzung unter der<br />

Haube wie folgt ab:<br />

• Der Mosh-Client ruft einen<br />

SSH-Client auf (zurzeit Open-<br />

SSH) und verbindet sich per<br />

SSH mit dem Server. Dabei unterstützt<br />

es alle gängigen SSH-<br />

Methoden zur Authentifizierung<br />

und Autorisierung (Passwort,<br />

SSH-Schlüssel, etc.).<br />

• Auf dem Server wird über die<br />

SSH-Verbindung der Mosh-Server<br />

gestartet. Er teilt dem<br />

Mosh-Client über die SSH-Verbindung<br />

mit, auf welchem UDP-<br />

Port er lauscht und wie der Sitzungsschlüssel<br />

lautet.<br />

• Der Mosh-Client eröffnet eine<br />

mit dem Session-Key verschlüsselte<br />

Verbindung zum genannten<br />

UDP-Port des Mosh-Servers.<br />

• Schließlich beendet Mosh die<br />

initiale SSH-Verbindung, die<br />

Sitzung läuft jetzt nur noch via<br />

UDP.<br />

Sobald die vom Mosh-Server-Prozess<br />

gestartete Shell oder sonstige<br />

Textmodus-Anwendung sich<br />

beendet, terminiert der Mosh-<br />

Server erst die Verbindung zum<br />

Mosh-Client und beendet dann<br />

auch sich selbst.<br />

Nachteile von Mosh<br />

Im Vergleich zu SSH räumt Mosh<br />

zwar einige Probleme aus der Vergangenheit<br />

aus dem Weg, die bei<br />

schlechten Netzwerkverbindungen<br />

auftreten. Deswegen ist<br />

Mosh aber noch lange kein kompletter<br />

Ersatz für all die Dinge,<br />

die SSH sonst noch so kann.<br />

Mit SSH und GNU Screen meldet<br />

man sich typischerweise etwa<br />

im Büro per SSH auf einem Server<br />

an und startet dort GNU<br />

Screen. Später loggt man sich<br />

dann von zu Hause aus ebenfalls<br />

per SSH auf dem Server ein, wo<br />

man nun die Screen-Sitzung<br />

übernimmt. Mit Mosh klappt das<br />

ohne GNU Screen nicht, da hier<br />

Client- und Server-Prozess immer<br />

ein unzertrennliches Gespann bil-<br />

[1] AutoSSH:<br />

http:// www. harding. motd. ca/ autossh/<br />

[2] Mosh: http:// mosh. mit. edu<br />

info<br />

[3] SSH over UDP: http:// publications. lib.​<br />

chalmers. se/ records/ fulltext/ 123799. pdf<br />

[4] Mosh für Android: https:// github. com/​<br />

keithw/ mosh/ issues/ 32<br />

[5] Installations-Anleitungen:<br />

https:// github. com/ keithw/ mosh/ wiki/ Dist<br />

ribution‐specific‐installation<br />

84 08 | 12<br />

www.linux-user.de


Mosh/​AutoSSH<br />

know-how<br />

den und Mosh das Verbinden von<br />

einem anderen Rechner aus per<br />

Design nicht vorsieht.<br />

In die gleiche Kerbe schlägt der<br />

Fakt, dass der Mosh-Server-Prozess<br />

auf dem entfernten Rechner<br />

nicht merkt, wenn beispielsweise<br />

einem Laptop, von dem aus Mosh<br />

gestartet wurde, die Batterie ausgeht<br />

und damit der Prozess am<br />

anderen Ende der Verbindung<br />

nicht mehr existiert. Man muss<br />

sich dann erneut auf dem entfernten<br />

Rechner anmelden und<br />

den verwaisten Mosh-Server-Prozess<br />

manuell beenden.<br />

Ein weiteres Manko stellt die<br />

derzeit noch fehlende Unterstützung<br />

für IPv6 dar. Diese befindet<br />

sich zwar bereits in Planung,<br />

wirft aber auch neue Probleme<br />

auf – etwa, auf welche Weise sich<br />

der Wechsel einer laufenden Verbindung<br />

vom IPv4-Protokoll auf<br />

das IPv6-Protokoll oder umgekehrt<br />

implementieren lässt.<br />

Auch kann Mosh anders als SSH<br />

noch keine Dateien übertragen<br />

oder Netzwerk-Ports auf den oder<br />

vom entfernten Rechner weiterleiten.<br />

Viele Features werden<br />

zwar auf der Mosh-Mailingliste<br />

diskutiert (zum Teil sogar recht<br />

emotional), aber bei vielen erscheint<br />

fraglich, ob die Entwickler<br />

sie jemals implementieren. Hingegen<br />

stehen das Tunneln von<br />

X11-Anwendungen und das Weiterleiten<br />

des SSH-Agenten bereits<br />

offiziell auf der Roadmap.<br />

Fazit<br />

Sowohl AutoSSH als auch Mosh<br />

erweisen sich beide als nützliche<br />

Helfer für Anwender, die sich oft<br />

von mobilen Geräten aus über<br />

schlechte oder langsame Verbindungen<br />

per Secure Shell auf einem<br />

anderen Rechner anmelden.<br />

Beide Tools haben ihre Nischen,<br />

die sich in einigen Bereichen etwas<br />

überlappen.<br />

AutoSSH nimmt zusammen mit<br />

GNU Screen vor allem bei häufigen<br />

IP-Wechsel oder Schlafenlegen<br />

des Laptops Arbeit ab, hilft<br />

jedoch nicht bei hoher Latenz,<br />

wie bei Verbindungen via Satellit.<br />

AutoSSH kann wie SSH beliebige<br />

Netzwerk Ports weiterleiten. Getunnelte<br />

X-Anwendungen überleben<br />

allerdings den Neustart der<br />

SSH-Verbindung auch nicht.<br />

Mosh hilft ebenfalls bei häufigem<br />

IP-Wechsel, vor allem aber<br />

bei hoher Latenz. Andererseits<br />

eignet es sich nur mäßig, um von<br />

verschiedenen Rechnern aus auf<br />

dieselbe Shell zuzugreifen: Dann<br />

kommt man um den Einsatz von<br />

Screen nicht herum. Ganz passen<br />

muss Mosh (zumindest momentan)<br />

bei Verbindungen, bei denen<br />

es mittels SSH-Agent einen SSH-<br />

Key auf den entfernten Rechner<br />

weiterzuleiten gilt, sowie auf<br />

Rechnern, die sich nur via IPv6<br />

erreichen lassen. (jlu) n<br />

Der Autor<br />

Axel Beckert<br />

(http:// noone. org/​<br />

abe/) hat Informatik<br />

mit Nebenfach<br />

Biologie studiert. Er<br />

arbeitet als Linux-<br />

Systemadministrator<br />

an der ETH Zürich<br />

und ist Mitglied<br />

des Debian-Projektes.<br />

Dort betreut<br />

er unter anderem<br />

die Pakete von<br />

AutoSSH und GNU<br />

Screen.<br />

Danksagung<br />

Der Autor bedankt<br />

sich bei Frank Hofmann<br />

für seine kritischen<br />

Anmerkungen<br />

und Kommentare<br />

im Vorfeld<br />

dieses Artikels.<br />

www.linux-user.de<br />

08 | 12 85


service<br />

IT-Profimarkt<br />

PROFI<br />

MARKT<br />

Sie fragen sich, wo Sie maßgeschneiderte<br />

Linux-Systeme sowie kompetente Ansprechpartner<br />

zu Open-Source-Themen<br />

finden? Der IT-Profimarkt weist Ihnen<br />

hier als zuverlässiges Nachschlagewerk<br />

den Weg. Die im Folgenden gelisteten<br />

Unternehmen beschäftigen Experten auf<br />

ihrem Gebiet und bieten hochwertige<br />

Produkte und Leistungen.<br />

Die exakten Angebote jeder Firma entnehmen<br />

Sie deren Homepage. Der ersten Orientierung<br />

dienen die Kategorien Hardware,<br />

Software, Seminaranbieter, Systemhaus,<br />

Netzwerk/TK sowie Schulung/Beratung.<br />

Der IT-Profimarkt-Eintrag ist ein<br />

Service von Linux-Magazin und <strong>LinuxUser</strong>.<br />

Online-Suche<br />

Besonders komfortabel finden Sie einen<br />

Linux-Anbieter in Ihrer Nähe online über<br />

die neue Umkreis-Suche unter:<br />

[http://www.it-profimarkt.de]<br />

Weitere Informationen:<br />

Linux New Media AG<br />

Anzeigenabteilung<br />

Putzbrunner Str. 71<br />

D-81739 München<br />

Tel: +49 (0) 89 / 99 34 11-23<br />

Fax: +49 (0) 89 / 99 34 11-99<br />

E-Mail: anzeigen@linux-user.de<br />

it-Profimarkt (Liste sortiert nach Postleitzahl)<br />

Firma Anschrift Telefon <strong>Web</strong> 1 2 3 4 5 6<br />

Schlittermann internet & unix support 01099 Dresden, Tannenstr. 2 0351-802998-1 www.schlittermann.de 3 3 3 3<br />

imunixx GmbH UNIX consultants 01468 Moritzburg, Heinrich-Heine-Str. 4 0351-83975-0 www.imunixx.de 3 3 3 3 3<br />

Heinlein Professional Linux Support GmbH 10119 Berlin, Schwedter Straße 8/​9b 030-405051-0 www.heinlein-support.de 3 3 3 3 3<br />

TUXMAN Computer 10369 Berlin, Anton-Saefkow-Platz 8 030-97609773 www.tuxman.de 3 3 3 3 3<br />

Hostserver GmbH 10405 Berlin, Winsstraße 70 030-47375550 www.hostserver.de 3<br />

Compaso GmbH 10439 Berlin, Driesener Strasse 23 030-3269330 www.compaso.de 3 3 3 3 3<br />

Linux Information Systems AG Berlin 12161 Berlin, Bundesallee 93 030-818686-03 www.linux-ag.com 3 3 3 3 3<br />

elego Software Solutions GmbH 13355 Berlin, Gustav-Meyer-Allee 25 030-2345869-6 www.elegosoft.com 3 3 3 3<br />

verion GmbH 16244 Altenhof, Unter den Buchen 22 e 033363-4610-0 www.verion.de 3 3 3<br />

Logic Way GmbH 19061 Schwerin, Hagenower Str. 73 0385-39934-48 www.logicway.de 3 3 3 3<br />

Sybuca GmbH 20459 Hamburg, Herrengraben 26 040-27863190 www.sybuca.de 3 3 3 3 3<br />

iTechnology GmbH 20537 Hamburg, Normannenweg 28 0)40 20 22 62 10 www.itechnology.de 3 3 3 3<br />

JEL Ingenieurbuero 23911 Einhaus, Hauptstr. 7 04541-8911-71 www.jeltimer.de 3<br />

beitco - Behrens IT-Consulting 26197 Ahlhorn, Lessingstr. 27 04435-9537330-0 www.beitco.de 3 3 3 3 3<br />

talicom GmbH 30169 Hannover, Calenberger Esplanade 3 0511-123599-0 www.talicom.de 3 3 3 3 3<br />

teuto.net Netzdienste GmbH 33602 Bielefeld, Niedenstr. 26 0521-96686-0 www.teuto.net 3 3 3 3 3<br />

MarcanT GmbH 33602 Bielefeld, Ravensberger Str. 10 G 0521-95945-0 www.marcant.net 3 3 3 3 3 3<br />

Hostserver GmbH 35037 Marburg, Biegenstr. 20 06421-175175-0 www.hostserver.de 3<br />

LINET Services GmbH 38122 Braunschweig, Am alten Bahnhof 4b 0531-180508-0 www.linet-services.de 3 3 3 3 3 3<br />

OpenIT GmbH 40599 Düsseldorf, In der Steele 33a-41 0211-239577-0 www.OpenIT.de 3 3 3 3 3<br />

Linux-Systeme GmbH 45277 Essen, Langenbergerstr. 179 0201-298830 www.linux-systeme.de 3 3 3 3 3<br />

Linuxhotel GmbH 45279 Essen, Antonienallee 1 0201-8536-600 www.linuxhotel.de 3<br />

OpenSource Training Ralf Spenneberg 48565 Steinfurt, Am Bahnhof 3-5 02552-638755 www.opensource-training.de 3<br />

Intevation GmbH 49074 Osnabrück, Neuer Graben 17 0541-33508-30 osnabrueck.intevation.de 3 3 3 3<br />

Sigs Datacom GmbH 53842 Troisdorf, Lindlaustraße 2c 02241-2341-201 sigs-datacom.de 3<br />

uib gmbh 55118 Mainz, Bonifaziusplatz 1b 06131-27561-0 www.uib.de 3 3 3 3<br />

LISA GmbH 55411 Bingen, Elisenhöhe 47 06721-49960 www.lisa-gmbh.de 3 3 3 3 3<br />

saveIP GmbH 64283 Darmstadt, Schleiermacherstr. 23 06151-666266 www.saveip.de 3 3 3 3 3<br />

LAMARC EDV-Schulungen u. Beratung GmbH 65193 Wiesbaden, Sonnenberger Straße 14 0611-260023 www.lamarc.com 3 3 3 3<br />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus 4 = Seminaranbieter 5 = Software 6 = Schulung/Beratung (S<br />

88 08 | 12<br />

www.linux-user.de


IT-Profimarkt<br />

service<br />

it-Profimarkt (Fortsetzung von S. 88)<br />

Firma Anschrift Telefon <strong>Web</strong> 1 2 3 4 5 6<br />

ORDIX AG 65205 Wiesbaden, Kreuzberger Ring 13 0611-77840-00 www.ordix.de 3 3 3 3 3<br />

LinuxHaus Stuttgart 70565 Stuttgart, Hessenwiesenstrasse 10 0711-2851905 www.linuxhaus.de 3 3 3 3 3<br />

Manfred Heubach EDV und Kommunikation 73728 Esslingen, Hindenburgstr. 47 0711-4904930 www.heubach-edv.de 3 3 3 3<br />

Waldmann EDV Systeme + Service 74321 Bietigheim-Bissingen, Pleidelsheimer Str. 25 07142-21516 www.waldmann-edv.de 3 3 3 3 3<br />

in-put Das Linux-Systemhaus 76133 Karlsruhe, Moltkestr. 49 0721-6803288-0 www.in-put.de 3 3 3 3 3 3<br />

Bodenseo 78224 Singen, Pomeziastr. 9 07731-1476120 www.bodenseo.de 3 3 3<br />

Linux Information Systems AG 81739 München, Putzbrunnerstr. 71 089-993412-0 www.linux-ag.com 3 3 3 3 3<br />

LinuxLand International GmbH 81739 München, Putzbrunnerstr. 71 089-99341441 www.linuxland.de 3 3 3 3 3 3<br />

Synergy Systems GmbH 81829 München, Konrad-Zuse-Platz 8 089-89080500 www.synergysystems.de 3 3 3 3 3<br />

B1 Systems GmbH 85088 Vohburg, Osterfeldstrasse 7 08457-931096 www.b1-systems.de 3 3 3 3 3<br />

ATIX AG 85716 Unterschleißheim, Einsteinstr. 10 089-4523538-0 www.atix.de 3 3 3 3 3 3<br />

OSTC Open Source Training and Consulting GmbH 90425 Nürnberg, Waldemar-Klink-Str. 10 0911-3474544 www.ostc.de 3 3 3 3 3 3<br />

Dipl.-Ing. Christoph Stockmayer GmbH 90571 Schwaig, Dreihöhenstr. 1 0911-505241 www.stockmayer.de 3 3 3<br />

pascom - Netzwerktechnik GmbH & Co.KG 94469 Deggendorf, Berger Str. 42 0991-270060 www.pascom.net 3 3 3 3 3<br />

fidu.de IT KG 95448 Bayreuth, Ritter-v.-Eitzenb.-Str. 19 09208-657638 www.linux-onlineshop.de 3 3 3 3<br />

Computersysteme Gmeiner 95643 Tirschenreuth, Fischerhüttenweg 4 09631-7000-0 www.gmeiner.de 3 3 3 3 3<br />

RealStuff Informatik AG CH-3007 Bern, Chutzenstrasse 24 0041-31-3824444 www.realstuff.ch 3 3 3<br />

CATATEC CH-3013 Bern, Dammweg 43 0041-31-3302630 www.catatec.ch 3 3 3<br />

Syscon Systemberatungs AG CH-8003 Zürich, Zweierstrasse 129 0041-44-4542010 www.syscon.ch 3 3 3 3 3<br />

Würth Phoenix GmbH IT-39100 Bozen, Kravoglstraße 4 +39 0471 56 41 11 www.wuerth-phoenix.com 3 3 3 3<br />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus 4 = Seminaranbieter 5 = Software 6 = Schulung/Beratung <br />

Alles zum ThemA Android<br />

Die Monatszeitschrift für Android-Fans, Smartphone- und Tablet-Nutzer<br />

DigisuB: nur 39,90 € im Jahr (12 PDFs)<br />

Jetzt bestellen unter:<br />

www.android–user.de/digisub<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de<br />

+<br />

Lesen Sie News und<br />

Artikel schon 1 Woche<br />

vor dem Kiosk-Termin!


service<br />

Usergroups<br />

linux.usergroups<br />

Im Folgenden die Liste der uns bekannten Linux-Usergroups im deutschsprachigen Raum in Kurzfassung. Änderungen und Updates bitte der Redaktion (usergroups@linuxnewmedia.de) mitteilen (Name, Beschreibung,<br />

Treffpunkt, Adresse, Ansprechpartner, Homepage, E-Mail, Telefon, Fax, Mitgliederzahl ...).<br />

Aachen<br />

Aachen<br />

Ahaus<br />

Ahlen/Westfalen<br />

Ahrtal<br />

Aichach<br />

Allershausen<br />

Altdorf /<br />

Nürnberg<br />

Amberg<br />

Ansbach<br />

Aschaffenburg<br />

Augsburg<br />

Backnang<br />

Bad Brückenau<br />

Bad Driburg<br />

Bad Hersfeld<br />

Bad Wildungen<br />

Bamberg<br />

Basel (CH)<br />

Bautzen<br />

Bayreuth<br />

Bergisch<br />

Gladbach<br />

Berlin<br />

Berlin<br />

Berlin /<br />

Friedrichshain-<br />

Kreuzberg<br />

Berlin /<br />

Lichtenrade<br />

Berlin /<br />

Marzahn-<br />

Hellersdorf<br />

Bern (CH)<br />

Biel / Bienne /<br />

Seeland (CH)<br />

Aachener Linux-Usergroup<br />

(ALUG)<br />

http://www.alug.de<br />

Computer-Club an der RWTH<br />

Aachen e.V. (CCAC)<br />

http://www.ccac.rwth-aachen.<br />

de<br />

Linux-Usergroup Ahaus (LUGAH)<br />

http://www.lugah.de<br />

LUG Ahlen<br />

http://linuxahlen.li.funpic.de/<br />

Linux-Usergroup Ahrtal (Ahrlug)<br />

http://www.ahrlug.de<br />

Linux-Usergroup Aichach<br />

http://www.lug-aichach.de<br />

Linux-Usergroup Ampertal<br />

(LUGA)<br />

http://www.luga.net<br />

GNU/Linux User Group Altdorf<br />

(GLUGA)<br />

http://www.gluga.de<br />

Open-Source-Stammtisch<br />

Amberg (amTuxTisch)<br />

http://www.amtuxtisch.de/<br />

Linux-Usergroup Ansbach<br />

(LUGAN)<br />

http://www.lug-an.de<br />

Linux-Usergroup Aschaffenburg<br />

(LUGAB)<br />

http://www.lugab.de<br />

Linux-Usergroup Augsburg<br />

(LUGA)<br />

http://www.luga.de<br />

Linux-Usergroup Backnang<br />

http://www.lug-bk.de<br />

Linux-Usergroup Bad Brückenau<br />

BrunoZehe@web.de<br />

Linux-Usergroup Bad Driburg<br />

http://www.bdpeng.de.vu<br />

Linux-Usergroup Hersfeld<br />

http://www.lugh.de<br />

Linux-Usergroup Bad Wildungen<br />

http://linuxheaven.cjb.net<br />

Linux-Usergroup Bamberg<br />

(GLUGBA)<br />

http://www.lug-bamberg.de<br />

Linux-Usergroup Basel (BLUG)<br />

http://www.blug.ch<br />

Linux-Usergroup Bautzen<br />

http://www.lug-bz.de<br />

Linux-Usergroup Bayreuth<br />

http://www.linux-bayreuth.de<br />

Bergische Linux- und Unix-<br />

Enthusiasten u. -Freunde<br />

(BLUEFROGS)<br />

http://www.bluefrogs.de<br />

Linux-Usergroup Berlin (BeLUG)<br />

http://www.belug.de<br />

Ubuntu Berlin<br />

http://www.ubuntu-berlin.de<br />

LinuxWorks!<br />

http://friedrichshain.homelinux.<br />

org<br />

Linux-Usergroup Lichtenrade<br />

(LUGL)<br />

http://www.lugl.net<br />

Open-Source-Fan-Group<br />

Marzahn-Hellersdorf (OSFanG)<br />

http://www.osfang.de<br />

Linux-Usergroup Bern (LUGBE)<br />

http://www.lugbe.ch<br />

Linux-Usergroup Seeland<br />

(LugSeeland)<br />

http://www.lugseeland.ch<br />

Bielefeld<br />

Bitburg-Prüm<br />

Bocholt<br />

Bochum<br />

Bonn<br />

Bonn<br />

Bozen (Südtirol)<br />

Brandenburg<br />

Bremen<br />

Bremerhaven<br />

Bretten<br />

Bruchsal<br />

Buchholz<br />

Nordheide<br />

Burghausen<br />

Böblingen /<br />

Sindelfingen<br />

Celle<br />

Cham<br />

Chemnitz<br />

Coesfeld<br />

Cottbus<br />

Damme<br />

Darmstadt<br />

Datteln<br />

Delitzsch<br />

(Sachsen)<br />

Detmold<br />

Dorfen<br />

Dormagen<br />

Dortmund<br />

Linux Usergroup Ostwestfalen-<br />

Lippe<br />

http://lug-owl.de/Lokales/<br />

Bielefeld/<br />

Linux-Usergruppe Schneifeltux<br />

http://www.schneifeltux.de<br />

Linux-Usergroup Bocholt (BLUG)<br />

http://www.blug.de<br />

Linux-Usergroup Bochum<br />

(BGLUG)<br />

http://www.bglug.de<br />

Bonner Linux-Usergroup<br />

(BOLUG)<br />

http://www.bonn.linux.de/<br />

Linux/Unix Usergroup Sankt<br />

Augustin (LUUSA)<br />

http://www.luusa.org<br />

Linux-Usergroup Bozen (LUGBZ)<br />

http://www.lugbz.org<br />

Brandenburger Linux User<br />

Group e.V. (BraLUG)<br />

http://www.bralug.de<br />

Linux-Stammtisch Bremen<br />

http://lug-bremen.info<br />

Linux-Stammtisch Bremerhaven<br />

http://www.lug-bhv.de/<br />

Brettener Linux-Usergroup<br />

(BRELUG)<br />

http://www.brelug.de<br />

Linux-Usergroup Bruchsal<br />

http://www.lug-bruchsal.de<br />

Linux-Usergroup Buchholz<br />

Nordheide<br />

http://www.lug-buchholznordheide.de<br />

Linux-Usergroup Burghausen<br />

http://www.lug-burghausen.org<br />

Linux-Usergroup Böblingen/<br />

Sindelfingen (LUGBB)<br />

http://www.lugbb.org<br />

LUG Celle<br />

http://www.lug-celle.de<br />

Linux-Usergroup Oberpfalz<br />

(LUGO)<br />

http://lugo.signum-media.de<br />

Linux-Usergroup Chemnitz<br />

(CLUG)<br />

http://www.clug.de<br />

Linux-Usergroup Coesfeld<br />

http://www.lug-coesfeld.de<br />

Cottbuser Linux-Usergroup<br />

(COLUG)<br />

http://www.colug.de/<br />

Users of Linux Damme (ULD)<br />

http://www.damme.de<br />

Linux User Group Darmstadt<br />

(DaLUG)<br />

http://www.dalug.org<br />

Linux-Usergroup Datteln (LUGD)<br />

http://www.lug-datteln.de<br />

Linux-Usergroup Delitzsch<br />

http://www.lug-delitzsch.de<br />

Linux-Usergroup Ostwestfalen-<br />

Lippe (LUGOWL)<br />

http://lug-owl.de/Lokales/<br />

Detmold/<br />

Linux-Usergroup Dorfen (LUGD)<br />

http://www.dolug.de<br />

PinguinPower (PP)<br />

http://www.dorlug.de<br />

Linux-Usergroup Dortmund<br />

(LUGRUDO)<br />

http://www.outerspace.de/<br />

lugrudo/<br />

Dresden<br />

Duisburg<br />

Duisburg<br />

Düsseldorf<br />

Ebstorf<br />

Eggenfelden<br />

Eichsfeld<br />

Eisenach<br />

Elmshorn<br />

Erding<br />

Erkelenz<br />

Erlangen<br />

Essen<br />

Essen<br />

Essen<br />

Essen<br />

Esslingen<br />

Ettlingen / Albtal<br />

Fischbachtal<br />

Flensburg<br />

Frammersbach<br />

Frankfurt<br />

Freiburg<br />

Freiburg<br />

Freising<br />

Friedrichshafen<br />

Fulda<br />

Fürstenfeldbruck<br />

Linux-Usergroup Dresden<br />

http://lug-dd.schlittermann.de/<br />

Duisburger Linux-Usergroup<br />

(DULUG)<br />

http://www.dulug.de<br />

Linux-Usergroup Duisburg<br />

(LUG-DUI)<br />

http://lugdui.ihg.uni-duisburg.<br />

de<br />

Linux-Usergroup Düsseldorf<br />

(DLUG)<br />

http://www.dlug.de<br />

Ebstorfer Linux-Stammtisch<br />

(ELST)<br />

support@konqi-werkstatt.de<br />

Eggenfeldener Linux-Usergroup<br />

(EgLUG)<br />

http://www.lug-eggenfelden.org<br />

Eichsfelder Linux User Group<br />

(EICLUG)<br />

http://linux.eichsfeld.net<br />

Linux-Usergroup Eisenach<br />

http://lug-eisenach.de/<br />

Computerclub Elmshorn e.V.<br />

http://www.cceev.de/<br />

Linux-Usergroup Erding<br />

http://www.lug-erding.de<br />

Linux-Usergroup Erkelenz<br />

http://www.lug-erkelenz.de<br />

Erlanger Linux-Usergroup<br />

(ERLUG)<br />

http://www.erlug.de<br />

Essener Linux-Freunde (ELiF)<br />

http://www.linuxstammtisch.de<br />

Essener Linux-Stammtisch<br />

(ELiSta)<br />

http://members.tripod.de/elista<br />

Essener Linux-Usergroup<br />

(ELUG)<br />

http://www.elug.de<br />

Perl Mongers im Ruhrgebiet<br />

(Ruhr.pm)<br />

http://ruhr.pm.org/<br />

Linux-Usergroup Esslingen<br />

http://rhlx01.rz.fht-esslingen.<br />

de/lug/<br />

LUG Albtal<br />

http://www.lug-albtal.de<br />

Linux Usergroup Fischbachtal<br />

(FIBALUG)<br />

http://fibalug.de<br />

Linux-Usergroup Flensburg<br />

(LUGFL)<br />

http://www.lugfl.de<br />

Frammersbacher LUG<br />

kke@gmx.net<br />

Linux-Usergroup Frankfurt<br />

http://www.lugfrankfurt.de<br />

Freiburger Linux-Usergroup<br />

(FLUG)<br />

http://www.freiburg.linux.de<br />

LUG der Studentensiedlung<br />

Freiburg (StuSieLUG)<br />

http://linux.studentensiedlung.<br />

de<br />

Linux-Usergroup Freising<br />

(LUGFS)<br />

http://www.lug-fs.de<br />

Yet another Linux User Group<br />

(YALUG)<br />

http://yalug.de<br />

Linux-Usergroup Fulda<br />

http://lug.rhoen.de<br />

LUG des Bürgernetzes Landkreis<br />

Fürstenfeldbruck (LUG FFB)<br />

http://lug.ffb.org/<br />

Fürth<br />

Gießen<br />

Gießen<br />

Grafing<br />

Greifswald<br />

Groß-Gerau<br />

Groß-Zimmern<br />

Gummersbach<br />

Guntersblum<br />

Gunzenhausen<br />

Gütersloh<br />

Göppingen<br />

Göttingen<br />

Göttingen<br />

Haiger<br />

Halberstadt<br />

Halle<br />

Hamburg<br />

Hamburg<br />

Hameln<br />

Hanau<br />

Hannover<br />

Hatten<br />

Hattingen<br />

Hegau<br />

Heidenheim<br />

Heilbad<br />

Heiligenstadt<br />

Fürther Linux-Usergroup (FLUG)<br />

http://www.fen-net.de/flug<br />

Linux-Usergroup Gießen (LUGG)<br />

http://www.lugg.de<br />

LUG der Liebig-Schule Gießen<br />

(LioLUG)<br />

http://liolug.liebigschulegiessen.de/<br />

Linux-Usergroup Grafing (LUGG)<br />

http://www.lug-grafing.org<br />

Linux-Usergroup Greifswald<br />

http://www.lug-hgw.de/<br />

Linux-Usergroup Groß-Gerau<br />

(LUGGG)<br />

http://www.luggg.de<br />

Linux-Usergroup Groß-Zimmern<br />

(GROZILUG)<br />

http://www.grozilug.de<br />

Gummersbacher Linux-<br />

Usergroup (GULUG)<br />

http://www.gulug.de<br />

Guntersblumer Linux-Usergroup<br />

(GLUG)<br />

http://www.ghks.de/glug/<br />

Gunzenhauser Linux-Usergroup<br />

(LUGGUU)<br />

http://www.gunnet.de/linux<br />

Linux-Usergroup Ostwestfalen-<br />

Lippe (LUGOWL)<br />

http://lug-owl.de/Lokales/<br />

Guetersloh/<br />

Linux-Usergroup Filstal<br />

http://lug.fto.de/<br />

Göttinger Linux User Group<br />

(GOELUG)<br />

http://www.goelug.de/<br />

Göttinger Unix/Linux-<br />

Anwendergruppe (GULAG)<br />

http://gulag.de<br />

Linux-Usergroup Lahn-Dill-Kreis<br />

(LDK/LUG)<br />

http://www.ldknet.org/lug/<br />

Linux-Usergroup Halberstadt<br />

http://www.lug-hbs.de<br />

Hallesche Linux-Usergroup<br />

(HALIX)<br />

http://www.halix.info<br />

LUG-Balista Hamburg e.V. (LUG-<br />

Balista )<br />

http://www.lug-balista.de<br />

Unix-Gruppe der Hamburger<br />

MH e.V.<br />

http://www.hmh-ev.de<br />

Linux-Usergroup Weserbergland<br />

(LBW)<br />

http://tux.hm<br />

Hanauer Linux-Usergroup<br />

(HULUG)<br />

http://www.hulug.de/<br />

Linux-Usergroup Hannover<br />

(LUGH)<br />

http://lug-hannover.de<br />

Linux-Usergroup Oldenburg-<br />

Land (LUGOLand)<br />

http://www.lugoland.de<br />

Hattinger Linux-Usergroup<br />

(HatLug)<br />

http://www.hatlug.de<br />

Hegau Linux User Gruppe<br />

(Hegau LUG)<br />

http://www.linuxag.hegau.org<br />

Linux User Group Heidenheim<br />

http://www.lug-hdh.de<br />

Linux-Stammtisch LinuxNode<br />

Eichsfeld<br />

http://linuxnode.eichsfeld.net<br />

90<br />

08 | 12


Usergroups/Markt<br />

service<br />

linux.usergroups (Fortsetzung von S. 89)<br />

Heilbronn<br />

Herford<br />

Herrenberg<br />

Hesel<br />

Hildesheim<br />

Holzminden<br />

Horrheim<br />

Hoyerswerda<br />

Idstein (Taunus)<br />

Ingolstadt<br />

Iserlohn<br />

Itzehoe<br />

Jena<br />

Jever<br />

Kaarst<br />

Kaiserslautern<br />

Kaiserslautern<br />

Karlsruhe<br />

Kassel<br />

Kiel<br />

Kierspe-<br />

Meinerzhagen<br />

Koblenz<br />

Koblenz<br />

Konstanz<br />

Konz<br />

Krefeld<br />

Kreuzlingen (CH)<br />

Kronach<br />

Linux-Usergroup Heilbronn<br />

(LUUG HN)<br />

http://www.luug-hn.org<br />

GNU/Linux Usergroup Herford<br />

(GLUGHF)<br />

http://lug-owl.de/LugWiki/<br />

GLUGHF<br />

Linux-Stammtisch im Gäu<br />

(LiStiG)<br />

http://www.listig.org<br />

CC Ostfriesland - Linux-Gruppe<br />

http://www.cco-online.de/linux<br />

Hildesheimer Linux-Usergroup<br />

(NG) (HiLUG-NG)<br />

http://www.hilug-ng.de<br />

Computerclub Hochsolling e.V.<br />

http://www.cch-holzminden.de/<br />

Linux-Usergroup Vaihingen/<br />

Enz (VLUG)<br />

http://www.vlug.de<br />

Linux-Usergroup Hoyerswerda<br />

(HOYLUG)<br />

http://linux.griebel-web.eu/<br />

Linux-Usergroup Taunus (LUG-<br />

Taunus)<br />

http://www.lug-taunus.org<br />

Linux-Usergroup Ingolstadt e.V.<br />

http://www.lug-in.de<br />

Linux-Usergroup Iserlohn<br />

http://area51.fh-swf.de/<br />

Computer Club Itzehoe e.V.<br />

(CCIZ)<br />

http://www.cc-itzehoe.de<br />

Linux-Usergroup Jena (LUG<br />

Jena)<br />

http://www.lug-jena.de<br />

Friesische Linux-Usergroup<br />

(FriLUG)<br />

http://www.frilug.de<br />

Kaarster Linux-Usergroup<br />

(KAALUG)<br />

http://www.kaalug.de<br />

Linux-Usergroup Kaiserslautern<br />

(LUG-KL)<br />

http://www.lug-kl.de<br />

Universität Kaiserslautern<br />

(UNIX-AG)<br />

http://www.unix-ag.uni-kl.<br />

de/~linux/<br />

Karlsruher Linux-Usergroup<br />

(KaLUG)<br />

http://www.karlsruhe.linux.de<br />

Linux-Usergroup Kassel (LUGK)<br />

http://www.lug-kassel.de<br />

LUG Kiel<br />

http://www.lug-kiel.de<br />

Linux-Usergroup Märkischer<br />

Kreis (LUGMK)<br />

linuxusergroupmk@netscape.<br />

net<br />

Linux User Group Mayen-<br />

Koblenz (LUG-MYK)<br />

http://www.lug-myk.de/<br />

LUG der Universität Koblenz<br />

http://www.colix.org<br />

Linux-Usergroup Bodensee<br />

(LLUGB)<br />

http://llugb.amsee.de/<br />

Linux-Usergroup Konz (TRILUG)<br />

http://www.trilug.fh-trier.de<br />

Linux-Usergroup Krefeld<br />

(LUG-KR)<br />

http://www.lug-kr.de<br />

Linux-Usergroup Kreuzlingen<br />

http://linuxtreff.ch/<br />

Linux-Usergroup Kronach<br />

http://www.lug-kronach.de<br />

Köln<br />

Köln<br />

Landau<br />

Landshut<br />

Langen (Hessen)<br />

/ Dreieich /<br />

Egelsbach<br />

Langenfeld<br />

Lauf an der<br />

Pegnitz<br />

Leipzig<br />

Lenningen<br />

Lindenberg<br />

Lingen / Rheine<br />

Linz (A)<br />

Lippstadt / Soest<br />

/ Erwitte<br />

Lohr<br />

Loitsche<br />

Ludwigsburg<br />

Luxembourg<br />

Lübeck<br />

Lüneburg<br />

Lünen<br />

Lörrach<br />

Lörrach<br />

Magdeburg<br />

Mainz<br />

Marburg<br />

Marktredwitz<br />

Marl<br />

Memmingen<br />

Meppen<br />

Metelen<br />

Kölner Gentoo Linux User Group<br />

(KGLUG)<br />

http://www.kglug.de<br />

Linux-Workshop Köln (LiWoK)<br />

http://www.uni-koeln.de/<br />

themen/linux/<br />

Linux-Usergroup Landau (LUG-<br />

Landau)<br />

http://www.lug-ld.de<br />

Linux-Usergroup Landshut<br />

http://www.lalug.de<br />

Langener Linux-Usergroup<br />

(LaLUG)<br />

http://www.lalug.net<br />

Langenfelder Linux-Usergroup<br />

(LANLUG)<br />

http://www.lanlug.org<br />

Linux-Usergroup Lauf a. d.<br />

Pegnitz (LUGLAUF)<br />

http://www.lug-lauf.de<br />

Leipziger Linux-Stammtisch<br />

http://www.gaos.org/lug-l/<br />

Linux User Group Lenningen<br />

http://linuxusergrouplenningen.<br />

de.vu<br />

Linux-Usergroup Lindau (LugLi)<br />

http://www.allgaeu.org/lugli<br />

Linux-Usergroup Spelle<br />

http://www.spelle.net/lugs<br />

Linux-Usergroup Linz (LUGL)<br />

http://www.lugl.at<br />

Linux Usergroup Erwitte<br />

http://www.lug-erwitte.de<br />

Linux-Usergroup Lohr (LUG<br />

Lohr)<br />

http://lug.lohr-am-main.de<br />

Linux-Stammtisch Loitsche<br />

(LSL)<br />

http://www.t-online.de/home/<br />

mumumu/<br />

Linux-Usergroup Raum<br />

Ludwigsburg (LuLUG)<br />

http://www.lulug.de<br />

Linux Luxembourg (LiLux)<br />

http://www.linux.lu<br />

Linux-Usergroup Lübeck<br />

http://www.linuxuser-luebeck.<br />

de<br />

Linux-Usergroup Lüneburg<br />

(LueneLUG)<br />

http://luene-lug.org<br />

LUG Lünen<br />

http://www.lug-luenen.de<br />

Linux-Usergroup Lörrach<br />

(LUGLOE)<br />

http://www.lug-loerrach.de<br />

Lörracher Linux Usergroup<br />

(LÖLUG)<br />

http://www.loelug.de<br />

Magdeburger Linux User Group<br />

e. V. (MDLUG)<br />

http://www.mdlug.de<br />

Linux-Usergroup Mainz (UFO)<br />

http://www.ufo.uni-mainz.de<br />

Marburger Linux-Usergroup<br />

(MRLUG)<br />

http://www.mr-lug.de<br />

Linux-Gruppe Marktredwitz<br />

ststroes@tirnet.de<br />

Linux-Usergroup Marl<br />

http://www.lug-marl.de<br />

Linux-Usergroup Allgäu (LUGAL)<br />

http://www.lugal.de<br />

Linux-Usergroup Meppen<br />

http://www.lug-meppen.de<br />

Linux-Stammtisch Metelen<br />

http://www.linuxdu.de<br />

S. 92<br />

Harte Nuss?<br />

Geknackt!<br />

fauxware, Fotolia<br />

■ Hilfe für Einsteiger<br />

■ Topaktuelle News<br />

■ Riesiges Artikelarchiv<br />

www.linux-community.de<br />

Deine tägliche Portion Linux<br />

08 | 12 91


service<br />

Usergroups<br />

linux.usergroups (Fortsetzung von S. 91)<br />

Mitterteich<br />

Moers<br />

Mosbach<br />

Mühlheim a. d.<br />

Ruhr<br />

München<br />

München<br />

München<br />

München<br />

München Süd-<br />

Ost / Ottobrunn<br />

München Süd-<br />

West<br />

Münster<br />

Mönchengladbach<br />

Mörfelden-<br />

Walldorf<br />

Naumburg<br />

Neubrandenburg<br />

Neuburg an der<br />

Donau<br />

Neuenburg<br />

Nieder-Olm<br />

Niederrhein<br />

Nienburg<br />

Norderstedt<br />

Nordheide<br />

Nußdorf / Aiging<br />

Nürnberg<br />

Oberhausen<br />

Oberkirchen<br />

Oberpfalz<br />

Linux-Usergroup Mitterteich<br />

http://www.linux-mitterteich.de<br />

Linux-Usertreffen in Moers<br />

opers@syrinx1.du.gtn.com<br />

Linux-Usergroup Mosbach<br />

(LUGMOS)<br />

http://linuxwiki.de/LugMosbach<br />

Penguins hour - Workshops und<br />

Selbsthilfegruppe (Penhour)<br />

http://www.az-muelheim.de/<br />

penhour/<br />

BSD Social Event München (BSE)<br />

http://bse.42.org<br />

BSD-Usergroup in München<br />

(BIM)<br />

http://berklix.org/bim/<br />

Münchner Gentoo Linux User<br />

Group (MGLUG)<br />

http://www.mglug.de<br />

Münchner Linux-Usergroup<br />

(MUC-LUG)<br />

http://www.muc-lug.de<br />

Linux-Usergroup Ottobrunn<br />

(LUGOTT)<br />

http://www.lug-ottobrunn.de<br />

Linux-Usergroup Würmtal<br />

(WLUG)<br />

http://wlug.acos.net<br />

Linux-Stammtisch Münster<br />

(MueSLI)<br />

http://www.mueslihq.de<br />

Linux-Usergroup<br />

Mönchengladbach (LUGMOE)<br />

http://www.lugmoe.de<br />

Linux Usergroup Mörfelden-<br />

Walldorf (MöWa-LUG)<br />

http://www.moewa-lug.de<br />

Linux User Group Naumburg<br />

(LUGNMB)<br />

http://lugnmb.dyndns.org<br />

Linux-Usergroup<br />

Neubrandenburg e.V. (LUG-NB)<br />

http://www.lug-nb.de<br />

LUG Neuburg an der Donau<br />

(LUG ND)<br />

http://www.lug-nd.de<br />

Linux-Usergroup Neuenburg<br />

http://w3-net.ri-web.de/cont/<br />

lugnbg/index.php<br />

Rheinhessener Linux-<br />

Gemeinschaft<br />

info@kkcs.de<br />

Niederrheinische Linux Unix<br />

User Group (NLUUG)<br />

http://www.nluug.de<br />

Linux-Usergroup Nienburg<br />

(NILUG)<br />

http://ni-linux.de<br />

Linux-Usergroup Norderstedt<br />

(LUGN)<br />

http://www.lug-norderstedt.de<br />

LUUG Nordheide<br />

http://www.luug-nordheide.de<br />

Linux-Usergroup Traunstein<br />

(LUGTra)<br />

http://www.lug-ts.de<br />

Linux-Usergroup Nürnberg<br />

(LUGNü)<br />

http://www.align.de/<br />

Linux-Usergroup Oberhausen<br />

(LUGOR)<br />

http://www.linuxob.de<br />

LUG Renchtal-Tuxe<br />

http://tuxe.renchtal.com<br />

Linux-Usergroup Oberpfalz<br />

http://www.cham.baynet.<br />

de/lugo/<br />

Oberwallis (CH)<br />

Offenburg<br />

Oldenburg<br />

Olpe<br />

Osnabrück<br />

Ostwestfalen-<br />

Lippe<br />

Paderborn<br />

Passau<br />

Peine<br />

Pfaffenhofen<br />

(Ilm)<br />

Pforzheim<br />

Pirmasens<br />

Potsdam<br />

Preetz<br />

(Schleswig-<br />

Holstein)<br />

Prerow<br />

Quedlinburg<br />

Quickborn<br />

Rathenow<br />

Ravensberg<br />

Ravensburg<br />

Ravensburg<br />

Regensburg<br />

Regensburg<br />

Reutlingen<br />

Rheda-<br />

Wiedenbrück<br />

Rhein-Neckar<br />

Rosenheim<br />

Rostock<br />

Linux-Usergroup Oberwallis<br />

(LUGO)<br />

http://www.lugo.ch<br />

Linux-Usergroup Offenburg<br />

(LUGOG)<br />

http://www.lugog.de<br />

Linux-Usergroup Oldenburg<br />

(LUGO)<br />

http://oldenburg.linux.de<br />

Linux-Usergroup Olpe<br />

http://www.lug-raum-olpe.de.vu<br />

Linux-Usergroup Osnabrück<br />

http://www.lugo.de<br />

Linux-Usergroup Ostwestfalen-<br />

Lippe (LUG-OWL)<br />

http://www.lug-owl.de<br />

Linux-Usergroup Ostwestfalen-<br />

Lippe (LUG-OWL)<br />

http://lug-owl.de/Lokales/<br />

Paderborn/<br />

Linux-/Unix-Usergroup Passau<br />

(LUGP)<br />

http://www.fmi.uni-passau.<br />

de/~lug/<br />

Linux-Usergroup Peine (LUGP)<br />

http://www.lug-peine.org<br />

Hallertux e.V.<br />

http://www.hallertux.de<br />

Linux-Usergroup Pforzheim<br />

(LUGP)<br />

http://www.pf-lug.de<br />

Linux-Stammtisch Pirmasens<br />

http://www.ic.pirmasens.de<br />

Potsdamer Linux-Usergroup<br />

(UPLUG)<br />

http://www.uplug.de<br />

Linux Usergroup Preetz<br />

(PreetzLUG)<br />

http://preetzlug.de<br />

Linux-Usergroup Prerow<br />

c.dittmann@magrathea.de<br />

Linux-Usergroup Quedlinburg<br />

(LUGQLB)<br />

http://www.lug-qlb.de<br />

Quickborner Linux-Usergroup<br />

(QLUG)<br />

http://www.qlug.net<br />

Linux-Stammtisch Rathenow<br />

http://linux.php4u.org<br />

Linux-Usergroup Ravensberg<br />

(LUGRAV)<br />

http://www.lugrav.de<br />

Informatik- und Netzwerkverein<br />

Ravensburg e.V (LUGRA)<br />

http://www.infnet.verein.<br />

de/linux/<br />

Linux-Usergroup Ravensburg<br />

(LUG)<br />

http://www.yalug.de<br />

Linux-Usergroup Regensburg<br />

http://www.lugr.de<br />

Regensburger Linux-Usergroup<br />

(R-LUG)<br />

http://www.regensburg.franken.<br />

de/rlug/<br />

Linux-Usergroup Reutlingen<br />

http://www.lug-reutlingen.de<br />

Linux-Usergroup Rheda-<br />

Wiedenbrück (LUG-RHWD)<br />

http://www.lug-rhwd.de<br />

Unix Usergroup Rhein-Neckar<br />

e.V. (UUGRN)<br />

http://www.uugrn.org<br />

Linux-Usergroup Rosenheim<br />

http://www.lug-rosenheim.org<br />

Rostocker Linux-Usergroup<br />

http://linux.baltic.net<br />

Rotenburg<br />

Rotenburg a.d.<br />

Fulda<br />

Rothenburg o. d.<br />

Tauber<br />

Römerberg /<br />

Speyer<br />

Saalfeld<br />

Saarland<br />

Salem<br />

Salzburg (A)<br />

Sauerland<br />

Schaumburg<br />

Schwabach<br />

Schweinfurt<br />

Schweiz (CH)<br />

Schwerin<br />

Schwäbisch<br />

Gmünd<br />

Seeheim-<br />

Jugenheim<br />

Senftenberg<br />

Siegen<br />

Sindelfingen /<br />

Böblingen<br />

Sinsheim<br />

Speyer<br />

St. Pölten (A)<br />

Stormarn<br />

Stuttgart<br />

Taubertal<br />

Thüringen<br />

Tirol (A)<br />

Traunstein<br />

Trier<br />

Troisdorf /<br />

Siegburg / Spich<br />

Computerverein Rotenburg<br />

(CVR)<br />

http://www.cvr.de/linux<br />

init4 - Die Linux-Enthusiasten<br />

(init4)<br />

http://www.init4.de<br />

Linux-Usergroup Rothenburg<br />

(LUGROT)<br />

http://lugrot.de<br />

LUG Römerberg / Speyer<br />

http://linuxwiki.de/<br />

LugRoemerbergSpeyer<br />

LUG Slf/Ru<br />

http://lug-slf.de<br />

Linux User Group Saar e.V.<br />

(LUG Saar)<br />

http://www.lug-saar.de<br />

Linux-Usergroup Salem<br />

http://www.lug-salem.de<br />

Linux-Usergroup Salzburg<br />

http://www.salzburg.luga.or.at<br />

Linux-Usergroup Sauerland<br />

http://www.lug-sauerland.de<br />

Linux-Usergroup Schaumburg<br />

http://www.lug-schaumburg.de<br />

Linux User Schwabach e.V.<br />

(LUSC)<br />

http://www.lusc.de<br />

Linux-Usergroup Schweinfurt<br />

http://www.lug-sw.de<br />

Linux-Usergroup Switzerland<br />

http://www.lugs.ch<br />

West-Mecklenburger Linux-<br />

Usergroup (WEMELUG)<br />

http://www.wemelug.de<br />

Linux-Stammtisch Schwäbisch<br />

Gmünd (LSSG)<br />

http://www.uliweb.de/lssg<br />

Linux-Usergroup Darmstadt<br />

http://www.mathematik.tudarmstadt.de/dalug/<br />

Linux-Usergroup Senftenberg<br />

(LUGSE)<br />

http://www.lugse.de<br />

UNIX-AG Siegen (Uni-GH Sie)<br />

http://www.si.unix-ag.org<br />

Böblingen-Club Linux-User-<br />

Gruppe (SinLUG)<br />

http://www.mefia.org<br />

Linux-Usergroup Sinsheim<br />

(SiLUG)<br />

http://www.linuxwiki.de/<br />

LugSinsheim<br />

Linux-Usergroup Ketsch<br />

http://www.lug-ketsch.de<br />

Linux-Usergroup St. Pölten<br />

(LUGSP)<br />

http://www.lugsp.at<br />

Linux-Usergroup Stormarn<br />

http://www.lug-stormarn.de<br />

Linux-Usergroup Stuttgart<br />

(LUGS)<br />

http://www.lug-s.org/<br />

Taubertäler Linux-Usergroup<br />

(TaLUG)<br />

http://www.talug.de/<br />

Thüringer Linux-Usergroup<br />

(TLUG)<br />

http://www.tlug.de/<br />

Tiroler Linux Usergroup (LUGT)<br />

http://www.lugt.at<br />

Linux-Usergroup Traunstein<br />

(LUGTS)<br />

http://www.lug-ts.de<br />

Linux User Group Trier (LUG<br />

Trier)<br />

http://www.lug-trier.de<br />

Troisdorfer Linux-Usergroup<br />

(TroLUG)<br />

http://www.trolug.de<br />

Tuttlingen<br />

Tübingen<br />

Ulm<br />

Untermain<br />

Viersen<br />

Villingen-<br />

Schwenningen<br />

Voralpen (A)<br />

Vorarlberg (A)<br />

Waiblingen<br />

Waldkraiburg<br />

Walsrode<br />

Wedel<br />

Weinheim<br />

Weißenbrunn<br />

Wernigerode<br />

Westerwald<br />

Wien (A)<br />

Wien (A)<br />

Wien (A)<br />

Wiesbaden<br />

Wilhelmshaven<br />

Witten<br />

Wolfsburg<br />

Wolfsburg<br />

Worms<br />

Wuppertal<br />

Würmtal<br />

Würzburg<br />

Würzburg<br />

Zweibrücken<br />

Zwickau<br />

Linux-Usergroup Tuttlingen<br />

http://lug.intuttlingen.de/<br />

Linux-Usergroup Tübingen<br />

(LUGT)<br />

http://tuebingen.linux.de<br />

Linux-Usergroup Ulm (LUGU)<br />

http://lugulm.de<br />

Linux-Usergroup Untermain<br />

(LUGU)<br />

http://www.lug-untermain.de<br />

Linux-Usergroup Viersen (LUGV)<br />

http://www.lug-viersen.de<br />

Linux User Group Villingen-<br />

Schwenningen e.V. (LUG-VS e.V.)<br />

http://www.lug-vs.org<br />

Linux-Usergroup Voralpen<br />

(VALUG)<br />

http://www.valug.at<br />

Linux-Usergroup Vorarlberg<br />

(LUGV)<br />

http://www.lugv.at<br />

Computerclub Waiblingen e.V.<br />

http://www.ccwn.org<br />

Linux-Usergroup Waldkraiburg<br />

http://www.lug-waldkraiburg.<br />

org<br />

Linux-Usergroup Walsrode<br />

http://www.lug-walsrode.de/<br />

Linux-Usergroup Wedel (LUG<br />

Wedel)<br />

http://www.lug-wedel.de<br />

Computer-Club Weinheim e.V.<br />

(CCW)<br />

http://ccw.iscool.net<br />

Linux-Usergroup Kronach<br />

(LUGKR)<br />

http://www.kronachonline.de<br />

Linux-Usergroup Wernigerode<br />

(LUGWR)<br />

http://www.lug-wr.de<br />

Linux-Usergroup Westerwald<br />

http://www.lug-westerwald.de<br />

Linux Usergroup Wien<br />

http://www.viennalinux.at<br />

Linux-Usergroup Austria (LUGA)<br />

http://www.luga.or.at<br />

Linux-Usergroup TU Wien (LLL)<br />

lll@radawana.cg.tuwien.ac.at<br />

Linux-Usergroup Wiesbaden<br />

Penguin Usergroup<br />

http://www.pug.org<br />

Linux-Usergroup Wilhelmshaven<br />

(LUG-WHV)<br />

http://www.lug-whv.de<br />

Wittener Linux-Usergroup<br />

(WitLUG)<br />

http://www.witlug.de<br />

Wolfsburger Linux-Usergroup<br />

(WOBLUG)<br />

http://www.lug.wolfsburg.de<br />

Wolfsburger Unix-Usergroup<br />

(WUUG)<br />

http://www.unix.necoac.de<br />

Wormser Linux User Group<br />

(WoLUG)<br />

http://www.wolug.de<br />

Wuppertaler Linux-Usergroup<br />

(WupLUG)<br />

http://www.wuplug.org<br />

Würmtaler Linux-Usergroup<br />

(WLUG)<br />

http://www.wlug.de<br />

Linux-Usergroup Würzburg<br />

(LUGWUE)<br />

http://www.lugwue.de<br />

Linux-Usergroup Würzburg<br />

(WÜLUG)<br />

http://www.wuelug.de<br />

Linux-Usergroup Zweibrücken<br />

http://www.lug-zw.de<br />

Linux-Usergroup Zwickau<br />

(ZLUG)<br />

http://www.zlug.org<br />

<br />

92 08 | 12<br />

www.linux-user.de


Seminare<br />

service<br />

DiD you<br />

know?<br />

Linux-Magazin<br />

ACADEMY<br />

Online-Training<br />

Prüfungsvorbereitung<br />

für LPIC 1 & 2<br />

Besorgen Sie sich Brief und<br />

Siegel für Ihr Linux-<br />

Knowhow mit der<br />

LPI-Zertifizierung.<br />

- Training für die Prüfungen<br />

LPI 101 und 102<br />

- Training für die Prüfungen<br />

LPI 201 und 202<br />

Sparen Sie mit<br />

paketpreiSen!<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

OpenSource Training Ralf Spenneberg<br />

Schulungen direkt vom Autor<br />

Linux Firewall Lösungen<br />

5 Tage 03.09. ­ 07.09.2012<br />

DHCP, DNS und DNSSEC<br />

3 Tage 18.09. ­ 20.09.2012<br />

Advanced Monitoring<br />

4 Tage 17.09. ­ 20.09.2012<br />

LPIC­3<br />

5 Tage 08.10. ­ 12.10.2012<br />

Virtualisierung mit KVM<br />

3 Tage 09.10. ­ 11.10.2012<br />

Hacking <strong>Web</strong>applications<br />

4 Tage 16.10. ­ 19.10.2012<br />

SELinux Administration<br />

2 Tage 06.11. ­ 07.11.2012<br />

Linux System Administration / LPIC­1<br />

5 Tage 12.11. ­ 16.11.2012<br />

IPv6 mit Linux<br />

3 Tage 13.11. ­ 15.11.2012<br />

Freie Distributionswahl:<br />

Opensuse, Fedora, Debian Squeeze,<br />

CentOS oder Ubuntu LTS<br />

Ergonomische Arbeitsplätze<br />

Umfangreiche Schulungsunterlagen mit<br />

Übungen<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/lpic<br />

Am Bahnhof 3­5<br />

48565 Steinfurt<br />

Tel.: 02552 638755<br />

Fax: 02552 638757<br />

Weitere Informationen unter www.os­t.de<br />

LM-Academy_1-9h_Anzeige_LPIC-Mike_v2.indd 1<br />

©mipan, fotolia<br />

Linux-Magazin<br />

ACADEMY<br />

20%<br />

22.02.2012 17:12:54 Uhr<br />

Treue-Rabatt für<br />

Abonnenten<br />

Online-Training<br />

IT-Sicherheit<br />

Grundlagen<br />

mit Tobias Eggendorfer<br />

Themen:<br />

- physikalische Sicherheit<br />

- logische Sicherheit<br />

• Betriebssystem<br />

• Netzwerk<br />

- Sicherheitskonzepte<br />

- Sicherheitsprüfung<br />

Inklusive Benutzer- und<br />

Rechteverwaltung, Authentifizierung,<br />

ACLs sowie wichtige<br />

Netzwerkprotokolle und mehr!<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/sicherheit<br />

UNIX-C-C++ Java<br />

Seminare<br />

in Nürnberg<br />

(oder inhouse)<br />

UNIX/Linux<br />

UNIX/Linux-Aufbau<br />

C, C-Aufbau<br />

C++<br />

OOA/OOD (mit UML)<br />

Java<br />

Perl, XML<br />

weitere Kurse auf Anfrage, Telephonhotline<br />

Dipl.-Ing.<br />

Christoph Stockmayer GmbH<br />

90571 Schwaig/Nbg • Dreihöhenstraße 1<br />

Tel.: 0911/505241 • Fax 0911/5009584<br />

EMail: sto@stockmayer.de<br />

http://www.stockmayer.de<br />

WusstEn siE’s?<br />

Linux-Magazin und <strong>LinuxUser</strong><br />

haben ein englisches<br />

Schwester magazin!<br />

Am besten, Sie informieren gleich<br />

Ihre Linux-Freunde in aller Welt...<br />

Treue-Rabatt für<br />

Abonnenten<br />

www.linux-magazine.com<br />

Linux-Magazin<br />

LM-Academy_1-9h_Security-Mike.indd 1<br />

ACADEMY<br />

Online-Training<br />

Erfolgreicher Einstieg in<br />

WordPress 3<br />

mit Hans-Georg Esser, Chefredakteur EasyLinux<br />

Ansprechende <strong>Web</strong>seiten, Blogs und<br />

Shops einfach selber erstellen<br />

❚ Installation in 5 Minuten<br />

❚ Designs ändern<br />

❚ Optimieren für Suchmaschinen<br />

❚ Funktionen erweitern<br />

❚ Benutzerrechte festlegen<br />

❚ Geld verdienen mit Werbung<br />

❚ Besucher analysieren<br />

❚ Sicherheit und Spam-Schutz<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/wordpress<br />

12.04.2011 14:00:35 Uhr<br />

Linux-Magazin<br />

ACADEMY<br />

Online-Training<br />

mit Hans-Georg Esser, Chefredakteur EasyLinux<br />

OpenOffice -<br />

Arbeiten mit Vorlagen<br />

Erleichtern Sie sich Ihre<br />

tägliche Arbeit mit (Auszug):<br />

❚ einheitlichen Dokumentenvorlagen<br />

❚ automatischen Formatierungen<br />

❚ generierten Inhaltsverzeichnissen<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Mit vielen<br />

Praxisbeispielen<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/openoffice<br />

LMI_3-9h_german_24-11-2011.indd 1<br />

24.11.2011 1-9h_Anzeige_wordpress_v02.indd 11:25:52 Uhr www.linux-user.de 1<br />

08 | 12 93<br />

LM_Academy_1-9h_Anzeige_openoffice-Mike.indd 1<br />

18.04.2011 11:18:15 Uhr<br />

12.04.2011 15:08:54 Uhr


service<br />

Veranstaltungen / Autoren / Inserenten<br />

veranstaltungen<br />

16.-20.07.2012<br />

OSCON<br />

Portland, OR, USA<br />

http://www.oscon.com/oscon2012<br />

20.-22.07.2012<br />

OpenSUSE Collaboration Summer Camp 2012<br />

Olympiaki Akti, Griechenland<br />

http://www.os-el.gr/<br />

26.-29.07.2012<br />

HaxoGreen 2012<br />

Dudelange, Luxemburg<br />

http://www.haxogreen.lu<br />

26.07.-01.08.2012<br />

Guadec 2012<br />

A Coruña, Spanien<br />

http://www.guadec.org<br />

08.-10.08.2012<br />

USENIX Security ’12<br />

Bellevue, WA, USA<br />

http://www.usenix.org/events/sec12/<br />

20.-22.08.2012<br />

YAPC Europe 2012<br />

Universität Frankfurt/M.<br />

Campus Bockenheim<br />

Senckenberganlage 31<br />

60325 Frankfurt am Main<br />

http://act.yapc.eu/ye2012/<br />

25.-26.08.2012<br />

FrosCon 2012<br />

Hochschule Bonn-Rhein-Sieg<br />

Grantham-Allee 20<br />

53757 Sankt Augustin<br />

http://www.froscon.de/en/home/<br />

29.-31.08.2012<br />

LinuxCon North America<br />

San Diego, CA, USA<br />

https://events.linuxfoundation.org/events/linuxcon<br />

08.-09.09.2012<br />

Barcelona Ruby Conference<br />

Barcelona, Spanien<br />

http://baruco.org/<br />

19.09.2012<br />

2012 High Performance Computing for Wall Street<br />

New York City, NY, USA<br />

http://www.flaggmgmt.com/hpc/<br />

19.-21.09.2012<br />

XDC2012<br />

Suse Linux Products GmbH<br />

Maxfeldstraße 5<br />

90409 Nürnberg<br />

http://wiki.x.org/wiki/Events/XDC2012/<br />

02.-03.10.2012<br />

Apps World<br />

London, Großbritannien<br />

http://www.apps-world.net/europe/<br />

08.-10.10.2012<br />

OSDI ’12<br />

Hollywood, CA, USA<br />

http://www.usenix.org/events/osdi12/<br />

10.-11.10.2012<br />

<strong>Web</strong>it Congress<br />

Istanbul, Türkei<br />

http://www.webitexpo.com/en/webit/2012/index.html<br />

17.-19.10.2012<br />

LibreOffice Conference 2012<br />

Berlin<br />

http://conference.libreoffice.org<br />

18.-19.10.2012<br />

Libre Software World Conference 2012<br />

Santiago de Compostela, Spanien<br />

http://www.libresoftwareworldconference.com/<br />

20.-23.10.2012<br />

OpenSuse Conference 2012<br />

Prag, Tschechische Republik<br />

http://en.opensuse.org/Portal:Conference<br />

23.-25.10.2012<br />

Strata Conference 2012<br />

New York City, NY, USA<br />

http://strataconf.com/stratany2012/public/content/home<br />

03.11.2012<br />

9. Brandenburger Linux-Infotag 2012<br />

Universität Potsdam<br />

Campus Griebnitzsee, Haus 6<br />

Prof.-Dr.-Helmert-Straße<br />

14482 Potsdam<br />

http://blit.org<br />

07.-09.11.2012<br />

Linuxcon Europe<br />

Barcelona, Spanien<br />

https://events.linuxfoundation.org/events/linuxconeurope<br />

09.-14.12.2012<br />

LISA ’12<br />

San Diego, CA, USA<br />

http://www.usenix.org/events/lisa12/<br />

Autoren<br />

Erik Bärwaldt Multifunktionsdrucker Samsung CLX-6220 FX (78)<br />

Inserenten<br />

1&1 Internet AG www.einsundeins.de 17<br />

Axel Beckert<br />

SSH-Verbindungen komfortabel verwalten mit<br />

Admin-Magazin www.admin-magazin.de 43<br />

AutoSSH und Mosh (82)<br />

Falko Benthin <strong>Web</strong>server Nginx individuell einrichten (38),<br />

Netzwerkanalyse mit Netcat und Co. (74)<br />

Wolfgang Bornath Mandriva: Interview mit Jean-Manuel Croset (14)<br />

Thomas Drilling Die besten Online-Tools für HTML5 und CSS3 (24),<br />

Sicherer und kompakter <strong>Web</strong>server Hiawatha (44),<br />

Bilder bearbeiten mit den ImageMagick-Tools (68)<br />

Florian Effenberger Sitzungsmanager Byobu erweitert die Shell (62)<br />

Karsten Günther Digitale Bilder erstellen mit MyPaint (55)<br />

Thomas Leichtenstern Neues auf den Heft-DVDs (97)<br />

Jörg Luther Neues rund um Linux (12), Editorial (3)<br />

Tim Schürmann Dokumentenbasierte Datenbank CouchDB (29),<br />

Aktionen automatisieren mit Autokey (58)<br />

Vincze-Aron Szabo HTML5-fähiger <strong>Web</strong>-Editor Blue Griffon (34),<br />

Ahnenforschung mit Gramps (50)<br />

Ferdinand Thommes Debian-Derivat Siduction 12.1 Razor-Qt (6)<br />

Uwe Vollbracht Aktuelle Software im Kurztest (10)<br />

Andrzej Wiencek Linux-Mobilgeräte früher und heute (18)<br />

Android User www.android-user.de 53, 65, 89<br />

EasyLinux www.easylinux.de 57<br />

Fernschule <strong>Web</strong>er GmbH www.fernschule-weber.de 11<br />

Froscon e.V. www.froscon.de 85<br />

Galileo Press www.galileo-press.de 13<br />

Hetzner Online AG www.hetzner.de 100<br />

Linux Magazine www.linux-magazine.com 93<br />

Linux-Community www.linux-community.de 91<br />

Linux-Hotel www.linuxhotel.de 9<br />

Linux-Magazin Academy www.academy.linux-magazin.de 93<br />

<strong>LinuxUser</strong> www.linuxuser.de 47, 95<br />

PlusServer AG www.plusserver.de 22, 48, 66, 86<br />

Schlittermann schlittermann.de 91<br />

Spenneberg www.spenneberg.com 93<br />

Stockmayer GmbH www.stockmayer.de 93<br />

Strato AG www.strato.de 2<br />

Ubuntu User www.ubuntu-user.de 99<br />

94 08 | 12<br />

www.linux-user.de


Impressum<br />

service<br />

Anschrift<br />

Homepage<br />

Artikel und Foren<br />

Abo/Nachbestellung<br />

E-Mail (Leserbriefe)<br />

Abo-Service<br />

Pressemitteilungen<br />

<strong>LinuxUser</strong> ist eine Monatspublikation der Linux New Media AG.<br />

Putzbrunner Str. 71, 81739 München<br />

Telefon: (089) 99 34 11-0, Fax: (089) 99 34 11-99<br />

http://www.linux-user.de<br />

http://www.linux-community.de<br />

http://www.linux-user.de/bestellen/<br />

<br />

<br />

<br />

Chefredakteur Jörg Luther (v. i. S. d. P.) (jlu)<br />

Stellv. Chefredakteur Andreas Bohle (agr)<br />

Redaktion<br />

Linux-Community<br />

Datenträger<br />

Ständige Mitarbeiter<br />

Grafik<br />

Sprachlektorat<br />

Produktion<br />

Druck<br />

Geschäftsleitung<br />

Mediaberatung<br />

D / A / CH<br />

USA und andere<br />

Thomas Leichtenstern (tle)<br />

Andreas Bohle (agr)<br />

Thomas Leichtenstern (tle)<br />

Mirko Albrecht, Erik Bärwaldt, Falko Benthin, Thomas Drilling,<br />

Florian Effenberger, Karsten Günther, Frank Hofmann, Christoph<br />

Langer, Tim Schürmann, Vince-Áron Szabó, Uwe Vollbracht<br />

Elgin Grabe (Titel und Layout)<br />

Bildnachweis: Stock.xchng, 123rf.com, Fotolia.de und andere<br />

Astrid Hillmer-Bruer, Elke Knitter<br />

Christian Ullrich <br />

Vogel Druck und Medienservice GmbH & Co. KG, 97204 Höchberg<br />

Brian Osborn (Vorstand, verantwortlich für den Anzeigenteil)<br />

<br />

Hermann Plank (Vorstand)<br />

<br />

Petra Jaser <br />

Tel.: +49 (0)89 / 99 34 11 24<br />

Fax: +49 (0)89 / 99 34 11 99<br />

National Sales Director<br />

Ann Jesse <br />

Tel.: +1 785 841 88 34<br />

National Account Manager<br />

Eric Henry <br />

Tel.: +1 785 917 09 90<br />

Es gilt die Anzeigenpreisliste vom 01.01.2012.<br />

Pressevertrieb<br />

Abonnentenservice<br />

D / A / CH<br />

MZV Moderner Zeitschriften Vertrieb GmbH & Co. KG<br />

Ohmstraße 1, 85716 Unterschleißheim<br />

Tel.: (089) 3 19 06-0, Fax: (089) 3 19 06-113<br />

Lea-Maria Schmitt <br />

Postfach 1165, 74001 Heilbronn<br />

Telefon: +49 (0)7131 27 07-274<br />

Telefax: +49 (0)7131 27 07 -78-601<br />

impressum<br />

Abo-Preise <strong>LinuxUser</strong> Deutschland Österreich Schweiz Ausland EU<br />

No-Media-Ausgabe 1 € 5,50 € 6,30 Sfr 11,00 (siehe Titel)<br />

DVD-Ausgabe € 8,50 € 9,35 Sfr 17,00 (siehe Titel)<br />

Jahres-DVD (Einzelpreis) € 14,95 € 14,95 Sfr 18,90 € 14,95<br />

Jahres-DVD (zum Abo 2 ) € 6,70 € 6,70 Sfr 8,50 € 6,70<br />

Mini-Abo (3 Ausgaben) € 3,00 € 3,00 Sfr 4,50 € 3,00<br />

Jahresabo No Media € 56,10 € 64,60 Sfr 92,40 € 71,60<br />

Jahresabo DVD € 86,70 € 95,00 Sfr 142,80 € 99,00<br />

Preise Digital Deutschland Österreich Schweiz Ausland EU<br />

Heft-PDF Einzelausgabe € 5,50 € 5,50 Sfr 7,15 € 5,50<br />

DigiSub (12 Ausgaben) € 56,10 € 56,10 Sfr 72,90 € 56,10<br />

DigiSub (zum Abo 2 ) € 12,00 € 12,00 Sfr 12,00 € 12,00<br />

HTML-Archiv (zum Abo 2 ) € 12,00 € 12,00 Sfr 12,00 € 12,00<br />

Preise Kombi-Abos Deutschland Österreich Schweiz Ausland EU<br />

Mega-Kombi-Abo 3 € 143,40 € 163,90 Sfr 199,90 € 173,90<br />

(1) nur erhältlich unter http://shop.linuxnewmedia.de, Bestellung versandkostenfrei<br />

(2) nur erhältlich in Verbindung mit einem Jahresabo Print oder Digital<br />

(3) <strong>LinuxUser</strong>-Abo (DVD-Ausgabe) plus Linux-Magazin-Abo inkl. DELUG-Mitgliedschaft<br />

(monatl. DELUG-DVD) sowie beiden Jahres-DVDs<br />

Schüler- und Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises<br />

oder einer aktuellen Immatrikulationsbescheinigung. Der Nachweis ist bei Verlängerung neu<br />

zu erbringen. Infos zu anderen Abo-Formen etc. unter http://shop.linuxnewmedia.de.<br />

Bitte teilen Sie Adressänderungen umgehend dem Abo-Service mit, da Nachsendeaufträge<br />

bei der Post nicht für Zeitschriften gelten.<br />

Linux ist ein eingetragenes Warenzeichen von Linus Torvalds und wird von uns mit seiner<br />

freundlichen Genehmigung verwendet. »Unix« wird als Sammelbegriff für die Gruppe der<br />

Unix-ähnlichen Betriebssysteme (wie beispielsweise HP/UX, FreeBSD, Solaris) verwendet,<br />

nicht als Bezeichnung für das Trademark (»UNIX«) der Open Group. Der Linux-Pinguin<br />

wurde von Larry Ewing mit dem Grafikprogramm »The GIMP« erstellt.<br />

Eine Haftung für die Richtigkeit von Veröffentlichungen kann – trotz sorgfältiger Prüfung<br />

durch die Redaktion – vom Verlag nicht übernommen werden. Mit der Einsendung von<br />

Manuskripten oder Leserbriefen gibt der Verfasser seine Einwilligung zur Veröffent lich ung<br />

in einer Publikation der Linux New Media AG. Für unverlangt eingesandte Manuskripte<br />

oder Beiträge übernehmen Redaktion und Verlag keinerlei Haftung.<br />

Autoreninfos: http://www.linux-user.de/Autorenhinweise. Die Redaktion behält sich vor,<br />

Einsendungen zu kürzen und zu überarbeiten. Das exklusive Urheber- und Verwertungsrecht<br />

für angenommene Manus kripte liegt beim Verlag. Es darf kein Teil des Inhalts ohne schriftliche<br />

Genehmigung des Verlags in irgendeiner Form vervielfältigt oder verbreitet werden.<br />

Copyright © 1999 - 2012 Linux New Media AG ISSN: 1615-4444<br />

Probelesen ohne risiko<br />

www.linux-user.de 10 | 11<br />

sonDerAkTion!<br />

Testen sie jetzt<br />

3 Ausgaben für<br />

nUr 3€*<br />

Telefon: 07131 /2707 274<br />

Fax: 07131 / 2707 78 601<br />

E-Mail: abo@linux-user.de<br />

Mit großem Gewinnspiel unter:<br />

www.linux-user.de/probeabo<br />

* Angebot gilt innerhalb Deutschlands<br />

und Österreichs. In der Schweiz: SFr 4,50.<br />

Weitere Preise: www.linux-user.de/produkte<br />

95


VORSCHAU<br />

Das nächste Heft: 09/2012<br />

Ausgabe 09/2012 erscheint am 16. August 2012<br />

© Frko, sxc.hu<br />

Privacy und Security<br />

Die Gefahren, die einem Rechner drohen, gehen<br />

von vielen Quellen aus: Angriffe über das Netzwerk,<br />

infizierte Dateien, schwache Passwörter.<br />

Eine einzige Lücke im Sicherheitssystem ermöglicht<br />

einem Angreifer oft bereits weitreichenden<br />

Zugriff auf wertvolle Daten. In der kommenden<br />

Ausgabe widmen wir uns einmal mehr diesem<br />

wichtigen Thema und helfen Ihnen, Ihr System so<br />

abzusichern, dass es Angriffen von außen und innen<br />

standhält und selbst bei einem erfolgreichen<br />

Angriff dem Eindringling keine wichtigen Dateien<br />

und Informationen in die Hände fallen.<br />

Barcodes im Einsatz<br />

Die kleinen schwarz-weißen Balken<br />

sind heute nicht mehr aus<br />

dem Leben wegzudenken: Sie<br />

prangen auf Postsendungen,<br />

Buchrücken oder elektronischen<br />

Geräten. Was im weltweiten Logistiknetz<br />

für Ordnung sorgt,<br />

hilft in vielen Fällen ebenfalls im<br />

privaten Bereich, Gegenstände zu<br />

ordnen und zu erfassen. Unser<br />

Workshop zeigt, wie Sie Barcodes<br />

für Ihre Zwecke optimal nutzen.<br />

Dateisysteme wandeln<br />

Ein Dateisystem mit vielen Dateien<br />

zu konvertieren, wächst<br />

sich zu einer schwierigen Aufgaben<br />

aus. Mit Fstransform wandeln<br />

Sie die gewünschte Partition<br />

um, ohne die daraufliegenden Daten<br />

davon wegzubewegen. Wir<br />

zeigen, was es beim Einsatz des<br />

Werkzeugs zu beachten gilt.<br />

Lenovo Thinkpad W530<br />

Beim letzten Mal machte uns der Hersteller einen Strich<br />

durch die Rechnung – jetzt ist das Notebook-Spitzenmodell<br />

von Lenovo endlich auf dem Weg in<br />

unser Hardware-Labor. Der Thinkpad W530 beeindruckt:<br />

Ein Intel Core i7-3720QM mit 2,6<br />

GHz treibt den 15-Zöller an, 4 GByte DDR3-<br />

SDRAM sollten ein stressfreies Arbeiten erlauben.<br />

Wie sich die Hardware schlägt,<br />

zeigt ein Test in der nächsten Ausgabe.<br />

Ausgabe 03/2012 ist am 19. Juli 2012 erschienen<br />

Einstieg in Firefox<br />

Wer nach einem <strong>Web</strong>browser für<br />

Linux sucht, trifft zwangsläufig<br />

auf Firefox. Eine Grundkonfiguration<br />

ist bei dieser Software zwar<br />

eigentlich nicht nötig, weil das<br />

Programm direkt läuft. Dennoch<br />

gibt es für Umsteiger, die bisher<br />

nur den Internet Explorer kennen,<br />

an Firefox einiges zu entdecken.<br />

Dropbox nutzen<br />

Wir zeigen Ihnen, wie Sie Ihren<br />

Linux-Rechner sowie Computer<br />

unter Windows oder Mac OS X<br />

und die populären iPads und Android-Tablets<br />

über einen gemeinsamen<br />

Dropbox-Account miteinander<br />

verbinden, um wichtige Dateien<br />

und Dokumente stets und<br />

überall zur Hand zu haben.<br />

Die besten Plasmoiden<br />

Peppen Sie den KDE-Desktop<br />

über Plasmoide auf! Andere Systeme<br />

nennen diese kleinen Tools<br />

Applets oder Widgets. Wir stellen<br />

eine Auswahl der besten Plasmoiden<br />

vor, die bei der Systemverwaltung<br />

helfen, Informationen<br />

und Nachrichten anzeigen oder<br />

einfach Spaß machen.<br />

MAGAZIN<br />

© Taylor Olsen, 123RF<br />

Ausgabe 09/2012 erscheint am 02. August 2012<br />

Beliebte Mitbringsel Schlanke CMS Boot-Analyse<br />

Der Siegeszug der Mobilgeräte,<br />

insbeson dere in den Händen von<br />

Managern, reißt die Barriere zwischen<br />

Firmen- und Privat-Computern<br />

ein – mit Folgen für die Sicherheit.<br />

Das Linux-Magazin stellt<br />

in der nächsten Ausgabe Strategien<br />

und Tools für BYOD vor.<br />

Für einen einfachen <strong>Web</strong>auftritt<br />

liegt der Schwerpunkt bei der<br />

Wahl des Content-Management-<br />

Systems mehr auf den Punkten<br />

Einfachheit und Benutzbarkeit.<br />

Das nächste Magazin testet fünf<br />

Enterprise-ferne CMS auf tatsächliche<br />

Praxistauglichkeit.<br />

Mit ein paar Anpassungen bootet<br />

der Linux-Kernel sowohl auf<br />

Desktop- als auch auf Embedded-<br />

Systemen schneller. Die „Kern-<br />

Technik“ erläutert die Mechanismen<br />

und empfiehlt die Werkzeuge<br />

Boot Tracer und Boot<br />

Chart für eine Gastrolle.<br />

96<br />

08 | 12<br />

Die Redaktion behält sich vor, Themen aus aktuellem Anlass zu ändern oder zu streichen.


DVD-Inhalt<br />

service<br />

Neues auf den<br />

Heft-DVDs<br />

Sabayon 9 XFCE<br />

Die nach einer italienischen Nachspeise benannte Distribution Sabayon Linux 9 XFCE<br />

basiert auf Gentoo. Diese Distribution zeichnete sich in der Vergangenheit unter anderem<br />

durch ihre Performance und Stabilität aus. Ausgewiesenes Ziel der Entwickler ist<br />

es, ein möglichst einfach zu bedienendes System mit guter Hardware-Erkennung und<br />

einer ansprechenden Oberfläche zu bieten. Als Unterbau dient Kernel 3.4, den Desktop<br />

stellt in dieser Variante XFCE 4.10. Neu in dieser Version ist das Profil Gentoo<br />

Hardened für die Basisinstallation, das mit gehärteten Kernelquellen, einer<br />

Toolchain mit Pax sowie SE Linux und RSBAC für erhöhte<br />

Sicherheit gegen alle möglichen Angriffsvektoren sorgt.<br />

Netrunner 4.2<br />

Das auf Ubuntu 12.04 basierende Netrunner 4.2 mit<br />

dem Codenamen „Dryland“ wurde in erster Linie für<br />

die Nutzung diverser Cloud-basierter Dienste optimiert.<br />

Als Desktop-Oberfläche kommt zwar KDE 4.8.2 zum Einsatz,<br />

die Distribution verfügt aber über diverse vorinstallierte Gnome-Anwendungen. Im<br />

Bereich Anwendungen enthält die Distribution unter anderem den Browser Firefox<br />

in Version 12 mit KDE-Integration, Gimp 2.8, die VoIP-Software Skype 4.0 und dem<br />

Samba-Mounter zum einfachen Verwalten von Netzwerkfreigaben mit CIFS.<br />

Siduction 12.1 Razor-qt LU-Edition<br />

Der Window-Manager Razor-qt positioniert sich als leichtgewichtige<br />

Alternative zu KDE. Auf dem diesjährigen LinuxTag<br />

zeigte Ferdinand Thommes mit Siduction 12.1 Razor-qt die erste Distribution, die<br />

den neuen, schlanken Window-Manager vollständig implementiert. Da dessen Entwicklung<br />

schnell voranschreitet, erstellten die Entwickler für diese Heft-DVD Mitte<br />

Juni exklusiv für <strong>LinuxUser</strong> einen weiteren Snapshot und bauten damit ein Live-<br />

Image von Siduction. Das System, Codename „Desperado“, basiert auf dem Unstable-Zweig<br />

von Debian, angereichert mit zusätzlichen Paketen.<br />

Darüber hinaus bietet es einen webbasierten Installer sowie<br />

einen angepassten Kernel in Version 3.4.<br />

Grml96-full 2012.05<br />

Als „Schweizer Taschenmesser“ für alle Probleme des<br />

System administrators hat sich seit Langem die Rettungsdistribution<br />

Grml einen Namen gemacht. Die aktuelle Version Grml 2012.05 alias „Ponyhof“<br />

arbeitet sowohl in der 32- als auch 64-Bit-Version mit Kernel 3.3.7. Als weitere<br />

Neuerung kommt jetzt der Bootloader Grub 2 zum Einsatz. Darüber hinaus bereichern<br />

bootbare Images von MirOS Bsd4grml sowie iPXE die Distribution. Um die<br />

volle Funktionalität zu erhalten, steht Ihnen auf der Multi-Boot-DVD das originale<br />

Bootmenü der Distribution zur Verfügung, das über 50 verschiedene Boot-Optionen<br />

anbietet, darunter auch diverse Disketten-Images für die verschiedensten Zwecke.<br />

08 | 12 97


Service<br />

DVD-Inhalt<br />

<strong>LinuxUser</strong><br />

Rescue CD<br />

Die <strong>LinuxUser</strong> Rescue CD<br />

vereint drei wichtige Administrationsdistributionen.<br />

So bietet System<br />

Rescue CD 2.8 ein breites<br />

Spektrum, vorwiegend<br />

an kommandozeilenbasierten<br />

Werkzeugen,<br />

um einen Rechner<br />

auf Herz und Nieren zu<br />

prüfen. Geht es darum,<br />

eine Festplatte einzurichten,<br />

leistet Parted Magic<br />

2012_05_30 ganze Arbeit.<br />

Sie bringt das Partitionierungswerkzeug<br />

Gparted mit, das es erlaubt,<br />

Partionen auf Festplatten<br />

zu erstellen und<br />

zu verändern. Geht es<br />

darum, Daten zu sichern,<br />

bietet sich Clonezilla<br />

Live 1.2.12-67 als Mittel<br />

der Wahl an. Es erstellt<br />

wahlweise von Partitionen<br />

oder ganzen Festplatten<br />

Image-Dateien,<br />

die Sie entweder lokal<br />

oder im Netz speichern.<br />

Bei Bedarf spielen Sie das<br />

Image wieder ein. (tle) n<br />

Bei der DVD-Edition von <strong>LinuxUser</strong> ist hier der Datenträger eingeklebt (siehe Kasten auf Seite 5).<br />

Bitte wenden Sie sich per E-Mail an cdredaktion@linux-user.de, falls es Probleme mit der Disk gibt.<br />

Der erweiterbare HTML-Editor Bluegriffon 1.5.2 basiert auf Mozillas bewährter<br />

Gecko-Engine, unterstützt bereits HTML5 und beherrscht WYSI-<br />

WYG. HTML- und CSS-Quellcode erstellen Sie mit Bluegriffon W3C-konform,<br />

wobei die Anwendung neben XHTML 1.0 und HTML 4 auch das<br />

neue HTML5 und XHTML5 unterstützt.<br />

Die Datenbank CouchDB 1.2.0 verzichtet auf Tabellen und die Abfragesprache<br />

SQL. Stattdessen speichert sie komplette Dokumente, die<br />

Abfragen bestehen aus speziellen URLs und Javascript-Funktionen. Auf<br />

Wunsch liefert CouchDB sogar ganze <strong>Web</strong>-Anwendungen aus und ersetzt<br />

nebenbei einen <strong>Web</strong>server. Die Datenbank kommuniziert über HTTP via<br />

RESTful API und nutzt für Anfragen das Map-Reduce-Konzept.<br />

Die Ahnendatenbank Gramps 3.4.0 unterstützt Sie dabei, Ihren Stammbaum<br />

mithilfe eines Computers zu pflegen und die Daten schrittweise zu<br />

ergänzen. Sie bietet die Möglichkeit, umfangreiche Informationen über<br />

Personen zu ergänzen, Orte des Geschehens zu dokumentieren, Recherchematerial<br />

zu verwalten und umfangreiche Berichte zu generieren.<br />

Der <strong>Web</strong>server Hiawatha 8.4. besticht durch Sicherheit, Einfachheit und<br />

Sparsamkeit im Umgang mit Ressourcen. Wem Apache zu kompliziert<br />

und Lighttpd zu funktionsarm ist, findet in dieser Software eine sehr gute<br />

und darüber hinaus extrem leistungsstarke Alternative.<br />

AKTUELLE PROGRAMME AUF DER HEFT-DVD<br />

Mit dem quelloffenen, webbasierten <strong>Web</strong>-Editor Maqetta 6.0.1 erstellen<br />

Sie im Handumdrehen Benutzeroberflächen für Mobil- und Desktop-Anwendungen<br />

auf Basis von HTML5, CSS3 und Ajax. Das von IBM entwickelte<br />

Programm will die Nachteile von Ajax-Umgebungen im Vergleich zu<br />

den proprietären Technologien wie Flash und Silverlight eliminieren.<br />

Das Mal- und Zeichenprogramm MyPaint 1.0 unterscheidet sich konzeptionell<br />

von Bildbearbeitungsprogrammen wie Gimp: Die Software ist auf<br />

das Zusammenspiel mit einem elektronischen Pinsel spezialisiert und in<br />

weiten Teilen darauf beschränkt.<br />

Das Tool HTTrack 3.46.1 ist ein einfach zu bedienendes Werkzeug, um<br />

<strong>Web</strong>seiten samt korrespondierender Links, Bilder und Dateien herunterzuladen.<br />

Die Software arrangiert die heruntergeladenen Seiten auf dem<br />

lokalen Rechner so, wie sie auf dem <strong>Web</strong>server bereitstehen. Die Erweiterung<br />

<strong>Web</strong>HTTrack bietet Ihnen eine webbasierte Nutzeroberfläche zum<br />

einfacheren Bedienen des Kommandozeilenprogramms.<br />

Die grafische Oberfläche DeVeDe 3.22 bedient sich einiger Konsolenprogramme,<br />

um das Mastering von Video-DVDs zu erleichtern. Dazu zählen<br />

Dvdauthor, Vcdimager, Mplayer und Mencoder. So kann DeVeDe alle Bildformate<br />

verarbeiten, die Mencoder unterstützt. Das Programm führt Sie<br />

nach dem Wizard-Prinzip schrittweise durch das Erstellen der Medien.<br />

98<br />

08 | 12


Hier startet<br />

Ihr UBUNTU!<br />

● Jahres-Abo FÜR NUR E 26,90<br />

15%<br />

sparen<br />

●<br />

IMMER MIT AKTUELLSTER<br />

UBUNTU-DISTRIBUTION AUF DVD<br />

NEU:<br />

● Digitales Jahresabo<br />

im PDF-Format für<br />

nur E 24,20!<br />

Jetzt Bestellen<br />

Telefon: 07131 / 2707 274<br />

Fax: 07131 / 2707 78 601<br />

E-Mail: abo@ubuntu-user.de<br />

Internet: http://www.ubuntu-user.de<br />

ich möchte Ubuntu User für nur E 6,73<br />

Ja,<br />

pro Ausgabe abonnieren.<br />

Ich erhalte Ubuntu User viermal im Jahr zum Vorzugs preis von e 6,73 statt e 7,90 im Einzelverkauf,<br />

bei jährlicher Verrechnung e 26,90 (*Österreich: e 29,90, Schweiz: SFr 53,90,<br />

restliches Europa: e 33,90). Ich gehe keine langfristige Bindung ein. Möchte ich das Abo<br />

nicht länger beziehen, kann ich die Bestellung jederzeit und fristlos kündigen. Geld für bereits<br />

bezahlte, aber noch nicht gelieferte Ausgaben erhalte ich zurück. Sollten Sie noch Fragen<br />

haben, hilft Ihnen unser Abo-Service gerne weiter (089-20959127).<br />

Linux New Media AG, Putzbrunner Straße 71, 81739 München; Aufsichtsrat: Rudolf Strobl<br />

(Vorsitz), Vorstand: Brian Osborn, Hermann Plank, Handelsregister: HRB 129161 München<br />

Name, Vorname<br />

Datum<br />

Unterschrift<br />

Mein Zahlungswunsch: Bequem per Bankeinzug Gegen Rechnung<br />

Straße, Nr.<br />

BLZ<br />

Konto-Nr.<br />

PLZ<br />

Ort<br />

Bank


Hetzner Online unterstützt mit der<br />

Verwendung von 100% regenerativem<br />

Strom aktiv den Umweltschutz.<br />

Entscheiden Sie sich gemeinsam<br />

mit uns für eine saubere Zukunft.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!