|
|
|
Holm Sieber <sieber@prudsys.de> |
|
|
|
|
CygWIN ist ein komfortabler Weg,
mit MS-Windows zu arbeiten und
dabei nicht auf die Vorzüge von Unix
verzichten zu müssen. |
|
|
|
|
Was ist CygWIN |
|
Installation und Arbeiten mit CygWIN |
|
CygWIN-Features und Einschränkungen |
|
Anwendungs-Beispiele |
|
CygWIN-Highlights |
|
Links |
|
|
|
|
Was ist CygWIN |
|
Installation und Arbeiten mit CygWIN |
|
CygWIN-Features und Einschränkungen |
|
Anwendungs-Beispiele |
|
CygWIN-Highlights |
|
Links |
|
|
|
|
Ich muss mit MS-Windows arbeiten, vermisse aber
die vielen nützlichen Unix-Anwendungen. |
|
Ich will ein X11R6-Anwendung unter MS-Windows
nutzen, die kommerziellen X-Server sind mir aber zu teuer. |
|
|
|
CygWIN ist (unter anderem) ein Port von
less, tail, wc etc. und eine Portierung von XFree nach MS-Windows. |
|
|
|
|
1995 beginnt Steve Chamberlain, Entwickler bei
der Firma Cygnus, eine Zwischenschicht zwischen den Unix- und
Windows-Systemaufrufen zu programmieren. |
|
1999 kauft Red Hat Cygnus und man entscheidet
sich, das Projekt konsequent weiter zu führen. |
|
Heute: Red Hat Cygwin sind vor allem drei Leute:
Christopher Faylor (manager), Corinna Vinschen (senior engineer), DJ
Delorie (senior engineer) (http://cygwin.com/who.html) |
|
Darüber hinaus entwickeln weltweit viele freie
Entwickler an CygWIN mit. |
|
|
|
|
|
|
siehe http://www.redhat.com/software/cygwin/ |
|
|
|
Unix Shell-Umgebung |
|
GNU Entwicklungswerkzeuge portiert nach Windows |
|
cygwin.dll bildet Unix-Systemaufrufe unter
Windows ab |
|
|
|
CygWIN ist in gewisser Weise das Gegenstück zu
WINE. |
|
|
|
|
Was ist CygWIN |
|
Installation und Arbeiten mit CygWIN |
|
CygWIN-Features und Einschränkungen |
|
Anwendungs-Beispiele |
|
CygWIN-Highlights |
|
Links |
|
|
|
|
|
Unter www.cygwin.com kann das Setup-Programm
direkt aufgerufen und ausgeführt werden (Setup) |
|
Die Installationsdaten liegen |
|
auf einem FTP- oder WWW-Server im Netz |
|
oder lokal als TGZ- oder TAR.BZ2-Dateien |
|
Das Setupprogramm unterstützt Updates |
|
CygWIN wird standardmäßig unter C:\cygwin
installiert; das ist danach das CygWIN-Root-Verzeichnis |
|
Informationen zum Setup werden unter /etc/setup/
als komprimierte Textdateien abgelegt. |
|
|
|
|
|
|
Shells: ash, bash, tcsh, zsh |
|
Fileutilities |
|
Entwicklungswerkzeuge: gcc, gdb, make, etc. |
|
Datenbanken: postgresql, db2 |
|
teTeX |
|
vim, emacs, mc |
|
ghostscript, Image Magick |
|
Perl, Phyton, GAWK |
|
exim, fetchmail, pine, procmail, ssmtp, mutt |
|
apache, irc, rsync, openssh, ncftp, lynx, wget |
|
XFree86 |
|
|
|
|
http://www.cygwin.com/ported.html |
|
http://www.hirmke.de/software/develop/gnuwin32/cygwin/porters/Hirmke_Michael/GNUWin32-links.html |
|
|
|
|
Was ist CygWIN |
|
Installation und Arbeiten mit CygWIN |
|
CygWIN-Features und Einschränkungen |
|
Anwendungs-Beispiele |
|
CygWIN-Highlights |
|
Links |
|
|
|
|
eigentlich cygwin1.dll |
|
liegt unter C:\cygwin\bin\ |
|
umfangreiche Implementierung von POSIX- und
anderen Unix-Standards (nicht vollständig) |
|
häufig genügt die DLL plus das mit CygWIN
übersetzte Programm, um es auch ohne installiertes CygWIN auf einem
Windows-Rechner ausführen zu können |
|
cygwin1.dll ist quasi das, was die libc unter
Unix ist |
|
|
|
|
symbolische Links (werden ähnlich Windows-Links
als .lnk-Datei abgebildet) |
|
mounten von Windows-Laufwerken und
Verzeichnissen |
|
Abbildung von NTFS-Rechten auf Unix-Rechte (mehr
schlecht als recht) |
|
Devices: /dev/stx, /dev/scdx, /dev/clipboard |
|
|
|
|
siehe http://www.cygwin.com/faq/faq_3.html#SEC23 |
|
|
|
Threads, |
|
IPC-Funktionen (shared memory, semaphores, etc.) |
|
FIFO (Filesystem-Pipes) |
|
u. a. |
|
|
|
|
Was ist CygWIN |
|
Installation und Arbeiten mit CygWIN |
|
CygWIN-Features und Einschränkungen |
|
Anwendungs-Beispiele |
|
CygWIN-Highlights |
|
Links |
|
|
|
|
|
|
Start der Bash durch |
|
Aufruf von cygwin.bat: |
|
@echo off |
|
C: |
|
chdir C:\cygwin\bin |
|
bash --login –i |
|
Die Bash läuft in einem Kommandozeilenfenster,
entsprechend können Farben und Font verändert werden. |
|
Konfiguration wie gehabt über /etc/profile,
~/.bash_profile und ~/.bashrc |
|
gemountete Verzeichnisse werden in der Registry
gespeichert |
|
|
|
|
|
iimage ist ein Skript von Ronald Schmidt, um
HTML-Indexseiten zu Digital-Fotos zu erzeugen |
|
genutzt werden dabei u. a. Image Magick und
metacam |
|
Image Magick: verwende die native Portierung
nach Windows |
|
metacam: aus den Quellen unter CygWIN problemlos
übersetzt |
|
Skript läuft ohne Änderung unter Linux und
CygWIN |
|
|
|
|
|
komplette Portierung (ca. 110 MB alle Pakete) |
|
wird nur ein X-Terminal benötigt, genügen
cygwin1.dll, cygz.dll und ca. 2 MB aus dem XFree86 Paket |
|
ordentliche Unterstützung des deutschen
Tastaturlayouts (Danke Alexander Gottwald) |
|
Beispiel:
C:\cygwin\usr\X11R6\bin\XWin.exe
-nowinkill -unixkill -query zipoli –nodecoration |
|
Beenden mit Strg-Alt-Backspace |
|
ohne Windows-Fenster-Rahmen inkl. Taskleiste |
|
|
|
|
|
|
|
Problem: |
|
Nutzung von E-Mail als „Road-Warrior“ im
Offline-Betrieb, |
|
alle Windows-Mailprogramme sind nicht
leistungsfähig genug |
|
Lösung: |
|
Nutzung von mutt als E-Mail-Client unter CygWIN |
|
Da mutt nicht für den Offline-Betrieb geeignet
ist, muss ein MTA benutzt werden, der Queuing unterstützt: exim. |
|
abholen der Mails mittels fetchmail |
|
fetchmail und exim laufen als NT-Services |
|
|
|
|
Was ist CygWIN |
|
Installation und Arbeiten mit CygWIN |
|
CygWIN-Features und Einschränkungen |
|
Anwendungs-Beispiele |
|
CygWIN-Highlights |
|
Links |
|
|
|
|
Cygpath ist ein Kommandozeilen-Tool, dass den
Windows-Pfad zu einem CygWIN-Pfad liefert. |
|
Das Tool kann z. B. eingesetzt werden, wenn
Windows-Programme aus CygWIN heraus aufgerufen werden müssen. |
|
Beispiel: Start von GVIM (zur Nutzung unter
mutt) |
|
|
|
#!/bin/sh |
|
F="`cygpath -wa $1`" |
|
/cygdrive/c/Programme/Vim/vim60/gvim.exe –u
\ |
|
"C:\\Programme\\Vim\\_vimrc" $F |
|
|
|
|
|
Cygrunsrv dient dazu, CygWIN-Programme als
NT-Service einzurichten und zu starten. |
|
Achtung: NT-Services laufen unter der
Nutzerkennung „SYSTEM“, evtl. müssen die Zugriffsrechte passend eingestellt
werden oder der NT-Service muss so geändert werden, dass er unter einem
anderen Account läuft. |
|
Achtung: CygWIN-Dämonen müssen so gestartet
werden, dass sie sich nicht vom Terminal trennen! |
|
Beispiele: |
|
cygrunsrv -I exim -p /bin/exim-4.10-2.exe -a
"-bdf -q15m" |
|
cygrunsrv -I fetch -p /bin/fetchmail -a
"-N" |
|
|
|
|
|
Zugriff auf Prozess- und andere Informationen: |
|
$ ls -la /proc |
|
insgesamt 4 |
|
dr-xr-xr-x
8 Jeder Jeder 0 26. Nov 15:02 . |
|
drwxrwxrwx
10 Administ Kein 4096
15. Nov 11:46 .. |
|
dr-xr-xr-x
14 hsi Hauptben 0 26. Nov 13:17 1432 |
|
dr-xr-xr-x
14 hsi Hauptben 0 26. Nov 14:53 2140 |
|
dr-xr-xr-x
14 hsi Hauptben 0 26. Nov 15:02 2372 |
|
dr-xr-xr-x
14 hsi Hauptben 0 21. Nov 22:32 596 |
|
dr-xr-xr-x
14 hsi Hauptben 0 21. Nov 20:38 848 |
|
dr-xr-xr-x
14 hsi Hauptben 0 21. Nov 22:32 864 |
|
dr-xr-xr-x
14 hsi Hauptben 0 21. Nov 20:38 884 |
|
-r--r--r--
1 Jeder Jeder 0 26. Nov 15:02 loadavg |
|
-r--r--r--
1 Jeder Jeder 0 26. Nov 15:02 meminfo |
|
dr-xr-xr-x
9 Jeder Jeder 0 26. Nov 15:02 registry |
|
-r--r--r--
1 Jeder Jeder 0 26. Nov 15:02 stat |
|
-r--r--r--
1 Jeder Jeder 0 26. Nov 15:02 uptime |
|
-r--r--r--
1 Jeder Jeder 0 26. Nov 15:02 version |
|
über /proc/registry Zugriff auf die
Windows-Registry |
|
|
|
|
|
|
Zugriff auf Geräte, Abbildung der POSIX-Namen: |
|
/dev/null, /dev/zero, /dev/tty, /dev/ttyX,
/dev/ptmX, /dev/comX, /dev/windows, /dev/random, /dev/urandom |
|
/dev/stX, /dev/fdX, /dev/scdX |
|
siehe http://www.cygwin.com/cygwin-ug-net/using-specialnames.html |
|
Beispiel: /dev/clipboard und c2c |
|
#!/bin/sh |
|
sed -e 's/^@$/^M^@/' > /dev/clipboard |
|
|
|
|
Ntsec bildet NTFS-Rechte auf Unix-Rechte ab. |
|
Das Verfahren funktioniert mehr schlecht als
recht, da NTFS auf ACLs basiert, die Unix standardmäßig nicht kennt. |
|
Anders herum können auf diese Weise unter CygWIN
Unix-Rechte eingestellt und benutzt werden. |
|
Ntsec muss aktiviert werden, in dem es in der
CYGWIN-Umgebungsvariablen gesetzt wird. |
|
|
|
|
|
|
Konfiguration des CygWIN-Verhaltens in der
Umgebungsvariablen CYGWIN |
|
Beispiel: |
|
CYGWIN="binmode ntsec tty nosmbntsec„ |
|
Einstellung am besten als globale
Windows-Umgebungsvariable (Systemsteuerung/System/Erweitert) |
|
siehe auch http://www.cygwin.com/cygwin-ug-net/setup-env.html
und http://www.cygwin.com/cygwin-ug-net/using-cygwinenv.html |
|
|
|
|
|
|
CygWIN bringt ein simples lpr-Kommando mit |
|
Druckername muss identisch dem
Windows-Druckernamen sein |
|
Beispiel: |
|
export PRINTER="HP 4100 Gang 3. Etage PCL
6" |
|
|
|
|
Was ist CygWIN |
|
Installation und Arbeiten mit CygWIN |
|
CygWIN-Features und Einschränkungen |
|
Anwendungs-Beispiele |
|
CygWIN-Highlights |
|
Links |
|
|
|
|
Home Page: http://www.cygwin.com/ |
|
FAQ: http://cygwin.com/faq/ |
|
User-Guide: http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html |
|
API-Reference: http://cygwin.com/cygwin-api/cygwin-api.html |
|
|
|
und natürlich www.google.de J |
|
|
|
|
|
Übersicht: http://cygwin.com/lists.html |
|
für CygWIN-Nutzer empfohlen: |
|
cygwin |
|
cygwin-xfree |
|
cygwin-announce |
|
für Entwickler: |
|
cygwin-patches |
|
cygwin-apps |
|
cygwin-developers |
|
|
|
|
CygWIN ist der beste Weg, Windows- und
Unix-Anwendungen nebeneinander zu benutzen, vor allem, wenn primär
Windows-Anwendungen benutzt werden. |
|
CygWIN ist für die regelmäßige gleichzeitige
Nutzung von Windows- und Unix-Anwendungen besser geeignet als VMware, WINE
oder ähnliche Lösungen. |
|
Bei einer Entscheidung für die eine oder andere
Lösung ist zunächst immer konkret nach den zu nutzenden Anwendungen zu
fragen. Sind alle zu nutzenden Unix-Anwendungen unter CygWIN vorhanden oder
existieren native Portierungen nach Windows, ist CygWIN unter Windows 2000
oder Windows XP die erste Wahl. |
|