wiki:LtspWine
close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Version 6 (modified by Rüdiger Kupper, 14 years ago) ( diff )

wine-support jetzt in scripts

Wine-Anwendungen unter LTSP

Diese Seite dokumentiert das Verfahren, mit dem wir Wine-Anwendungen für unsere LTSP Thin Clients verfügbar machen.

Problem

Wine-Anwendungen sind generell für Multi-User-Systeme schlecht geeignet, da das Programm eine komplette Windows-Umgebung im Homeverzeichnis des jeweiligen Users emuliert. Diese müsste in sämtlichen Homeverzeichnissen aller User vorhanden sein, damit jeder das Programm nutzen kann. Das ist aus Platz- und Wartungsgründen inpraktikabel. Eine gemeinsame Umgebung zwischen mehreren Nutzern zu teilen ist aufgrund der Eigenheiten von Wine schwierig, das stets davon ausgeht, die komplette Windows-Umgebung "für sich" zu haben (z.B. Schreibrechte in der kompletten Umgebung).

Lösungsprinzip

Bau hat für die Linuxmusterclients ein Prinzip entwickelt, wie eine Wine-Installation von mehreren Nutzern (nacheinander) genutzt werden kann. Dabei gibt es eine Wine-Umgebung mit dem installierten Programm an einem lokalen Speicherort auf dem Rechner. Startet ein Nutzer ein Skript, wird die komplette Umgebung per rsync in ein zweites Verzeichnis kopiert und per chown dem Nutzer übereignet. Danach wird die Umgebungsvariable WINE_PREFIX passend gesetzt und das Programm gestartet.

Problem für LTSP

Das oben skizzierte Verfahren funktioniert nur, wenn nur ein Nutzer zu einer Zeit das Programm verwendet. Bei unserem Client-Server-Setup sollen aber mehrere Nutzer zugleich das selbe Wine-Programm auf dem Server laufen lassen können.

Mögliche Lösungen

Wine als local application

Laufen die Wine-Programme nicht auf dem Server, sondern lokal auf dem Client, kann jeder Nutzer für die Dauer der Programmausführung seine persönliche Wine-Umgebung haben. Dazu müsste die Wine-Umgebung in der Client-Chroot installiert werden. Dann könnte man oben beschriebenes Skript genauso einsetzen.

Ein Problem tritt allerdings auf, wenn an einem Client zugleich zwei Personen angemeldet sind, was durchaus möglich ist. Das Problem können wir aber vorerst ignorieren.

Wine als Serverapplikation mit lokalem Verzeichnis

Wine könnte weiterhin auf dem Server laufen, wenn dort jeder Benutzer sein persönliches lokales Wine-Verzeichnis bekommt (etwa unter /wine/<Nutzername>). Platz genug sollte auf den Platten sein, zumal die Umgebungen nach Verwendung auch wieder gelöscht werden könnten.

Wine als Serverapplikation mit Umgebung im Homeverzeichnis

Eine weitere Möglichkeit wäre schließlich, die Wine-Umgebung einmal in das Homeverzeichnis des Nutzers zu kopieren und dann dort zu lassen. Dazu würde entsprechender Platz auf dem NFS-Server für /home benötigt. Der klare Vorteil wäre, dass Einstellungen, die die Nutzer vorgenommen haben, von Programmaufruf zu Programmaufruf überleben. Nach einer Änderung der Umgebung (z.B. Programmupdate) müssten die Nutzerumgebungen dann aber gezielt überschrieben werden.

Lösung

Skripte zur Umsetzung der Lösung "Wine als Serverapplikation mit lokalem Verzeichnis" finden sich unter source:keplertools/scripts/trunk/wine-support/.

Installation:

  • Die Datei sudoers muss auf den LTSP-Servern unter passendem Namen ins Verzeichnis /etc/sudoers.d/ kopiert werden
  • Die Skripte wine.sh und winestarter.sh müssen nach /usr/bin/ kopiert oder dort verlinkt werden.

Aufruf

Der Aufruf geschieht dann über

winestarter.sh <wine-prefix-name> <pfad-zum-exe>
Beispiel
winestarter.sh braintutor "C:/Program Files (x86)/Brain Innovation/BrainVoyager 

Das Skript erwartet die Vorlagen für die wine-Umgebungen unter /usr/share/wineprefixes/. Es erziegt temporäre Wine-Umgebungen unter /tmp/wineprefixes/<user>/<wine-prefix-name>/

Damit das Programm über das Menü gestartet werden kann, muss eine entsprechende *.desktop-Datei in /usr/share/applications/gedit.desktop erzeugt werden.

Beispiel
[Desktop Entry]
Name=Brain Tutor
Comment=Brain Voyager Brain Tutor
Exec=winestarter.sh braintutor "C:/Program Files (x86)/Brain Innovation/BrainVoyager Brain Tutor/BrainVoyager Brain Tutor.exe"
Terminal=false
Type=Application
Icon=
Categories=Wine-Programs-Accessories;

[TODO: Icon-Pfad ergänzen]


Creative-Commons-Lizenz

Die Inhalte dieser Wiki-Seite erscheinen, (wo anwendbar und nicht anderweitig angegeben), unter einer Creative-Commons-Lizenz CC BY NC SA 3.0 Germany. Urheber: Dr. R. Kupper.

Note: See TracWiki for help on using the wiki.