Aus Linux-Magazin 10/2007

Legacy-Anwendungen als Lösung fürs Server-based Computing

Abbildung 2: Ist der Programmautor der Windows-Software kooperationsbereit, gelingt die Portierung nach Wine fast immer perfekt – hier bei einer betriebswirtschaftlichen Software für die Textilindustrie.

Bei der Planung der Server-Infrastruktur liegt es nahe, auch an die Umstellung von Windows-Anwendungen auf Linux zu denken. Wer sich bei den Anwendungen beschränkt, darf fürs Server-based Computing zwischen dem mit freien Tools unterstützten Wine oder der kommerziellen Variante Crossover wählen.

Abbildung 1: Wine allein eignet sich für den Multiuser-Betrieb von Servern nicht besonders. Hilfe bringen Crossover, Wintools oder Wine-Doors (Bildausschnitte im Uhrzeigersinn).

Abbildung 1: Wine allein eignet sich für den Multiuser-Betrieb von Servern nicht besonders. Hilfe bringen Crossover, Wintools oder Wine-Doors (Bildausschnitte im Uhrzeigersinn).

Geht es um Wine als Ausweg aus der Windows-Falle, dann vorrangig um den Einsatz von Windows-Programmen auf Einzelplatzrechnern [1]. Beim Server-based Computing dagegen können Wine und Linux entweder einen Windows-Terminalserver ablösen oder einzelne (Fach-)Anwendungen, die es nur für Windows gibt, vom bisherigen Windows-Client weg auf einen Linux-Server verlagern. Damit ist der Weg frei für eine Client-Migration hin zu Linux.

Auf dem Server legt nicht jeder Benutzer eine einzelne Installation an und konfiguriert sie – das wäre kaum zu managen -, sondern der Admin pflegt eine zentrale Installation. Lediglich kleine Teile, etwa individuelle Registry-Einträge, liegen in den Benutzerkonten. Damit verbunden ist die Frage, wie man mit Updates für die benutze Windows-Software verfährt. Hier gibt Wine keine Hilfestellung. Programme in der Wine-Instanz verhalten sich wie unter Windows und mangels einheitlichen Paketsystems muss der Admin darauf hoffen, dass der Programmautor ein funktionierendes Verfahren implementiert hat. Das mag beim Einzelplatz nicht so wichtig sein, im Multiuser-Betrieb kann es zum Problem werden.

Technische Machbarkeit

Wine [2], aktuell ist Version 0.9.43, bildet die Emulationsschicht für Windows-Binärdateien. Die funktioniert nicht immer: So scheitern Anwendungen, die einen bestimmten Hardwaretreiber voraussetzen, im Wine-Betrieb. Windows-Hardwaretreiber in Wine installieren geht gar nicht, zu unterschiedlich sind die Ansätze. Einige Programme, die einen Direktzugriff auf Festplatten oder CD-Laufwerke verlangen, funktionieren trotzdem, da Wine ihnen einen Raw-Zugriff auf das Device anbietet – bei ausreichenden Benutzerrechten.

Wer wissen will, ob und wie gut seine Applikationen mit Wine laufen, schaut zunächst auf die bequeme Applikationsdatenbank des Wine-Headquarter [2]. Die Dokumentation ist jedoch mehr als lückenhaft und mit distributionsspezifischen Wine-Versionen oft nicht nachvollziehbar. Eine alternative Informationsquelle findet sich unter [3], allerdings herrscht dort ein ziemlicher Wine-Versionen-Wirrwarr.

Bleibt selber ausprobieren. Die erste ist meist auch die größte Hürde – der Installer. Programme, die sich mit dem Install Shield oder dem Microsoft Installer ins System heben wollen, benutzen kein dezidiertes Paketsystem, sondern implementieren herstellereigene Einzelfunktionen. Kommen noch Kopierschutzmaßnahmen hinzu, die fast immer sehr tief ins System eingreifen, läuft es – wenn überhaupt – auf einen Hack hinaus. Dabei stellen sich auch rechtliche Fragen.

Programme austricksen

Lassen sich Programme partout nicht zur Installation bewegen, kann der Admin sie auf einem Windows 98 installieren, auf dem er zuvor die Registry gesichert und exportiert hat. Läuft das Programm, kopiert er »C:ProgrammeName« nach »~/.wine« und sucht und kopiert neue DLLs. Nun exportiert er die Windows-Registry erneut und vergleicht die beiden Exporte. Neue und geänderte Schlüssel pflegt er unter Wine mit dem Dienstprogramm »regedit« ein, das sich wie sein Windows-Pendant verhält. Mit etwas Glück bekommt er das gewünschte Programm so zum Laufen. Ein Kandidat dafür ist der Lotus-Notes-Client. Software, die Java oder Dotnet voraussetzt, läuft dagegen nicht, weil diese Frameworks unter den derzeitigen Wine-Versionen nicht stabil zu betreiben sind.

Gut betreiben lassen sich dagegen Microsoft Office 95 bis 2000, eingeschränkt auch Office 2003, die Office-Viewer, Adobe Photoshop und Illustrator, Star Money sowie zahlreiche mit Borland-Produkten kompilierte Programme. Bei Datenbankanwendungen empfiehlt es sich, zuerst Unix-ODBC auszuprobieren, andernfalls lassen sich wahrscheinlich Microsofts Data Access Components (MDAC) anbinden, um native Windows-ODBC-Treiber zu verwenden.

Die besten Ergebnisse erreicht Wine, wenn der Windows-Programmautor den Anpassungsprozess unterstützt oder die Quellen herausgibt. Dann lässt sich in einer sorgfältig gebauten Testumgebung die Software Stück für Stück anpassen. Meist sind nur Darstellungs- oder Tastaturfehler mit einer zusätzlichen Codezeilen zu beheben; Wine selbst anzufassen ist kaum nötig.

Ziel sollte stets eine einheitliche Version für Wine und Windows sein. Auf diese Weise hat der Autor dieses Artikels jüngst für seinen Arbeitgeber eine größere betriebswirtschaftliche Standardsoftware der Textilindustrie portiert (Abbildung 2). Mit tatkräftiger Unterstützung der Softwarefirma konnte er eine komplette Softwaresuite mit Datenbankanbindung via Unix-ODBC portieren.

Abbildung 2: Ist der Programmautor der Windows-Software kooperationsbereit, gelingt die Portierung nach Wine fast immer perfekt – hier bei einer betriebswirtschaftlichen Software für die Textilindustrie.

Abbildung 2: Ist der Programmautor der Windows-Software kooperationsbereit, gelingt die Portierung nach Wine fast immer perfekt – hier bei einer betriebswirtschaftlichen Software für die Textilindustrie.

Installationshilfen

Um den Umgang mit Wine zu erleichtern, gibt es vier Open-Source-Projekte, die als Installer für ausgewählte Windows-Programme ihre Dienste verrichten: Winetools, Winetricks, Wine-Doors und IEs4Linux (Abbildung 1). Die drei ersten basieren auf der Annahme, dass Windows-Programme am besten laufen, wenn man sie mit originalen Windows-Bibliotheken versorgt. Alle vier gehen gegen die Eigenart von Wine vor, dass es je nach Windows-Applikation sehr unterschiedliche Einstellungen erfordert. Erschwerend wirkt, dass sich genau diese Einstellungen von Wine-Version zu Wine-Version gern ändern.

Seit der Version 0.9.0 muss der Admin bei jeder Änderung der Sub-Sub-Versionsnummer damit rechnen, dass eine ehemals stabile Windows-Anwendung plötzlich nicht mehr produktiv verwendbar ist. Im einfachsten Falle muss er nur Fehler bei der Bildschirmausgabe beklagen – es kann ihm aber blühen, dass sich ein Programm nicht mehr richtig bedienen lässt oder ganz abstürzt. Erste Devise mit Wine heißt also: Wer sich für eine Version entschieden hat, lässt die Finger von Updates, bis genaue Testergebnisse der neuen Version vorliegen.

Winetools

Um den Einstellungs-Inkonsistenzen aus dem Weg zu gehen, hebeln die Installationshilfen diverse Wine-Mechanismen aus. Am striktesten tut dies Winetools [4], da es zurzeit nur die Wine-Versionen 0.9 bis 0.9.7 unterstützt und den Microsoft Internet Explorer 6 und einige Microsoft-Bibliotheken für die weiteren Programminstallationen zwingend voraussetzt. Auf diesem Fundament lassen sich über die unter [5] gelisteten hinaus viele andere Programme installieren.

Auf der Sollseite stehen die Notwendigkeit einer Windows-Lizenz pro Benutzer und eine Basis, die ein Windows 98 emuliert. Da Winetools nur den Container »~/.wine« kennt, birgt jede neue Installation das Risiko, Bestehendes zu beschädigen. Zudem entwickelt der Maintainer die Software aus Zeitmangel zurzeit nicht weiter. Damit eignet sich Wintools nur als solide Basis für ältere Wine- und Windows-Software.

Winetricks

Das kleine Skript Winetricks [6] erlaubt die Installation diverser Windows Runtime Libraries. Damit laufen native Windows-ODBC-Treiber via Microsoft Data Access Components (MDAC) mit der MS-Jet-Datenbankanbindung genauso wie das native COM-Objektmodell via DCOM 98. Im Kern ähnelt ein Winetricks-Wine dem Basissetup der Winetools. Die leider für die viele Programme unausweichliche Installation von DCOM 98 macht auch hier eine Windows-Lizenz pro Benutzer fällig.

IEs4Linux

Kein allgemeiner Installer, sondern einer, der sich auf den Internet Explorer in verschiedenen Versionen spezialisiert hat, ist IEs4Linux [8]. Sein Steckenpferd beherrscht das Programm mit nahezu allen aktuellen Wine-Versionen dafür perfekt. Wer nur den IE benötigt, fährt mit IEs4Linux am besten. Für jede andere Installationen eignet es sich nicht.

Wine-Doors

Die relativ frisch geöffneten Wine-Doors [7] befinden sich zwar in einer sehr frühen Phase ihrer Entwicklung, könnten jedoch ein interessanter Nachfolger der Winetools werden. Gegenwärtig installiert die Software kaum interessante Programme, bedient sich jedoch bei Bedarf geschickterweise auch anderer Installer, wie des IEs4Linux.

Allen vier Open-Source-Installern gemein ist, dass sie Einzelinstallationen erzeugen. Den Admin im Multiuser-Umfeld unterstützen sie willentlich nicht. Ihm kann Wine selbst am ehesten mit seiner Verwaltung unterschiedlicher Installationsverzeichnisse zur Seite stehen, sofern er die Handarbeit nicht scheut.

Crossover Linux und Crossover Server

Kooperativer in dieser Hinsicht verhalten sich die kommerziellen Wine-Versionen von Codeweavers [9] mit dem Namen Crossover. Die Produkte gibt es für Mac OS, Linux und explizit auch für Thin Clients mit Linux oder Solaris. Crossover ist keine Installationshilfe, sondern ein Komplettpaket inklusive eigener Wine-Version. Neben dem obligatorischen MS Office unterstützt die Suite auch MS Project, Photoshop, Visio, Notes, Quicken und Framemaker.

In der Professional-Version richtet ein komfortabler Assistent Multiuser-Umgebungen ein und sichert die Windows-Installationen als RPM-Pakete, was das Ausrollen auf andere Server erheblich erleichtert. Das saubere Trennen der Windows-Installationen in so genannten Bottles vermeidet Seiteneffekte und erlaubt die Funktionstüchtigkeit neuer Software risikolos zu testen. Die Pro-Version kostet 50 bis 70 Euro, die Server-Variante 290 Euro plus 60 bis 70 Euro pro User.

Egal für welche der vorgestellten Wine-Versionen sich der Admin entscheidet: Um die Früchte der Windows-Emulation auf dem Server den Clients zur Ansicht zu bringen, kommen die in diesem Linux-Magazin-Schwerpunkt genannten Techniken in Frage, etwa das Umleiten der X11-Ausgaben auf ein anderes Display, VNC, NX oder andere. In der Praxis hat sich inbesondere NX wegen seiner Performance bewährt.

Probieren statt Windows

Zusammenfassend ist zu sagen, dass sich Wine gut fürs Server-based Computing eignet, vorausgesetzt der Admin hat die Windows-Applikationen zuvor mit Erfolg evaluiert. Die sauberste Lösung mit fast einer Funktionsgarantie auch für Fachanwendungen bekommt, wer Zugriff auf die Quellen oder die Entwickler der Windows-Software hat.

Die Crossover-Produkte versprechen Stabilität, Upgrade-Sicherheit und problemloses Multiuser-Verhalten zum akzeptablen Preis. Die freie Version in Kombination mit ihren Installationshilfen erlaubt hingegen eine feinere Abstimmung für Software, die Crossover nicht unterstützt. Die muss man allerdings mit spürbar höherem Aufwand – und oft mit Windows-Lizenzen – bezahlen. (jk)

Infos

[1] Joachim von Thadden, “Wine: Windows-Programme unter Linux ausführen” und “Die Winetools erleichtern die Nutzung von Wine”: Linux-Magazin-Sonderheft 03/05, S. 48 und S. 56.

[2] Wine: [http://www.winehq.org]

[3] Windows-Applikationen auf Linux: [http://frankscorner.org]

[4] Winetools: [http://www.winetools.org]

[5] Programme, die mit Winetools laufen: [http://www.winetools.org/wt0.9jo.html]

[6] Winetricks: [http://www.kegel.com/wine/winetricks]

[7] Wine-Doors: [http://www.wine-doors.org]

[8] IEs4Linux: [http://www.tatanka.com.br/ies4linux/page/De/Hauptseite]

[9] Codeweavers: [http://www.codeweavers.com/?lang=de]

Der Autor

Joachim von Thadden ist Projektmanager bei der LIS AG in Berlin und für die Umsetzung größerer Migrationsprojekte im Server- und SBC-Umfeld, auch mit Hilfe von Wine, verantwortlich.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben