AA_tux-wiese_jlu.png

© Basisbild: Slawomir Jastrzebski, Fotolia

Fremdes Biotop

Linux-Applikationen unter Windows nutzen mit Cygwin

16.06.2011
Cygwin bringt die bekannten und beliebten Tools aus der Linux-Welt auf Windows. So arbeiten Sie mit gewohnten Programmen und nutzen Skripte plattformübergreifend.

Wer länger mit Linux arbeitet, gewöhnt sich schnell an die Möglichkeiten, die das freie Betriebssystem bietet. Doch auch Windows-Anwender kommen leicht in den Genuss einiger Linux-Schmankerl – dank Cygwin.

Dessen Installation gestaltet sich relativ einfach. Nach dem Download der Installationsdatei von der offiziellen Webseite [1] und einem beherzten Doppelklick auf setup.exe bestätigen Sie den Warnhinweis. Es öffnet sich ein Assistent, der Sie komfortabel durch die Installation leitet. Arbeiten noch andere Anwender mit dem System, haben Sie die Wahl, ob Sie Cygwin für jeden Benutzer bereit stellen möchten (All Users, die empfohlene Voreinstellung), oder nur für den aktuell Angemeldeten.

Wurzelbehandlung

Das Erkennen des Wurzelverzeichnisses, wie unter Windows häufig genannt, bereitet mitunter Probleme. Auf unserem Testsystem mit Windows 7 Ultimate in der 64-Bit-Edition war bereits der X2go-Client installiert, der seinerseits eine Cygwin-Umgebung bereitstellt. Der Assistent wollte zunächst diese Instanz aktualisieren. Um das zu verhindern, galt es, den Pfad händisch auf C:\Program Files (x86)\Cygwin umzustellen. Das Setup moniert Leerzeichen, was Sie aber geflissentlich ignoriert dürfen – immerhin lautete der voreingestellte Wert ebenso.

Im nächsten Schritt legen Sie das Verzeichnis fest, in dem Sie heruntergeladene Pakete zwischenspeichern wollen: Cygwin bietet ganz wie von Linux gewohnt Software in Paketen an, die Sie vor der Installation aus dem Internet laden. Um die Installation auf einem Online-Rechner zu starten, wählen Sie die Option Install from Internet, die die Pakete zudem lokal zwischenspeichert. Um lediglich die Dateien für einen Dritt-PC herunterzuladen, wählen Sie Download Without Installing. Auf dem entsprechenden Computer installieren Sie über Install from Local Directory die vorab geladenen Pakete.

Dann folgt noch die Wahl des Proxy-Servers. In den meisten Fällen wählen Sie hier Direct Connection; im Zweifelsfall lohnt sich ein Versuch der Option Use Internet Explorer Proxy Settings. Von der eigentlichen Paketauswahl trennt Sie nun noch die Wahl des geeigneten Mirrors, das heißt, eines Spiegel-Servers, der die gewünschten Dateien bereitstellt. Erfahrungsgemäß beschleunigt die Wahl eines Mirrors im eigenen Land den Download.

Paketdienst

Haben Sie diese Hürden gemeistert, die sich übrigens umständlicher anhören, als sie eigentlich sind, steht der Weg frei zur Paketauswahl (Abbildung 1). Die Pakete verteilen sich dort auf verschiedene Gruppen, zudem wählt Cygwin eine Basiskonfiguration aus, die ein solides Grundsystem bereitstellt.

Abbildung 1: Aus dem großen Angebot an Software wählt Cygwin bereits eine solide Grundkonfiguration aus.

Um weitere Programme einzurichten, bedienen Sie sich einfach des Wahlschalters neben dem Paketnamen innerhalb der aufgeklappten Gruppen. Dieser nimmt verschiedene Zustände an: Skip überspringt das Paket, installiert es also nicht. Ein Klick darauf genügt um das Programm zur Installation vorzusehen: Dann zeigt der Installer die Versionsnummer statt Skip an. Gibt es mehrere Releases, wie beispielsweise bei Mutt die Versionen 1.4 und 1.5, wechseln Sie diese mittels Mausklick. Um zusätzlich zur Binärversion eines Pakets die dazugehörigen Quelldateien zu auf dem Rechner einzurichten, klicken Sie auf Src.

Bei Bedarf installieren Sie nicht nur einzelne Pakete, sondern komplette Gruppen. Standardmäßig steht neben dem Gruppennamen Default für die Standardauswahl. In dieser Variante wandern nur grundlegende Pakete auf die Platte. Ein Klick genügt, um zum Modus Install zu wechseln, der sämtliche Pakete der Gruppe installiert. Haben Sie schon Pakete ausgewählt oder installiert, stehen zusätzlich die Funktionen Reinstall (erneute Installation) und Uninstall (Deinstallation) zur Auswahl.

Für den Anfang belassen Sie es einfach bei der Vorgabe und klicken auf Weiter. Sogleich startet der Download, was je nach Internetanbindung eine gewisse Zeit beansprucht – auf dem Testsystem war binnen drei Minuten alles erledigt. Zum Abschluss wählen Sie noch, wo überall Sie eine Verknüpfung zu Cygwin haben möchten.

Das war's – zumindest fast, denn im Test meldete sich nun ein Windows-eigener Assistent, der wissen wollte, ob die Software wirklich korrekt installiert sei (Abbildung 2). Diese Nachfrage quittieren Sie getrost mit Das Programm wurde richtig installiert. Löschen Sie die Datei setup.exe jedoch nicht, da Sie diese später zum Nachinstallieren von Paketen benötigen.

Abbildung 2: Windows will es genau wissen: Alles korrekt installiert?

Kaltstart

So aufwändig die Installation scheint, so unauffällig platziert sich Cygwin im System. Lediglich ein Eintrag im Startmenü und ein Desktop-Icon zeugen von seiner Existenz. Ein Klick auf eines der Symbole öffnet die Konsole (Abbildung 3). Schnell sehen Sie, dass es sich dabei um eine Bash handelt, die einige bekannte Linux-Kommandos wie uname beherrscht.

Abbildung 3: Bash-Feeling unter Windows – dank Cygwin.

Dabei bildet Cygwin nach Möglichkeit Befehle und Funktionen aus der Unix-Welt auf Windows ab: Das schon erwähnte uname beispielsweise gibt Systeminformationen von Windows zurück. Das Homeverzeichnis liegt physikalisch in C:\Programme (x86)\Cygwin\home\Benutzer, nicht etwa im Windows-Benutzerverzeichnis. Selbst das Proc-Dateisystem steht bereit.

Der Kernel in /boot hingegen fehlt – verständlich, denn bei Cygwin handelt es sich nicht um eine Virtualisierungssoftware. Sie arbeiten also nicht mit einem Linux-Kernel, sondern mit entsprechenden Programmen, die nativ unter Windows laufen. Schnittstellen wie das Proc-Dateisystem bildet Cygwin durch eine Kompatibilitätsschicht nach. Am ehesten gleicht Cygwin den MacPorts [2], durch die zahlreiche Linux-Applikationen unter Mac OS X bereit stehen.

Ein mount verrät Ihnen, welche Laufwerke eingebunden sind: /usr/bin und /usr/lib kommen aus den entsprechenden Unterverzeichnissen im Cygwin-Wurzelverzeichnis, das seinerseits gemountet ist, und das Laufwerk C: finden Sie unter /cygdrive/c – mit der Möglichkeit zum lesenden und schreibenden Zugriff.

Besonders komfortabel: Später angeschlossene Laufwerke, wie USB-Festplatten, bindet Cygwin zur Laufzeit automatisch ein. Selbst Netzwerkfreigaben via Samba/CIFS stellen die Software vor keine Probleme. Sie sprechen diese nach dem Schema //Server/Freigabe an. Der Befehl

$ mount //srv/pool /home/max/share

bindet beispielsweise die freigegebenen Dateien des Fileservers srv im Home-Verzeichnis des Benutzers max ein.

Windows lernt SSH

Doch das Bereitstellen der Bash gehört natürlich nicht zu den Hauptaufgaben von Cygwin. Zwar gestaltet sich das Arbeiten dort sehr komfortabel und insbesondere für Linux-Anwender wesentlich bequemer als mit so manch anderer Konsole, doch Cygwin bietet weit mehr: Neben der eher für Programmierer interessanten Option, Software schnell und einfach zu portieren, erhalten Sie eine Fülle von Anwendungsprogrammen zum Einsatz unter Windows. Ein Beispiel ist Secure Shell (SSH).

Windows bietet mit den Terminaldiensten zwar eine eigene Möglichkeit zum Administrieren aus der Ferne, doch zum einen benötigen Sie dazu einen so genannten RDP-Client, zum anderen funktioniert mit diesem nur das grafische Login, wofür Sie entsprechende Bandbreite benötigen. Dank Cygwin installieren Sie stattdessen einfach SSH.

Dazu beenden Sie Cygwin sicherheitshalber mittels exit auf der Shell und öffnen dann das Setup-Programm erneut. In der Paketauswahl suchen Sie nach ssh und installieren das gleichnamige Paket. Jetzt lernen Sie eine weitere Funktion von Cygwin kennen, die Ihnen von den Paketmanagern unter Linux bekannt vorkommen dürfte – das automatische Auflösen von Abhängigkeiten (Abbildung 4): Um SSH zu installieren, benötigen Sie einige weitere Tools und Bibliotheken, die die Software automatisch mitinstalliert.

Abbildung 4: Ein Paket kommt selten allein – Cygwin berücksichtigt beim Installieren von Software eventuelle Abhängigkeiten und richtet benötigte Programme gleich mit ein.

Anders als bei Linux-Systemen kommt der SSH-Server ganz ohne Konfiguration – Sie müssen also selbst Hand anlegen. Allerdings erleichtern Anleitungen im Netz [3] die Arbeit. Starten Sie Cygwin mit einem Windows-Administratorkonto (ansonsten dürfen Sie den Dienst nicht einrichten) und geben Sie ssh-host-config -y ein. Das Skript gibt einige Meldungen aus und fragt Sie schließlich nach einem Passwort für den in Windows anzulegenden Nutzer namens cyg_server. Wählen Sie für diesen ein sicheres Passwort und merken Sie es sich gut. Schließlich passen Sie noch die Berechtigungen einiger Dateien an, indem Sie ssh-user-config -n aufrufen.

TIPP

Sie sollten Windows auf keinen Fall ohne zusätzliche Firewall als SSH-Server betreiben. Ideal ist ein handelsüblicher Router oder ein Filter per Iptables am Linux-Gateway.

Nach einem Neustart steht der SSH-Server bereit. Alternativ geben Sie – nicht in Cygwin, sondern auf der Windows-Kommandozeile – den Befehl net start sshd ein. Danach passen Sie noch die Windows-Firewall an; diese sperrt von Haus aus Verbindungen zu Port 22. Die entsprechende Konfiguration finden Sie unter Start | Systemsteuerung | Windows-Firewall | Erweiterte Einstellungen | Eingehende Regeln | Neue Regel.... Erlauben Sie hier das Verbinden auf Port 22 via TCP in allen Profilen und vergeben Sie für diese Regel einen sprechenden Namen, wie zum Beispiel Cygwin SSH Server. Das mag für Linux-Anwender umständlich klingen – der Lohn liegt in einer direkten SSH-Verbindung zum Windows-Rechner (Abbildung 5)

Abbildung 5: Wahrlich zwischen den Welten: Vom Mac auf Windows in die Bash.

Paralleluniversum

Nicht nur Server-Freunde kommen in den Genuss von Cygwin, die Software bedient auch typische Anwenderprogramme. So hält Cygwin unter anderem das Mailprogramm Mutt, den Editor Vi und den Dateimanager MC (Midnight Commander) bereit (Abbildung 6).

Abbildung 6: Der Midnight Commander macht auch unter Windows eine gute Figur.

Zugegeben, von vielen dieser Tools gibt es eigenständige Windows-Versionen – doch der Einsatz in einer eigenen Umgebung hat durchaus Vorteile: So greifen Sie beispielsweise immer auf die gleichen Pfade zurück und verfügen weitestgehend über dieselben Tools und Skripte wie beim Original.

Sehr vorteilhaft wirkt sich die Umgebung auf bereits etablierte Hilfsmittel aus, wie etwa Backup-Skripte: Viele Anwender haben eigene Bash-Programme geschrieben, welche die zu sichernden Daten via Rsync zum Zielsystem kopieren. Rsync existiert zwar in einer Windows-Variante, aber gerade das Nachprogrammieren der ausgeklügelten Bash-Funktionen unter Windows bedeutet viel Aufwand.

Wo ist Mr. X?

Doch es geht noch weit mehr, denn Cygwin beinhaltet unter dem Namen Cygwin/X [4] eine Implementation des X11-Systems, mit der Sie bei Bedarf einfache grafische Anwendungen direkt unter Windows ausführen (Abbildung 7).

Abbildung 7: Selbst einfache grafische Programme laufen dank Cygwin/X.

Zugegeben, das Starten alter X-Relikte aus der Frühzeit erscheint nicht besonders spannend. Was den X-Server aber dennoch reizvoll macht: Das Protokoll ist für die Ausgabe über das Netzwerk ausgelegt – und das schnell und ressourcenschonend selbst über schmalbandige Verbindungen. Ein Paradebeispiel dafür bietet das zu Beginn erwähnte X2go [5], das von unterwegs den Zugriff auf den Linux-Desktop ermöglicht.

Zudem eignet sich X2go ideal zum Verwalten virtueller Maschinen auf einem Server im Rechenzentrum (Abbildung 8). Zwar erlauben die meisten Virtualisierungslösungen die Administration per Kommandozeile. Doch bei Problemen mit der virtuellen Maschine, etwa bei einer falsch konfigurierten Netzwerkbrücke, schadet ein Blick auf die Ausgabe nicht. Mit X2go ist das eine Sache von Sekunden – und die Basis, um den Client unter Windows zu betreiben, bietet Cygwin.

Abbildung 8: Sich grafisch mit der virtuellen Maschine im Rechenzentrum verbinden – kein Problem dank X2go und Cygwin.

Fazit

Wie mächtig Cygwin ist, erschließt sich oft erst auf den zweiten Blick. Durch die Linux-Kompatibilitätsschicht nutzen Sie sowohl bekannte Anwendungen als auch vertraute Befehle und Tools, und als Entwickler portieren Sie damit Ihre Applikationen schnell und einfach auf die andere Plattform.

Die X11-Umgebung schließlich bietet eine Reihe von spannenden Möglichkeiten, wobei die Remote-Sitzung per X2go nur die Spitze des Eisbergs darstellt. Auf der anderen Seite haben die Entwickler Cygwin nicht konzipiert, um ein komplettes grafisches Linux-System nachzustellen – einige Einschränkungen gibt es da schon. Mit dem Original geht's dann eben doch am besten. 

Der Autor

Florian Effenberger engagiert sich seit vielen Jahren ehrenamtlich für freie Software. Er ist Gründungsmitglied und Mitglied des Steering Committee der Document Foundation. Zuvor war er fast sieben Jahre im Projekt OpenOffice.org aktiv, zuletzt als Marketing Project Lead. Zudem schreibt er regelmäßig für zahlreiche deutsch- und englischsprachige Fachpublikationen.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare