Cygwin: Installation, Konfiguration und Einsatz

CygwinCygwin ist eine ursprünglich von Cygnus Solutions entwickelte UNIX-Umgebung für Windows, die zwischenzeitlich von RedHat übernommen wurde. Grundbestandteil ist ein Satz von Bibliotheken, die einen POSIX-Layer unter Windows zur Verfügung stellen. Dadurch können Programme, die für UNIX geschrieben wurden nach einer erneuten Kompilierung auch unter Windows ausgeführt werden.

Cygwin enhält bereits eine Reihe von gängigen UNIX-Programmen wie zum Beispiel eine bash Shell, den C++ Compiler gcc, das X Windows System XFree86, das Satzprogramm TeX oder den SSH-Client und Server OpenSSH.

Einerseits bietet Cygwin so die Möglichkeit von einem Windows-Rechner über das Netzwerk per SSH oder X Windows auf UNIX-Rechner zuzugreifen. Andererseits kann man aber auch direkt unter Windows UNIX-Programme verwenden ohne auf einem anderen Computer oder parallel UNIX installieren zu müssen.

Cygwin bietet zu viele Möglichkeiten, um diese hier alle darzustellen. Deshalb werden exemplarisch einige Anwendungsbeispiele herausgegriffen: Das lokale Arbeiten unter Cygwin, die lokale Verwendung von X Windows unter Windows, der Zugriff auf einen UNIX-Rechner im Netz über SSH, und der Zugriff auf einen UNIX-Computer im Netz über X Windows.

Installation

Auf der Seite von Cygwin wird lediglich das etwa 400 KB große Setup-Programm zum Download angeboten. Dieses Programm holt sich alle weiteren zur Installation benötigten Dateien direkt von verschiedenen FTP-Servern. Bei der Installation werden drei verschiedene Optionen angeboten:

Auswahl des Installationstyps für Cygwin

Install From Internet Die benötigten Dateien werden direkt während der Installation heruntergeladen und für eine spätere Installation zwischengespeichert.
Download without installing Alle benötigten Dateien werden lediglich für eine spätere Installation heruntergeladen (Beispielsweise zum Anlegen eines Installationsordners auf dem netzinternen Server).
Install from Local Directory Die zur Installation benötigten Dateien wurden bereits vorher über die Option "Download without installing" heruntergeladen und liegen lokal auf der Festplatte.

Wählen Sie die Option "Install From Internet".

Im nächsten Dialog wird das Verzeichnis gewählt, in das Cygwin installiert werden soll. Weiterhin wird abgefragt ob nur der angemeldete Benutzer Cygwin verwenden soll oder alle und in welchem Format Textdateien interpretiert werden sollen. Hier empfiehlt sich das Format "Unix":

Optionen bei der Installation

Nun möchte das Setup-Programm wissen, wo es die heruntergeladenen Dateien ablegen soll. Die komplette Installation ist etwa 170 MB groß. Auf derm gewählten Laufwerk sollte ausreichend viel Speicherplatz vorhanden sein. Wählen Sie ein Verzeichnis auf Ihrer Festplatte.

Wahl des Ordners zum Zwischenspeichern der Installationsdateien

Es folgt ein Abfrage, ob ein Proxy-Server verwendet werden soll. Wenn Sie sich nicht in einem Firmennetzwerk befinden ist "Direct Connection" in der Regel die richtige Wahl.

Bei der Wahl des Mirror-Servers empfiehlt es sich, einen Server in der Nähe auszuwählen. Ich habe in meinem Beispiel den FTP-Server der TU Dresden verwendet.

Das Setup-Programm lädt nun eine Liste der verfügbaren Pakete und bietet diese zur Auswahl an:

Auswahl der Pakete bei der Installation

In der Default-Einstellung wird nur die bash Shell und einige Zusatztools installiert. Wer auf Nummer sicher gehen will wählt ganz oben in der Liste bei "All" "Install". Für diesen Workshop reicht es aus, die Default-Einstellungen zu belassen, bei "Xfree86" "Install" zu wählen und unter "Net" die Komponenten "openssh" und "openssl" auszuwählen.

Cygwin startet nun den Download der ausgewählten Pakete:

Image

Nachdem alle Dateien kopiert sind, laufen noch einige Scripte, um die Installation abzuschließen. Zum Schluß erfolgt noch eine Abfrage, ob Einträge im Startmenü und ein Icon auf dem Desktop eingerichtet werden sollen.

Achtung: Prinzipiell ist Cygwin nun installiert. Bei mir war das XFree86-System direkt nach der Installation leider noch nicht benutzbar, weil zwei DLLs nicht gefunden wurden. Die betreffenden Dateien liegen im Unterverzeichnis "bin" des Cygwin Ordners und heissen "cygwin1.dll" und "cygz.dll".
Die saubere Lösung ist, den Pfad um einen Eintrag zum Verzeichnis "bin" im Cycwin-Verzeichnis zu erweitern. Unter Windows 98/ME muß man dazu die Datei "c:\autoexec.bat" editieren und den Eintrag "SET PATH=..." um den Text "C:\Programme\Cygwin\usr\local\bin; C:\Programme\Cygwin\bin; C:\Programme\Cygwin\usr\X11R6\bin" erweiten. Die verschiedenen Verzeichnisse, die im Pfad stehen, werden dabei durch ein Semikolon getrennt. Hat man Cygwin in ein anderen Verzeichnis installiert, muß der Text natürlich entsprechend angepasst werden. Der fertige Eintrag sieht dann in etwa so aus:

SET PATH=C:\Windows; C:\Programme\Cygwin\usr\local\bin; C:\Programme\Cygwin\bin; C:\Programme\Cygwin\usr\X11R6\bin

Unter Windows NT/2000/XP wird die Einstellung des Pfads in der Systemsteuerung vorgenommen. Man wählt dazu das Icon "System" und wechselt auf den Reiter "Erweitert". Dort gibt es denn Button "Umgebungsvariablen". Im Feld "Systemvariablen" findet sich dann der Eintrag "Path":

Setzen des Pfads unter Windows NT/2000/XP

Über "Bearbeiten" kann man den bestehenden Eintrag um ein Semikolon und das Cygwin-Verzeichnis erweitern:

Den Pfad um das Cygwin-Verzeichnis erweitern

Damit die Änderung aktiv wird empfiehlt es sich, das System entweder neu zu starten oder alle Windows-Explorer zu beenden und neu zu öffnen.

X Windows lokal starten

X Windows ist die grafische Oberfläche unter Unix. XFree86 ist eine freie Implementation dieses Systems. Es wird auch unter allen gängigen Linux-Distributionen für die grafische Oberfläche eingesetzt.

Cygwin blendet ein kleines schwarzes X in der Taskleiste ein.Unter Cygwin läßt sich XFree86 über die Batchdatei startxwin.bat im Unterverzeichnis "usr\X11R6\bin" starten. Damit diese funktioniert muss jedoch an der Datei erst eine Änderung vorgenommen werden. Am Anfang der Batch Datei findet sich folgender Befehl:

SET CYGWIN_ROOT=\cygwin

Diese sollte an den Installationspfad angepasst werden, den Sie während der Installation gewählt haben. In unserem Beispiel wäre das:

SET CYGWIN_ROOT=c:\programme\cygwin

Die neueren Versionen von Cygwin bieten zwei Betriebsarten: Den single- und den multiwindow Modus. Standardmäßig ist Cygwin für den multiwindow Modus eingestellt. Nach dem Start der Batchdatei erscheint lediglich ein kleines schwarzes X und es öffnet sich eine Shell:

Nach dem Start von startxwin.bar erscheint eine Shell.

Im multiwindow Modus wird jedes Programm in einem eigenen Fenster geöffnet.

Alle Programme, die von der Shell aus gestartet werden, öffnen sich in neuen Fenstern. Einen Window Manager gibt es in dieser Konfiguration nicht, da Windows diese Aufgabe übernimmt. Auf diese Weise entsteht auf dem Bildschirm eine bunte Mischung aus Windows- und UNIX-Programmen:

X Windows direkt unter Windows mit TWM

Um in den single window Modus zu wechseln, muß die Datei startxwin.bat bearbeitet werden. Folgende Einträge sind relevant:

REM Startup the X Server with the integrated Windows-based window manager.
start XWin -multiwindow
REM start XWin
REM start XWin -screen 1 1000 900

REM Startup the twm window manager.

REM WARNING: Do not use an external window manager in conjunction with
REM the ``-multiwindow'' command-line parameter for XWin. Doing so REM would start two window managers, which is never supposed to happen.
REM run twm

Am einfachsten kommentiert man die Zeile "XWin -multiwindow" mit einem "REM" aus und entfernt den Kommentar vor der übernächsten Zeile. Aus "-screen 1" sollte man "-screen 0" machen. Die anschließenden Werte geben vor, wie groß das Fenster werden soll. Im single window Modus wird ein Window Manager benötigt. Standardmäßig ist twm vorgesehen. Er läßt sich durch das Entfernen des Kommentars in der Zeile "REM run twm" aktivieren. Nach dem erneuten Start von startxwin.bat, sieht Cygwin folgendermassen aus:

Den Windows Manager in der Datei startxwin.bat ändern.

Der verwendete Window Manager läßt sich ändern, indem man die Batchdatei "startxwin.bat" editiert. Relativ am Ende der Datei findet sich der Befehl "run twm":

X Windows direkt unter Windows mit WMaker

Durch das Ändern dieses Befehls in "run wmaker" läßt sich der verwendete Window Manager einfach auf WMaker umstellen. Nach einem erneuten Start von "startxwin.bat" sieht die Oberfläche dann so aus:

Zugriff auf einen anderen Rechner im Netz über SSH

Zugriff auf einen Rechner im Netz über Telnet/SSH

Cygwin ermöglicht es, von der Shell aus über Telnet bzw. SSH auf andere UNIX-Computer im Netzwerk zuzugreifen. Der Befehl dazu lautet "ssh computername". In diesem Fall verwendet SSH automatisch den Benutzernamen, mit dem man unter Windows angemeldet ist, um sich bei dem UNIX-Computer anzumelden. Um sich an dem UNIX-Computer unter einem anderen Namen anzumelden, muß der Befehl wie folgt aussehen: "ssh -l benutzername computername". Für Telnet sind die Parameter analog einzusetzen.
Die direkte Anmeldung als root über das Netzwerk ist übrigens aus Sicherheitsgründen meistens deaktiviert. Man kann sich allerdings als normaler Benutzer anmelden und anschließend mit dem Befehl "su - root" zum Chef mutieren.

Login beim Zugriff über X Windows

Zugriff auf einen Rechner im Netz über X Windows

X Windows bietet die Möglichkeit, die Ausgabe auf einem anderen Computer anzuzeigen. Cygwin unterstützt diesen Mechanismus mit dem Programm XWin. Mit dem Befehl "C:\Programme\Cygwin\usr\X11R6\bin\XWin.exe -screen 0 800x600 -from Athlon -query Linux" kann ich beispielsweise vom meinem Windows-Computer "Athlon" mit einer Auflösung von 800x600 auf den Linux-Computer "Linux" zugreifen. Das Ergebnis sieht im ersten Moment so aus:

Von Windows aus auf dem Linux Computer arbeiten

Auf dem Linux-Computer antwortet der Daemon "kdm" und fragt ab, welcher Benutzer angemeldet werden soll. Angemeldet sieht es dann so aus:

Die Ausgabe eines Programms auf einen anderen Computer umleiten.

Man kann nun in einem ganz normalen Windows-Computer aus in einem Fenster auf dem Linux-Computer arbeiten, wie wenn man direkt vor ihm sitzen würde. Wenn der UNIX-Rechner leistungsfähig genug ist, können auch mehrere Leute gleichzeitig auf diese Weise auf ihn zugreifen.
Um den Start von XWin zu vereinfachen empfiehlt es sich, eine Verknüpfung zu XWin anzulegen und den oben beschriebenen Befehl in die Befehlszeile der Verknüpfung zu kopieren.
Je nach Linux/UNIX-Variante ist der Zugriff auf diese Art in der Standardeinstellung aktiviert, bzw. deaktiviert. Klappt der Zugriff nicht, so stellt sich zuerst die Frage, ob einer der Daemons "xdm", "kdm" bzw. "gdm" gestartet sind. Unter SuSE ist das der Fall, sobald man auf in YaST unter Administration des Systems unter Login-Konfiguration auf Grafisch umgestellt hat.
Wenn der Daemon läuft, aber er den Zugriff verweigert, müssen die Konfigurationsdateien "xdm-config" bzw. "Xaccess" angepasst werden. Der Ort, an dem die Dateien liegen variiert je nach System.
In der Datei xdm-config findet sich unter Umständen der Eintrag "DisplayManager.requestPort: 0", der verhindert, dass eine Verbindung hergestellt wird. Dieser Eintrag sollte dann auskommentiert, werden, indem ihm ein Ausrufezeichen vorangestellt wird: "!DisplayManager.requestPort: 0".
In der Datei Xaccess verhält es sich genau entgegengesetzt. Hier steht oft die Zeile "#* # any host can get a login window", die durch das # auskommentiert ist. Hier sollte der Kommentar entfernt werden.

Ausgabe eines Programms auf einen anderen Rechner umleiten

Unter X Windows ist es auch möglich, lediglich die Ausgabe eines einzigen Programms auf einen anderen Rechner, auf dem X Windows läuft, umzuleiten. Diese Methode stellt eine Mischung aus den beiden oben beschriebenen Vorgehensweisen dar. Zur Erläuterung ein Beispiel:

Auf einem Windows-Rechner wird das X Windows von Cygwin mit der Datei startxwin.bat gestartet. Zuerst muß dem X-Windows auf dem Windows-Computer mit dem Befehl xhost +server mitgeteilt werden, aß der Computer Ausgaben von Programmen schicken darf.
Über SSH wird nun auf der Kommandozeilenebene als root eine Verbindung zum Linux-Computer hergestellt. Mit dem Befehl export DISPLAY=192.168.2.3:0.0 wird eine Umgebungsvariable gesetzt, die bewirkt, daß die Ausgaben von später gestarteten X-Windows Programmen auf den Windows-Computer mit der IP-Adresse 192.168.2.3 umgeleitet werden.

Die Ausgabe von YaST2 wird in Cygwin angezeigt.

Wenn man jetzt beispielsweise mit dem Befehl yast2 'menu' & auf dem Linux-Computer YaST2 startet, wird die Ausgabe von YaST2 umgeleitet und auf dem Windows-Rechner angezeigt. Das & hinter dem Befehl bewirkt, daß YaST2 im Hintergrund gestartet wird. Das Xterm-Fenster wäre sonst so lange blockiert, bis YaST2 beendet ist. Zuletzt hier noch ein Screenshot, wie YaST2 im lokalen Cygwin-Fenster angezeigt wird:

Kommentare (9)add comment

Der Tobi said:

  Hallo leute,

habe auch alles so gemacht wie beschrieben, nur leider fehlt mir auch die Startxwin.bat in dem entsprechenden Unterordner. Habe das Installationsprogramm dann auch nochmals durchlaufen lassen mit X11 "install"..aber die Startxwin.bat ist immernoch nicht da....

Was mache ich falsch..??
05.12.2009

Stefan said:

  Habe das Tutorial befolgt und es klappt!
Super, danke!
30.05.2009

hilfeee said:

  iCH HAB EDAS SELBE pROBME

wAS KANN MAN DEN DA GENAU MACHEN????????

BI MIR KLAPPT ES Z:B: MIT DEM LOGIN NCIHT

wERDE DANN IMMER NAHC EINEM Passwort gefragt???

hilfeeeee
24.03.2009 | url

tron3103 said:

  ich habe Alles installiert und auch nach diesem tutorial konfiguriert, aber nichts hilft !! smilies/angry.gif smilies/angry.gif smilies/angry.gif

wenn ich die datei startxwin.bat aufrufe, startet zwar der XServer aber ich bekomme keinen Windowmanager zum laufen. ich habe wie gesagt ALLES installiert !!
09.07.2008

SirToby said:

  Hey ho,
bin noch ein neuling auf diesem gebiet und versuche schon die ganze zeit herraus zu finden, wie ich normal Programme(z.B. Adobe-Reader) aus der Cygwin Kommandozeile starten kann.
Hoffe das mir hier vielleicht einer weiter helfen kann. smilies/smiley.gif
24.05.2008

Pukz said:

  HY hab mir das hier ausgesucht für aircrack und kismet...aba
bin total unerfahren mit linus, also:
wie änder ich diese run dat was auf seite 2 beschrieben wird mit welche pro...wenn ich das im editor öffne find ich nix ähnliches wie c:cygwin...

wie installier ich progs danach
also in dem fall aircrack oda kismet
17.02.2008

blobbor said:

  Wie kann man später Programme nachinstallieren?
13.02.2008

andreas said:

  smilies/grin.gif,ich bin auch so ,weiss ich nicht den Gründen.I muss meinem College fragen.
29.10.2007

blubber said:

  Ich habe ALLES installiert, allerdings finde ich die Datei "startxwin.bat" wie auf Seite 2 beschrieben ist NICHT ... smilies/angry.gif smilies/angry.gif

TanMar: Wenn die Datei startxwin.bat sich nicht im Unterordner usr/X11R6/bin der Cygwin Installation findet haben Sie die X11 Pakete bei der Installation nicht mit ausgewählt. In diesem Fall befindet sich im genannten Verzeichnis nur die Datei run.exe. Starten Sie das Installationsprogramm erneut und wählen Sie in der Kategorie X11 "install"
26.10.2007

Kommentar schreiben

busy