Wie lassen sich fehlende Windows-Systemdateien (DLLs) in einer Wine-Umgebung manuell nachinstallieren?

Melden

Das Nachinstallieren von fehlenden DLL-Dateien in Wine ist ein häufiger Vorgang, da Wine aus rechtlichen Gründen nicht alle originalen Microsoft-Bibliotheken mitliefern darf.

Hier sind die drei gängigsten Methoden, um fehlende DLLs zu ergänzen:


Methode 1: Der einfachste Weg via winetricks (Empfohlen)

winetricks ist ein Hilfsskript, das bekannte Bibliotheken (wie DirectX, Visual C++ Redistributables, .NET) automatisch aus sicheren Quellen herunterlädt und korrekt konfiguriert.

  1. Installation: Falls nicht vorhanden, installiere es (z. B. sudo apt install winetricks).
  2. DLL installieren: Wenn du weißt, welches Paket die DLL enthält (z. B. vcrun2015 für die msvcp140.dll), gib folgendes im Terminal ein:
    WINEPREFIX=~/.wine winetricks vcrun2015

    (Ersetze ~/.wine durch den Pfad deines spezifischen Wine-Prefixes, falls du mehrere nutzt).


Methode 2: Manuelles Kopieren der DLL

Wenn die DLL nicht über Winetricks verfügbar ist oder du eine ganz spezifische Datei hast:

  1. Datei finden: Besorge dir die DLL von einer vertrauenswürdigen Quelle (am besten von einer bestehenden Windows-Installation oder einem offiziellen Installer).
    • Warnung: Vermeide dubiose "DLL-Download-Seiten" im Internet (Malware-Gefahr).
  2. In das Wine-Verzeichnis kopieren:
    • 32-Bit DLLs: Kopiere sie nach ~/.wine/drive_c/windows/system32 (oder syswow64, falls es ein 64-Bit Prefix ist).
    • 64-Bit DLLs: Kopiere sie nach ~/.wine/drive_c/windows/system32.
    • Hinweis: Bei Wine-Prefixen ist die Ordnerstruktur manchmal verwirrend. Im Zweifel ist der Ordner der Anwendung selbst (dort, wo die .exe liegt) oft der sicherste Ort für eine manuelle DLL.

Methode 3: DLL-Overrides konfigurieren (Wichtig!)

Selbst wenn die Datei im Ordner liegt, nutzt Wine oft lieber seine eigenen "Builtin"-Versionen (Nachbauten). Du musst Wine anweisen, die "Native" (die echte Windows-) DLL zu bevorzugen.

  1. Öffne die Wine-Konfiguration für deinen Prefix:
    WINEPREFIX=~/.wine winecfg
  2. Gehe zum Reiter Bibliotheken (Libraries).
  3. Gib unter Neue Überschreibung für: den Namen der DLL ein (z. B. msvcr120) und klicke auf Hinzufügen.
  4. Die DLL erscheint in der Liste. Standardmäßig steht dort meistens (native, builtin). Das bedeutet, Wine sucht zuerst nach der echten Datei und nutzt erst dann den Nachbau.
  5. Klicke auf Anwenden und OK.

Fehlerbehebung: 32-Bit vs. 64-Bit

Ein häufiger Fehler ist das Mischen der Architekturen.

  • Wenn dein Programm eine 32-Bit-Anwendung ist, benötigt es zwingend die 32-Bit-Version der DLL, auch wenn du auf einem 64-Bit-Linux arbeitest.
  • In einem 64-Bit Wine-Prefix (Standard) kommen 64-Bit-Systemdateien ironischerweise in den Ordner system32 und 32-Bit-Systemdateien in den Ordner syswow64 (genau wie bei echtem Windows).

Zusammenfassung: Welches Paket für welche DLL?

Hier sind einige häufig gesuchte DLLs und ihre Winetricks-Namen:

  • msvcp, msvcr: winetricks vcrun2015 (oder 2013, 2010 etc.)
  • d3dx9_, xinput: winetricks d3dx9 oder winetricks directx9
  • .NET Framework: winetricks dotnet48
  • *mfc:* winetricks mfc42

Pro-Tipp: Wenn du wissen willst, welche DLL genau fehlt, starte das Programm über das Terminal: wine programm.exe. Die Fehlermeldungen dort sagen dir meist präzise: “err:module:import_dll Library X.dll not found”.

0