Wine
Wie man mit Wine und Wineprefixes arbeitet.
Installation
Um unter Ubuntu immer die neueste Wine-Version zu erhalten, folgende Paketquelle hinzufügen:
ppa:ubuntu-wine/ppa
Details siehe Wine-Artikel von ubuntuusers
Tools
Skript "winer" erstellen
Details siehe: http://wiki.ubuntuusers.de/Wine#Wine-startet-Programme-nicht-in-ihrem-Verzeichnis
Datei mit Namen winer
und folgendem Inhalt erstellen:
#!/bin/bash
##
## The winer-script executes wine with the given filename and params, but first
## changes into the file directory, which is important for some Windows programs
## to run.
##
## Requires:
## - wine (of course)
## - winepath to read Windows pathes like "C:\\Program Files\..."
## (should be part of wine)
##
## No warranty or guarantee or whatsoever!
##
if [ -f "$(which wine)" ]; then
if [ -f "$1" ]; then
PROGRAM_PATH="$1"
elif [ -f "$(which winepath)" ]; then
PROGRAM_PATH="$(winepath "$1")"
else
echo "$1 is not a file. Winepath could not be found."
exit 1
fi
shift # Remove program name from arguments.
if [ -f "$PROGRAM_PATH" ]; then
cd "$(dirname "$PROGRAM_PATH")"
wine "$(basename "$PROGRAM_PATH")" "$*"
exit 0 # The only exit point, where everything went fine.
else
echo "$PROGRAM_PATH is not a file."
fi
else
echo "Wine could not be found. Maybe it is not installed."
fi
exit 1
winer
-Skript global verfügbar machen:
sudo mv winer /usr/bin
sudo chown root.root /usr/bin/winer
sudo chmod 755 /usr/bin/winer
Bash-Befehle für Abeiten mit Wineprefixes
Die folgenden Befehle in die ~/.bashrc
eintragen, um praktische Befehle für den Umgang mit Wineprefixes zu erhalten.
# Listet die verfügbaren Wineprefixes auf
alias wine-prefixes="ls -1 -d /home/til/.wine/wineprefix/*/ | sed 's#/home/til/.wine/wineprefix/##' | sed 's#/\$##'"
# Startet den Explorer eines Wineprefixes
function wine-explorer {
if [ -z $1 ]
then
echo "Kein Präfix angegeben!"
else
WINEPREFIX=~/.wine/wineprefix/$1/ winer ~/.wine/wineprefix/$1/drive_c/windows/explorer.exe
fi
}
# Startet die Kommandozeile eines Wineprefixes
function wine-cmd {
if [ -z $1 ]
then
echo "Kein Präfix angegeben!"
else
WINEPREFIX=~/.wine/wineprefix/$1/ winer ~/.wine/wineprefix/$1/drive_c/windows/system32/cmd.exe
fi
}
# Startet regedit für einen Wineprefix
function wine-regedit {
if [ -z $1 ]
then
echo "Kein Präfix angegeben!"
else
WINEPREFIX=~/.wine/wineprefix/$1/ wine regedit
fi
}
# Erstellt einen Wineprefix aus der Vorlage
function wine-create-prefix {
if [ -z $1 ]
then
echo "Kein Präfix angegeben!"
else
cp -R ~/.wine/wineprefix/_vorlage ~/.wine/wineprefix/$1
fi
}
winetricks installieren
Details siehe: http://wiki.winehq.org/winetricks
Installation:
wget http://www.kegel.com/wine/winetricks
sudo mv winetricks /usr/bin
sudo chown root.root /usr/bin/winetricks
sudo chmod 755 /usr/bin/winetricks
Winetricks-GUI für einen wineprefix starten:
export WINEPREFIX=~/.wine/wineprefix/mein-prefix/
cd $WINEPREFIX/drive_c/
winetricks
:!: Achtung: Die Installation mit GUI klappt dann manchmal nicht. In diesem Fall das gewünschte Paket als Parameter angeben. FIXME Diese Problem ist evtl. durch das cd
behoben.
Installation von DirectX 9 Direct3D:
export WINEPREFIX=~/.wine/wineprefix/mein-prefix/
cd $WINEPREFIX/drive_c/
winetricks d3dx9
Installation von mfc42:
export WINEPREFIX=~/.wine/wineprefix/mein-prefix/
cd $WINEPREFIX/drive_c/
winetricks mfc42
Mit wineprefix arbeiten
Details siehe: http://wiki.ubuntuusers.de/Wine#Wineprefix
Neuen (frischen) Wineprefix anlegen:
mkdir ~/.wine/wineprefix
wineprefixcreate --prefix ~/.wine/wineprefix/mein-prefix
Neuen Wineprefix aus Vorlage anlegen:
cp -R ~/.wine/wineprefix/_vorlage ~/.wine/wineprefix/mein-prefix
Wine-Konfig für diesen Prefix öffnen:
WINEPREFIX=~/.wine/wineprefix/mein-prefix/ winecfg
Programm in Prefix mit Linux-Pfad starten:
WINEPREFIX=~/.wine/wineprefix/mein-prefix/ winer ~/.wine/wineprefix/mein-prefix/drive_c/Programme/mein-programm.exe
Explorer für einen Wineprefix starten:
cd ~/.wine/wineprefix/mein-prefix/ && WINEPREFIX=`pwd` winer drive_c/windows/explorer.exe
Programm in Prefix mit Windows-Pfad starten:
cd /home/til/.wine/wineprefix/mein-prefix/dosdevices/d\:
WINEPREFIX=~/.wine/wineprefix/mein-prefix/ wine "D:/Start.exe"
Umgebungsvariablen
Siehe: http://www.winehq.org/docs/wineusr-guide/environment-variables
Problembehandlung
Fehlende DLLs
Bei solchen Fehlermeldungen:
wine: Call from 0x43d42d to unimplemented function d3dx9_26.dll.D3DXGetImageInfoFromFileInMemory, aborting
einfach die genannte DLL (z.B. d3dx9_26.dll
) aus dem Verzeichnis c:\Windows\system32
einer Windows-Installation in das Verzeichnis drive_c/windows/system32/
des wineprefix kopieren.