Einer der Hauptgründe dafür, daß Linux auf dem Desktop noch nicht denselben Siegeszug wie auf dem Server angetreten hat, liegt darin, daß viele Unternehmen davor zurückschrecken, statt "liebgewonnener" Applikationen, die sie vom Windows-Desktop gewöhnt sind, einen Ersatz für die X11-Welt benutzen zu müssen, falls die bekannten Applikationen noch nicht portiert wurden. Dies fällt umso schwerer, wenn die Programme die einzige Tür darstellen zu einer ganzen Architektur, die im Backoffice des Unternehmens zur Anwendung kommt. Denn dann kämen zu den eventuellen Schulungskosten für neue Client-Programme auch noch die Kosten für die nötigen Anpassungen in der Backend-Architektur.
Nach dem Motto "Wenn der Prophet nicht zum Berg kommt, muß der Berg zum Propheten" hat sich das OpenSource Projekt WINE es sich zum Ziel gesetzt, solche Windows-Programme unter Linux und X11 nutzbar zu machen, indem man nicht darauf wartet, daß die einzelnen Programme auf X11 portiert werden, sondern die von den benötigten Programmen bigten Programmen benötigten Schnittstellen (API) den Programmmen zur Verfügung stellt: In diesem Projekt wurde die Win32-API unter Linux nachprogrammiert, so daß die einzelnen Funktionen, die unter Windows in DLLs bereitgestellt werden, jetzt als .so-Bibliotheken die entsprechenden Funktionen im Linux-Betriebssystem und dem X11-Windowsystem aufrufen. Die Bibliotheken des Projekts dienen somit quasi als "Übersetzer" zwischen den Windows-Binaries und der Linux-Laufzeitumgebung.
Ferner bietet WINE auch eine Bibliothek gegen die man Windows-Programme, die im Quelltext vorliegen kompilieren und linken kann; im besten Fall hat man damit die gesamte Portierung auf X11 in einem Schritt erledigt.
Lotus Notes ist der Client für die Kollaborations-Middleware rings um den Domino-Server von Lotus. Es erfreut sich gerade in größeren Unternehmen großer Beliebtheit und ist daher mit Sicherheit einer der größen Stolpersteine auf dem Migrationspfad weg von Microsoft Windows hin zu einem Unix-Derivat. Leider hat Lotus den Notes Client bisher nicht auf X11 portiert und hat dies nach eigenem Bekunden auch in der nächsten Zeit nicht vor. Grund dafür ist, daß nach Ansicht von Lotus das Betriebssystem Linux nicht hinreichend standardisiert ist und es deswegen zu aufwändig ist, die Lauffähigkeit des Programms sicherzustellen (komisch, andere schaffen das auch; unter anderem aucr anderem auch Lotus Mutterkonzern IBM). Dieses Argument wird umso seltsamer, wenn man bedenkt wie hervorragend Notes mit WINE zusammenarbeitet; dazu braucht man nicht eine einzige Datei aus dem Hause Microsoft. Das Linking gegen die WINE-Bibliothek sollte hier eigentlich ohne großen Aufwand einen ELF-formatigen "nativen" Client hervorbringen.
Solange Lotus nicht selbst einen Notes Client für Linux zur Verfügung stellt, muß der gewiefte Admin, der seine Unternehmensdesktops auf ein echtes Betriebssystem umstellen will, sich mit WINE selbst helfen.
Die einfache Methode besteht sicherlich darin, sich von der WINE-Homepage die aktuellen Binaries
zu ziehen und diese mit dem Paketmanager des eigenen Systems (rpm, apt) zu installieren. Danach sollten sich die Konfigurationsdateien in
~/.wine
befinden.
Die etwas aufwändigere Installation beeteht darin, sich den Quellcode von der WINE-Homepage zu
besorgen und die Installation gemäß den mitgelieferten Informationen (README etc).durchzuführen. Dies hat potenziell den Vorteil, daß man beim Kompilieren starke Optimierungseinstellungen vorgeben kann. Abweichend von den meisten Projekten geht man hier nicht hier nicht direkt den bekannten Weg über ./configure
, make
und make install
, sondern verwendet stattdessen das Skript ./tools/wineinstall
. Auch hier sollte am Ende des Vorgangs die Konfiguration unter ~/.wine
liegen.
Um eventuelle Reibereien mit einem bestehenden Windows-System auf dem Rechner zu vermeiden und um ganz ohne eine Windows-Installation auszukommen, muß zunächst eine "frische" Windows-Umgebung geschaffen werden, in der Notes dann installiert werden kann.
Dazu muß man ein Verzeichnis bereitstellen, welches im folgenden NOTESDIR
heißen wird. Innerhalb dieses Verzeichnisses ist folgende Struktur zu schaffen:
NOTESDIR | |- config |- virtualWindows | |- Program Files |- Windows | |- Start Menu | | | |- Programs | |- System |- System32
Dabei stellt NOTESDIR/config
das Verzeichnis dar, in dem alle Konfigurationseinträge wie z.B. auch die Registry gespeichert werden, une NOTESDIR/virtualWindows
entspricht der obersten Ebene einer Windows-Umgebung (C:
).
Als nächstes muß die Konfiguration angepaßt werden. Dazu kopiert man am einfachsten die Datei ~/.wine/config
nach NOTESDIR/config
und paßt die Kopie dann an die neuen Verzeichnisse an. Ein Verzeichnisse an. Eine Beispieldatei könnte so aussehen ($NOTESDIR
muß natürlich ersetzt werden):
WINE REGISTRY Version 2 ;; All keys relative to \\Machine\\Software\\Wine\\Wine\\Config [Drive C] "Path" = "$NOTESDIR/virtualWindows" "Type" = "hd" "Filesystem" = "win95" [Drive G] "Path" = "/mnt/cdrom" "Type" = "cdrom" "Device" = "/dev/cdrom" "Filesystem" = "win95" [Drive F] "Path" = "/tmp" "Type" = "hd" "Filesystem" = "win95" [Drive E] "Path" = "${HOME}" "Type" = "hd" "Filesystem" = "win95" [wine] "windows" = "C:\\windows" "system" = "C:\\windows\\SYSTEM" "path" = "C:\\windows\\system;C:\\windows" "temp" = "F:" "GraphicsDriver" = "x11drv" [Version] "Windows" = "win98" [DllDefaults] "DefaultLoadOrder" = "native, so, builtin" [DllOverrides] "kernel,kernel32" = "builtin" "oleaut32" = "builtin, native" "ole32" = "builtin, native" "commdlg" = "builtin, native" "comdlg32" = "builtin, native" "comctl,comctl32" = "builtin, native" "shell" = "builtin, native" "shell32" = "builtin, native" "shfolder" = "builtin, native" "shlwapi" = "builtin, native" "shdocvw" = "builtin, native" "advapi32" = "builtin, native" "msvcrt" = "native, builtin" "mciavi.drv" = "native, builtin" "mcianim.drv" = "native, builtin" "*" = "builtin, native" [x11drv] "AllocSystemColors" = "100" "PrivateColorMap" = "N" "PerfectGraphics" = "Nrs" = "100" "PrivateColorMap" = "N" "PerfectGraphics" = "N" "Managed" = "N" "Desktop" = "1200x900" "UseDGA" = "Y" "UseXShm" = "Y" "UseXVidMode" = "Y" "UseTakeFocus" = "Y" "DXGrab" = "N" "DesktopDoubleBuffered" = "Y" "TextCP" = "0" [fonts] "Resolution" = "96" "Default" = "-adobe-helvetica-" "DefaultFixed" = "fixed" "DefaultSerif" = "-adobe-times-" "DefaultSansSerif" = "-adobe-helvetica-" [FontDirs] [serialports] [parallelports] "Lpt1" = "/dev/lp0" [ppdev] [spooler] "FILE:" = "tmp.ps" "LPT1:" = "|lpr" [ports] [Debug] [registry] "LoadGlobalRegistryFiles" = "Y" "LoadHomeRegistryFiles" = "Y" "LoadWindowsRegistryFiles" = "Y" "WritetoHomeRegistryFiles" = "Y" "SaveOnlyUpdatedKeys" = "Y" [Tweak.Layout] "WineLook" = "Win98" [Console] [Clipboard] "ClearAllSelections" = "0" "PersistentSelection" = "1" [afmdirs] "1" = "/usr/share/ghostscript/fonts" "2" = "/usr/share/a2ps/afm" "3" = "/usr/share/enscript" "4" = "/usr/X11R6/lib/X11/fonts/Type1" [WinMM] "Drivers" = "wineoss.drv" "WaveMapper" = "msacm.drv" "MidiMapper" = "midimap.drv" [dsound]
Damit ist die Vorbereitung abgeschlossen, die Registry wird on-the-fly beim ersten Start in der neuen Umgebung erstellt.
Zur Installation von Notes mountet man zunächst die CDROM; im Beispiel gehe ich davon aus, daß sie unter /mnt/cdrom
gemountet wird. Zur Installation führt man die folgenden Befehle aus (dabei wird. Zur Installation führt man die folgenden Befehle aus (dabei wird $NOTESDIR wie gehabt ersetzt):
cd $NOTESDIR/virtualWindows WINEPREFIX=$NOTESDIR/config wine /mnt/cdrom/setup.exe
Ab hier gestaltet sich die Installation eigentlich wie unter Windows und hängt von den gegebenen Umständen ab. Achtung: Die Installation scheint manchmal zu hängen, das ist aber nicht der Fall. Dabei wird im Hintergrund die Registry aktualisiert, was ein wenig Zeit in Anspruch nimmt. Nach einer Tasse Kaffee und erfolgter Installation kann man das Programm starten mit folgendem Aufruf:
WINEPREFIX=$NOTESDIR/config wine $NOTESDIR/virtualWindows/Lotus/Notes/notes.exeAls Ergebnis bekommt man nach erfolgreichem Login dann die Startseite von Notes: