Session D-TSVL Terminal Server mit Linux Markus Winhard Wieso Terminal Server? Sie haben eine erfolgreiche Applikation in die Sie viele Mannjahre Arbeit gesteckt haben. Ihre Applikation arbeitet direkt auf DBFs. - Nun wollen ihre Kunden Arbeitsplätze in externe Büros auslagern. - Mitarbeiter ihrer Kunden brauchen von unterwegs Zugriff auf ihre Software. - Ihre Kunden akzeptieren es nicht länger, daß ihre wertvollen Daten ungeschützt herumliegen. Wenn einer der letzten drei Sätze für Sie zutrifft und Ihnen die Resourcen für das Umschreiben ihrer Software fehlen, oder Sie keine Möglichkeit sehen, diesen Aufwand wirtschaftlich unterzubringen, dann hätte ich Ihnen bis vor kurzem die Terminal Services von Microsofts Server 2000 bzw. Server 2003 empfohlen. Terminal Server, was ist das? Typischerweise haben wir heutzutage in den meisten Betrieben PCs an den Arbeitsplätzen und einen oder mehrere Fileserver für die zentrale Datenhaltung. Dazu kommen oft noch Applikationsserver und Datenbankserver, aber um die geht es uns hier nicht. Bei dieser Art des Netzwerks laufen die Programme in der CPU der Arbeitsplatzrechner ab. Nur die Daten werden vom Fileserver geholt und dort wieder abgelegt. Anders beim Terminal Server. Dort laufen alle Programme in der CPU/den CPUs des Servers. Vom Arbeitsplatz zum Server werden nur Tastenanschläge und Mausklicks übertragen. In der Gegenrichtung werden in der Regel nur die Bildschirmdaten übertragen, manchmal kommen noch Druckaufträge für Arbeitsplatzdrucker und Audio dazu. Gibt es Alternativen zu Microsofts Terminal Services? Ja, es gibt sie. Gerade in den letzten beiden Jahren sind Mitstreiter im Markt aufgetaucht, die versuchen Microsoft ein Stück vom großen Kuchen wegzunehmen. Die Mitstreiter versuchen dies auf zwei Ebenen: - Schnellere Amortisation der Investition durch Features die im laufenden Betrieb Geld sparen. - Geringere Lizenzkosten. Gerade der zweite Ansatz erfreut sich in der aktuellen Wirtschaftslage zunehmender Beliebtheit. Terminal Server mit Linux © 2005 Markus Winhard (Gruppe SOFT) 12. Visual FoxPro Entwicklerkonferenz 2005 D-TSVL • 1 Damit wir wissen, worüber wir reden, hier ein kurzer Überblick über die Lizenzkosten für einen Terminal Server des Marktführers. Grundausstattung Terminal Server für 5 User: - Server 2003 Standard Edition inkl. 5 Clients (File und Print Services): ca. 1000 Euro - 5 Terminal Client Lizenzen: ca. 750 Euro Aufpreis für weitere 5 User: - 5 Clients (File und Print Services): ca. 200 Euro - 5 Terminal Client Lizenzen: ca. 750 Euro Bei einem Marktvergleich wird man feststellen, daß die Unterschiede zu den Anschaffungspreisen der alternativen Anbieter nicht so groß sind, wie die Lizenzzahler es sich erhofft hätten. Das hat auch seinen Grund: Die Firmen, die diese Lösungen programmieren und vermarkten bestehen aus Leuten, die wie wir damit ihren Lebensunterhalt verdienen. Dazu kommt noch, daß diese Lösungen teilweise höhere Installationskosten oder Betriebskosten für den Endanwender mit sich bringen. Trotzdem gibt es immer mehr Systemhäuser, die Ihren Kunden nicht die Lösung des Marktführers, sondern eine der Alternativen empfehlen. Einer der Gründe ist, daß sie hoffen mit weniger bekannten Lösungen den Kunden stärker an sich zu binden. Ein ebenso wichtiger Grund ist, daß sie lieber geringere Lizenzgebühren an den Hersteller der Terminal Server Lösung weiterreichen und dafür mehr mit ihrer eigenen Arbeitsleistung verdienen. Die interessantere Alternative Was wäre, wenn es einen Terminal Server gäbe, der von Leuten programmiert wurde, die das nicht getan haben um ihren Lebensunterhalt zu bestreiten, sondern weil sie Spaß dabei hatten? Die Lizenzkosten würden in so einem Fall komplett entfallen. Bestimmt wäre der Installationsaufwand höher als bei Microsofts Alternative. Aber das macht ja nichts. Schließlich kann man damit Geld verdienen, das man bei den anderen Lösungen an den Hersteller durchreichen müßte. Wäre das nicht die Maximierung des im letzten Absatz vorgestellten Geschäftsmodells? Wie Sie sicher schon vermutet haben, kommt an dieser Stelle Open Source Software und das Betriebssystem Linux ins Spiel. Linux, was ist das eigentlich? Es gibt nicht „das eine Linux“, sondern es gibt hunderte verschiedener Linux Distributionen. Einige gibt es nur gegen eine Gebühr (von wenigen Euro bis zu vierstelligen Euro Beträgen). Die Platzhirsche sind Red Hat Enterprise Server und Suse Enterprise Server. Andere Linux Distributionen sind komplett kostenlos (z.B. Debian). Mir ist sogar eine Distribution bekannt, die einen wohlhabenden Sponsor hat und dadurch in der Lage ist, eigene Programmierer zu beschäftigen und die CDs kostenlos in alle Welt zu versenden (Ubuntu). Es gibt Linux Distributionen, die komplett aus freier Open Source Software bestehen, d.h. alle Quellcodes können kostenlos von den Servern im Internet heruntergeladen und sogar nach eigenen Vorstellungen verändert werden. Genauso gibt es Linux Distributionen, die Eigenentwicklungen von Firmen enthalten, für die der Quellcode nicht verfügbar ist und die nicht frei kopiert werden dürfen. Teilweise fallen sogar Lizenzabgaben pro Server oder pro User an. Die meisten Firmen, die mit Eigenentwicklungen für Linux Geld verdienen, geben einen Teil ihrer Eigenentwicklungen wieder als Open Source frei. Beispiele sind Fedora Core (Red Hat) und der Suse Open Server. Es gibt viele Distributionen, die auf Debian aufbauen (z.B. Knoppix, Kanotix, Gentoo, Ubuntu). Deren Quellcode-Verbesserungen fließen oft mit einigen Monaten Verzug zurück zur Debian Basis und werden dort eingepflegt. Dasselbe passiert bei einzelnen Linux Anwendungen. Manchmal entwickelt sich aus einer Open Source Basis ein kommerzielles Produkt. Teile der kommerziellen Erweiterungen fließen mit Verzögerung zurück in die Open Source Basis. Das bekannteste Beispiel ist wohl das WINE Projekt mit den kommerziellen Ablegern Crossover Office und Cedega WineX. 12. Visual FoxPro Entwicklerkonferenz 2005 2 • D-TSVL (Gruppe SOFT) Terminal Server mit Linux © 2005 Markus Winhard Open Source: Sie haben die Wahl Das freie Betriebssystem Linux bringt alles mit, was man braucht um einen Terminal Server aufzubauen. Da Linux seinen Ursprung in der Unix Welt hat, haben die Bestandteile dort andere Namen und funktionieren meist ein bißchen anders, aber das Ergebnis ist aus Sicht des Anwenders das gleiche. So ein Linux Terminal Server besteht aus vielen einzelnen Programmpaketen. Für viele Bestandteile gibt es nicht nur ein passendes Programmpaket, sondern jede Menge Alternativen. Damit will ich sagen, daß die hier vorgestellte Lösung nur eine von vielen ist. Es kann durchaus sein, daß jemand anders Ihnen eine Lösung vorschlagen würde, die zum größten Teil aus anderen Komponenten besteht. Ich selbst habe im Laufe der Vorbereitungen dieses Vortrags bereits mehrere verschiedene Systeme auf meinen PCs zusammengestellt und installiert. Ich werde hier aber nur die einfachste Lösung zeigen, die ich gefunden habe. Schließlich soll das Ergebnis etwas sein, das Sie zuhause sofort ausprobieren können. Performance Nach meiner Erfahrung kann Linux schneller sein als Windows. Allerdings nur, wenn man sich auf das beschränkt, was man wirklich braucht. Bei der hier vorgestellten Lösung ist im Vergleich zu einem typischen Windows PC ein Vielfaches an Programmen installiert. Klar, daß man damit auch Linux in die Knie zwingt. Außerdem können Windows Programme unter Linux nicht direkt auf die Funktionen des Betriebssystems zugreifen. Alle Windows API Aufrufe werden in der Zwischenschicht WINE in die entsprechenden Linux API Aufrufe gewandelt und an das Betriebssystem weitergeleitet. Das kostet nicht viel Zeit, aber es kostet Zeit. In der Praxis wird ein Windows Programm unter Linux in etwa genauso schnell laufen wie unter Windows. Funktioniert das auch für meine VFP Programme? Die kurze Antwort ist: Ja, für die meisten VFP Programme funktioniert es. Bei den übrigen VFP Programmen kommt es darauf an, wieviel Aufwand Sie treiben wollen. Damit Sie vorab klären können ob Ihre Applikationen laufen basiert der Terminal Server, den ich hier vorstelle auf einer Linux Distribution, die von CD startet und keinerlei Installation auf Ihrem Test-PC erfordert. Vorbereitungen Installieren Sie die VFP Anwendungen, die Sie testen wollen, auf der Festplatte des Test-PCs. Kopieren Sie alle benötigten DLLs und ActiveX Controls ins Verzeichnis der VFP EXE Dateien. Die Grundausstattung für eine VFP 9 Anwendung besteht aus folgenden Dateien: - Vfp9R.dll - Vfp9RDeu.dll - GDIPlus.dll - MsVcR71.dll - MsVcRt20.dll Wenn möglich sollten Ihre VFP Anwendungen auf einer FAT32 oder FAT Partition liegen. Linux sollte auf NTFS Partitionen derzeit nur lesend zugreifen. Schreibender Zugriff auf NTFS Partitionen ist zwar möglich, wird aber noch als „experimentell“ eingestuft. Sollte Ihnen kein PC mit FAT(32) Laufwerk zur Verfügung stehen, können Sie alternativ einen USB Stick verwenden. Linux kann die meisten USB Sticks als Festplatte einbinden. Wenn das automatische Einbinden zur Laufzeit nicht klappt, dann lassen Sie den USB Stick stecken und starten den PC noch einmal. Wenn Ihnen auch kein USB Stick zur Verfügung steht können Sie versuchen, Ihre Anwendungen unter Linux in Ihr Home Verzeichnis (unter Windows Eigene Dateien) zu kopieren. Jedoch ist der Platz begrenzt, das Home Verzeichnis wird in unserer Testumgebung auf einer RAM Disk liegen. Terminal Server mit Linux © 2005 Markus Winhard (Gruppe SOFT) 12. Visual FoxPro Entwicklerkonferenz 2005 D-TSVL • 3 Die „Installation“ des Servers Hardwareanforderungen Da unser Test-Linux komplett von CD laufen wird, sollte der verwendete PC ein schnelles CD- oder DVDLaufwerk haben. Damit das Betriebssystem überhaupt mit akzeptabler Geschwindigkeit läuft, wird beim Start eine relativ große RAM Disk erstellt und Teile der CD auf die RAM Disk kopiert. Damit steht nur ein Teil des Hauptspeichers für das Betriebssystem und die Anwendungen zur Verfügung. 256 MB Hauptspeicher markieren nach meiner Erfahrung die Untergrenze für eine sinnvolle Testumgebung beim Start von CD. Wenn Sie später einen Performancevergleich mit anderen Lösungen durchführen wollen, sollten Sie eine vergleichbare Umgebung schaffen und Ihr Linux auf eine Festplatte installieren (siehe unten). Verwendete Software-Komponenten Unser Server braucht folgende Bestandteile, damit er funktioniert: - Das Betriebssystem Linux. - Einen X-Server für die grundlegenden Funktionen der grafische Oberfläche (XFree oder X.org). - Einen grafischen Login Dialog (KDM, GDM, XDM, ect.) - Einen Desktop (KDE, GNOME, XFCE, EDE, etc.) - Einen Windows Emulator (WINE). - Einen Terminal Service (X oder besser FreeNX). - TrueType Fonts mit deutschen Umlauten (MsTTCoreFonts). Bis auf die letzte Komponente finden wir alles was wir brauchen auf einer einzigen CD. Der Name der Distribution, die wir verwenden werden, ist Kanotix. Sie wird von einem Deutschen gepflegt und weiterentwickelt. Diese Distribution kann zu Testzwecken direkt von der CD gestartet werden. Sie kann bei Gefallen auf Festplatte installiert werden. Danach können Sie nach Belieben zusätzliche Software installieren oder Programme deinstallieren, die Sie nicht brauchen. Um Mißverständnisse von vornherein auszuräumen: Sie können mit fast jeder Linux Distribution einen gleichwertigen Server aufbauen. Lediglich der Aufwand wird bei den meisten größer sein. Download von Kanotix Linux aus dem Internet Die hier verwendete Version finden Sie im Download Bereich von www.kanotix.de unter dem Dateinamen KANOTIX-2005-03.iso oder direkt z.B. hier: http://verona.ecology.uni-kiel.de/mirrors/kanotix/KANOTIX-2005-03/KANOTIX-2005-03.iso ISO Archiv auf CD brennen. Die aktuellen Versionen der meisten CD Brennprogramme können heute ISO Images auf eine CD brennen. Falls Ihres dazu nicht in der Lage ist, oder Sie unsicher sind, es gibt kostenlose Programme für diesen Zweck im Internet. Eines davon verwende ich, um ISO Images unter Windows auf CD zu brennen: http://www.terabyteunlimited.com/downloads/burncdcc.zip Das ZIP Archiv enthält eine EXE Datei, die Sie in ein beliebiges Verzeichnis entpacken und dort starten. Eine Installation ist nicht notwendig. 12. Visual FoxPro Entwicklerkonferenz 2005 4 • D-TSVL (Gruppe SOFT) Terminal Server mit Linux © 2005 Markus Winhard Kanotix von CD starten Die meisten PCs, die in den letzten paar Jahren verkauft wurden, können von CD booten. Legen Sie die Kanotix CD ins Laufwerk und schalten Sie Ihren Test-PC ein. Sollte der PC nicht von CD booten, müssen Sie im Bios die Boot-Reihenfolge ändern. Oder Sie versuchen es auf einem anderen PC. Nach kurzer Zeit erscheint ein Bildschirm mit etwas Text und einer Eingabezeile. An dieser Stelle könnten Sie Kompatibilitäts-Optionen eingeben, falls Kanotix eine Hardware in Ihrem PC falsch erkennt. In der Regel reicht es aber hier, die ENTER Taste zu drücken. Der Linux Kernel wird geladen. Kurz darauf beginnt die Hardware-Erkennung und ein hüpfender Pinguin verdeckt die Bildschirmausgaben. Wenn Sie statt des hüpfenden Pinguins lieber sehen wollen, was im Hintergrund passiert, drücken Sie an dieser Stelle die Leertaste. Nach einiger Zeit wird der X-Server geladen. Sie erkennen das an einem grauen Hintergrund mit einem X in der Mitte. Kurz darauf wird die grafische Oberfläche geladen, standardmäßig ist das der KDE Desktop. Terminal Server mit Linux © 2005 Markus Winhard (Gruppe SOFT) 12. Visual FoxPro Entwicklerkonferenz 2005 D-TSVL • 5 Eine kurze Einführung Der Desktop Die Ähnlichkeit zu Windows ist gewollt um Interessierten die erste Scheu vor dem unbekannten Betriebssystem Linux zu nehmen. Der wichtigste Unterschied ist, daß standardmäßig für das Starten von Programmen kein Doppelklick nötig ist, ein einfacher Klick genügt. Aber das kennen Sie ja schon aus dem Internet. Der erste Button der Startleiste (der mit dem K) öffnet wie unter Windows das Startmenü. Der zweite Button (der mit dem Fisch) öffnet ein zweites Menü, das ein paar Highlights enthält, die Kanotix den meisten anderen Linux Distributionen voraus hat. Die restlichen Buttons entsprechen der Schnellstartleiste von Windows. Die Ziffern 1 bis 4 lassen das Umschalten zwischen 4 virtuellen Desktops zu. Auch das gibt es für Windows schon lange als Shareware von diversen Anbietern. Damit kann man z.B. schnell das Spiel verschwinden lassen, wenn der Chef zur Türe hereinkommt. Die kleinen blauen Pfeile links und rechts an der Startleiste dienen dazu, die Startleiste einzurollen, wenn man zwischendurch mehr Platz für die Anwendungsprogramme braucht. Ein erneuter Klick rollt sie wieder aus. Falls Sie sich überhaupt nicht umstellen wollen, kann der KDE Desktop sogar so konfiguriert werden, daß er aussieht wie Windows und auch so funktioniert (inklusive Doppelklick). Siehe Startmenü > Einstellungen > Einrichtungsassistent und Startmenü > Einstellungen > Kontrolleiste einrichten. Laufwerke Ein Klick auf eines der Festplattensymbole auf dem Desktop „mountet“ dieses Laufwerk schreibgeschützt und zeigt anschließend ein Fenster des KDE Explorers Konquerer mit dem Inhalt des Laufwerks an. Den Schreibschutz aufheben können Sie über das Kontextmenü des Festplattensymbols > Aktionen >Lese/Schreibmodus ändern. Bei einer Installation auf Festplatte werden die Laufwerke automatisch beim Start von Kanotix Linux schreibfähig eingebunden. Die verfügbaren Laufwerke stehen in der Textdatei /etc/fstab. Laufwerke haben unter Linux normalerweise keinen Laufwerksbuchstaben. Stattdessen werden Laufwerke in leere Verzeichnisse eingehängt. Unter Kanotix finden Sie Ihre Laufwerke in den Verzeichnissen /mnt/hd*. 12. Visual FoxPro Entwicklerkonferenz 2005 6 • D-TSVL (Gruppe SOFT) Terminal Server mit Linux © 2005 Markus Winhard Für Windows Programme können Laufwerksbuchstaben simuliert werden. Diese sind aber nur für die Windows Programme sichtbar, nicht für die diversen Linux Dateimanager. Mitgelieferte Programme Kanotix bringt eine komplette Office Suite mit, die MS Office Dateien lesen und schreiben kann. Startmenü > Büroprogramme. Es gibt diverse Editoren, einen PDF Viewer und ein Grafikprogramm, das den Vergleich mit professionellen Windows Grafikprogrammen nicht scheuen muß. Startmenü > Graphik > GIMP Image Editor. Auch beim Browser haben wir die Wahl. Der KDE Explorer Konquerer kann genau wie der Windows Explorer zum Surfen im Internet verwendet werden. Das letzte Symbol der Schnellstartleiste (die Weltkugel) startet den Browser Firebird. Mit beiden können Sie testen ob Ihre Internetverbindung funktioniert. Für Anhänger des Norton Commanders bzw. Windows Commanders gibt es einen Klon unter Startmenü > Dienstprogramme > Krusader. Eine Version im Textmodus zur Verwendung in den Konsolenfenstern gibt es auch: mc. Sogar ein Jump and Run Spiel ist dabei: Startmenü > Debian > Spiele > Arcade > Supertux. Tux ist übrigens der Name des Linux Maskottchens, ein Pinguin. Aber sehen Sie selbst. Unter Linux gibt es für fast alle aus der Windows Welt bekannten Programme eine Entsprechung. Die installierten Programme stellen nur eine Auswahl dar. Es gibt noch hunderte mehr davon. Man kann sie mit wenigen Mausklicks automatisch aus dem Internet laden und installieren lassen. Genauso einfach ist auch die Deinstallation. Zusätzliche Programme installieren, Update auf neuere Version Zu diesem Zweck gibt es das Programmpaket apt. Der Name steht für A Package Tool. Die Funktionalität ist der des Microsoft Installers recht ähnlich. Es gibt auch eine grafische Oberfläche dafür. Sie finden sie unter Startmenü > System > KPackage. Wir verwenden hier jedoch die APT Befehle direkt. Ein kurzer Überblick über die wichtigsten: - apt-get install <Paketname> lädt Programmpakete von den Distributionsservern und installiert sie - apt-get remove <Paketname> deinstalliert Programmpakete - apt-show-versions <Paketname> zeigt die aktuell installierte Version und ggf. die höchste verfügbare Version eines Programmpakets an - apt-get update aktualisiert die lokale Datenbank der verfügbaren Programmpakete - in der Textdatei /etc/apt/sources.list stehen die abzufragenden Distributionsserver Falls einmal ein Paket nicht in der gewünschten Version zur Verfügung steht, dann liegt das daran, daß es nicht auf einem der in der Datei /etc/apt/sources.list eingetragenen Server zur Verfügung steht. Hier kann man mit einem Editor weitere bzw. andere Server eintragen und es anschließend nochmal versuchen. Benutzernamen Kanotix kommt mit zwei vorinstallierten Benutzern. „knoppix“, das ist ein normaler Benutzer. Mit diesem Namen werden wir automatisch angemeldet, wenn wir die Kanotix CD starten. Der zweite Benutzer heißt „root“. Er entspricht dem Administrator unter Windows. Beide Benutzer haben kein Paßwort. Der FreeNX Server Warum ein zusätzlicher Server, wenn das X-Window System auch alleine kann? Diese Frage wird sich denjenigen unter Ihnen stellen, die bereits ein bißchen Erfahrung mit Linux oder einem anderen Unix haben. Diese Frage ist mit einem Wort zu beantworten: Performance. Alle frei erhältlichen Clients für Windows (Cygwin, X/Deep32, etc.) sind relativ langsam. (Genaugenommen ist der Windows Client ein X-Server. Das hat aber nur technische Hintergründe. Lassen Sie sich davon nicht verwirren.) Terminal Server mit Linux © 2005 Markus Winhard (Gruppe SOFT) 12. Visual FoxPro Entwicklerkonferenz 2005 D-TSVL • 7 Der zweite Grund ist, daß das Standard X-Window Protokoll so viele Daten über die Leitung schickt, daß man eine Standard DSL Leitung braucht, damit ein externer Benutzer verzögerungsfrei arbeiten kann. Der begrenzende Faktor ist hier nicht der großzügig bemessene Downstream, sondern der Upstream mit nur 128 Kb. Deshalb entwickelt die italienische Firma NoMachine seit einigen Jahren ein kommerzielles Produkt namens NX, das durch selektive Datenkompression, intelligentes Caching, Unterdrücken unnötiger Roundtrips und andere Tricks den Datendurchsatz enorm verbessert. Inzwischen braucht das NX Protokoll angeblich weniger Bandbreite als Microsofts Terminal Server Protokoll RDP. NoMachine hat die Kernkomponenten von NX dankenswerterweise als Open Source der Allgemeinheit zur Verfügung gestellt. Daraus haben zwei Deutsche den FreeNX Server und den FreeNX Client für Linux gebaut. Für Windows kann der kostenlos erhältliche NX Client der Firma NoMachine verwendet werden. Den FreeNX Server starten Diese Auswahl startet ein Skript (unter Windows würde man sagen eine Batchdatei). Zu Beginn werden Sie gebeten, ein Paßwort für den User knoppix zu vergeben. Am Ende werden Sie noch gefragt, welcher Key zur Absicherung der Kommunikation zwischen dem FreeNX Server und den Clients verwendet werden soll. Bitte wählen Sie hier den NoMachine Key aus. MsTTCoreFonts nachladen (optional) Windows Programme verwenden unter Linux standardmäßig einen seltsamen Font für das Menü, der unter anderem keine Umlaute kennt. Das ist nur ein Schönheitsfehler. Die Funktionalität wird dadurch nicht beeinträchtigt. Das Nachladen des MsTTCoreFonts Pakets behebt diesen Schönheitsfehler. Für die Installation ist eine Internetverbindung notwendig. Das Installieren von Programmen unter Linux ist wie bei Windows NT/2000/XP/2003 nur mit AdministratorRechten möglich. Wir öffnen eine Konsole (das entspricht der MSDOS-Eingabeaufforderung). Durch Eingabe von su (SuperUser) wechseln wir in den Benutzerkontext des Benutzers root, d.h. wir verschaffen uns für dieses Konsolen-Fenster Administrator-Rechte. 12. Visual FoxPro Entwicklerkonferenz 2005 8 • D-TSVL (Gruppe SOFT) Terminal Server mit Linux © 2005 Markus Winhard Als nächstes bringen wir die Datenbank der verfügbaren Programm-Pakete auf den aktuellen Stand. apt-get update Die benötigten Fonts laden wir anschließend durch Eingabe von apt-get install msttcorefonts von einem Server im Internet. Sie werden automatisch installiert. Alle Fragen, die von der Installationsroutine gestellt werden beantworten Sie durch Drücken von ENTER. Da wir Linux von CD gestartet haben, passiert die Installation nur temporär auf einer RAM-Disk. Nach einem Reboot sind die zusätzlichen Fonts wieder weg und müssen ggf. erneut installiert werden. Installation des Windows Clients Der NX Client für Windows ist als kostenloser Download auf www.nomachine.com verfügbar. http://www.nomachine.com/download_product.php?Prod_Id=16 Terminal Server mit Linux © 2005 Markus Winhard (Gruppe SOFT) 12. Visual FoxPro Entwicklerkonferenz 2005 D-TSVL • 9 Da die Entwicklung bei NoMachine der freien Implementierung FreeNX immer etwas voraus ist, kann es passieren, daß der Client bereits Features anbietet, die im Server noch nicht korrekt funktionieren. Ein solches Feature ist z.B. derzeit die Anzeige einzelner Linux Programme in eigenen Fenstern auf dem Windows Desktop. Der NX Client für Windows kommt als Setup Programm und wird auf die unter Windows übliche Art installiert. Feststellen der aktuellen IP-Adresse des Linux PCs Starten Sie eine Konsole und geben Sie ein Ifconfig Die gesuchte IP-Adresse steht in der zweiten Ausgabezeile hinter dem Begriff inet Adressse: NX Client einrichten Zum Herstellen einer Verbindung mit dem Linux PC verwenden wir folgende Parameter. Das Paßwort des Users knoppix ist das, das Sie beim Start des FreeNX Servers festgelegt haben. Die Bezeichnung der Session ist frei wählbar. 12. Visual FoxPro Entwicklerkonferenz 2005 10 • D-TSVL (Gruppe SOFT) Terminal Server mit Linux © 2005 Markus Winhard Bitte ersetzen Sie die IP-Adresse durch die Ihres Linux Servers. Wenn Sie alle Angaben zu Verbindung korrekt eingegeben haben, aber der NX Client trotzdem beim ersten Versuch keine Verbindung herstellen kann, dann kann das entweder an Ihrer Software Firewall liegen oder daran, daß Sie die Kompressionsrate gegenüber der Standardvorgabe ADSL geändert haben (die darf erst nach der ersten erfolgreichen Verbindung zu Ihrem Server geändert werden). Wenn trotz korrekter Angaben beim ersten Versuch keine Verbindung hergestellt werden kann, dann hilft es in der Regel, den NX Client zu deinstallieren und nach einem Reboot des Windows PCs erneut zu installieren. Wenn die Verbindung zu einem Server einmal geklappt hat, dann wird sie nach meinen Erfahrungen auch in Zukunft klappen und die Einstellungen können im Bedarfsfall jetzt geändert werden. Einstellung MODEM ist Terminal Server mit Linux © 2005 Markus Winhard (Gruppe SOFT) 12. Visual FoxPro Entwicklerkonferenz 2005 D-TSVL • 11 z.B. die bestmögliche Komprimierung, d.h. höhere CPU Belastung und dafür weniger Bandbreitenbedarf auf der Leitung zwischen Client und Linux Server. Auf alle Fragen während des ersten Verbindungs-Versuchs antworten wir mit der vorgeschlagenen Standardantwort. Starten einer VFP Anwendung Mounten Sie das Laufwerk, auf dem Ihre VFP Anwendung liegt in der oben beschriebenen Weise. Navigieren Sie mit dem Konquerer Dateimanager ins Verzeichnis Ihrer VFP Anwendung und klicken Sie mit der rechten Maustaste auf die EXE Datei. Wählen Sie den Menüpunkt Öffnen mit... und tragen Sie im folgenden Dialog wine ein. Setzen Sie die Checkbox Programm diesem Dateityp fest zuordnen. Bestätigen Sie mit [OK] 12. Visual FoxPro Entwicklerkonferenz 2005 12 • D-TSVL (Gruppe SOFT) Terminal Server mit Linux © 2005 Markus Winhard Anschließend kommt ein Statusfenster das anzeigt, daß Ihre Anwendung geladen wird. Das dauert relativ lange, da hierbei im Hintergrund zuerst einmal die simulierte Windows Umgebung gestartet wird. Sobald Ihre VFP Anwendung erscheint, verschwindet das Wine Launch Window. Terminal Server mit Linux © 2005 Markus Winhard (Gruppe SOFT) 12. Visual FoxPro Entwicklerkonferenz 2005 D-TSVL • 13 12. Visual FoxPro Entwicklerkonferenz 2005 14 • D-TSVL (Gruppe SOFT) Terminal Server mit Linux © 2005 Markus Winhard Einrichten einer Verknüpfung auf dem Desktop Das funktioniert wie unter Windows. Es gibt nur einen kleinen Unterschied: Sie müssen nach der Auswahl der EXE-Datei das Wort wine und ein Leerzeichen vor den Pfad schreiben. Drucken Windows Anwendungen unter Linux/WINE nutzen CUPS, das Common Unix Printing System. Wenn es für Ihren Drucker einen Linux Druckertreiber gibt, dann sollte das Drucken aus Windows Programmen kein Problem sein. Das setzt voraus, daß der Drucker an einem Gerät angeschlossen ist, das von CUPS erreicht werden kann. Im einfachsten Fall ist das ein Drucker am Parallelport des Linux PCs. Drucken auf einem Drucker der am Windows Arbeitsplatz hängt soll laut NoMachine ebenfalls möglich sein. Die entsprechende Dokumentation finden Sie auf www.nomachine.com. Windows Programme unter Linux/WINE installieren Eine recht schöne Anleitung und spezielle Hilfsprogramme mit angepaßten Konfigurationseinstellungen für den Internet Explorer, MS Office und einige gängige Windows Programme finden Sie auf http://www.von-thadden.de/Joachim/WineTools/ Stolperfallen für VFP Anwendungen Wie sie sehen läuft eine VFP Anwendung, die sich auf den Standard-Befehlsumfang von VFP beschränkt, relativ problemlos. Folgende Einschränkungen sind bekannt: - DECLARE DLL Aufrufe funktionieren nur, wenn die originale Windows DLL gefunden wird. - WAIT WINDOWs zeigen öfter mal keinen Text an, der Text in Tooltips ist öfter mal zu kurz. Für diese beiden Probleme existiert ein Patch von Paul McNett. Er bedingt aber, daß Sie WINE aus den Quellcodes selbst erstellen. Eine ausführliche Anleitung finden Sie in den Unterlagen zur 2003er Session E-LIN2 von Whil Hentzen. Aus irgendeinem Grund scheint dieser Patch nicht Bestandteil des WINE Pakets geworden zu sein. - Einige ActiveX Controls, die mit Windows ausgeliefert werden, sind in WINE bereits vorhanden (z.B. Common Controls) und dürfen nicht mehr durch die entsprechenden Windows Original Datei ersetzt werden. Da WINE ständig weiterentwickelt wird, konsultieren Sie bitte die WINE Website www.winehq.org um festzustellen, welche Controls in Ihrer WINE Version betroffen sind. Die WINE Version können Sie feststellen, indem Sie in einem Konsolen-Fenster wine --version eingeben. - Das Anzeigen von HTML und CHM Hilfedateien ohne Installation des Internet Explorers ist gerade in der Entwicklung und funktioniert vermutlich erst 2006 sauber. - Einige XML Funktionen in VFP werden teilweise durch externe MSXML Komponenten abgewickelt. Diese müssen ggf. installiert werden. Rechtliches Microsoft drückt sich für einen rechtswissenschaftlichen Laien wie mich viel zu kompliziert aus, wenn es um den Einsatz von VFP unter Linux/WINE geht. Einige VFP Entwickler sind in dieser Richtung anscheinend besser bewandert und haben sich öffentlich zu diesem Thema geäußert. Die folgenden Sätze geben sinngemäß Ihre Einschätzung der Rechtslage wieder. Angeblich - dürfen FoxPro Applikationen bis einschließlich VFP 6 ohne Einschränkungen auf Linux laufen - soll es ab VFP 7 notwendig sein, daß der Anwender für den Server eine Lizenz der VFP Entwicklungsumgebung in der jeweiligen Version erwirbt Terminal Server mit Linux © 2005 Markus Winhard (Gruppe SOFT) 12. Visual FoxPro Entwicklerkonferenz 2005 D-TSVL • 15 - müssen Sie eine eigene Lizenz der entsprechenden Windows Version für den Server besitzen, wenn Sie originale DLLs von Windows unter WINE nutzen - setzt die Installation des Internet Explorers unter Linux/Wine voraus, daß für den Linux Server eine eigene Windows Lizenz vorhanden ist Ich möchte mich zu diesem Thema nicht äußern, da mir das Fachwissen fehlt um solch komplizierte Rechtsverhältnisse korrekt darzustellen. Bitte lesen Sie die Lizenzbestimmungen im Zweifelsfalle selbst. Kanotix auf Festplatte installieren Schaffen Sie zuvor mindestens 3 GB freien Platz auf Ihrer Windows Festplatte, oder besser, nehmen Sie einen PC, der eine freie Festplatte oder eine freie Partition hat. Löschen Sie die Partition(en) dieser Festplatte mit Ihrem bevorzugten Tool. Öffnen Sie ein Konsolenfenster. Wechseln Sie in den Kontext des Users root durch Eingabe von su Starten Sie die Festplatten-Installation mit kanotix-installer Famous last words Sie sehen, daß Sie mit relativ geringem Aufwand Ihren Kunden eine Terminalserverlösung bieten können, die zum einen stark an die gewohnte Windows Oberfläche erinnert und zum anderen geringe Anschaffungskosten verursacht. Dem Anwender wird die Scheu vor dem Neuen genommen, da er sich gleich „zuhause“ fühlt. Nicht zuletzt können Sie sich damit unabhängig von den Lizenzgebühren des Marktführers machen und statt dessen Ihre eigene Arbeitsleistung verkaufen. Bei Fragen zu diesem Skript erreichen Sie den Autor unter [email protected]. 12. Visual FoxPro Entwicklerkonferenz 2005 16 • D-TSVL (Gruppe SOFT) Terminal Server mit Linux © 2005 Markus Winhard