Windows-Programme für Linux als Debian-Paket packen und ausführbar machen

Ab und zu ist es erforderlich, Programme zu nutzen, für die es keine Linux-Versionen gibt. In diesem Fall ist es möglich, die Windows-Version einer Anwendung mit der Windows-kompatiblen Laufzeitumgebung wine zu nutzen.

Ab und zu ist es erforderlich, Programme zu nutzen, für die es keine Linux-Versionen gibt. In diesem Fall ist es möglich, die Windows-Version einer Anwendung mit der Windows-kompatiblen Laufzeitumgebung wine zu nutzen. wine stellt dabei die für die Ausführung von Windows-Programmen erforderlichen dynamischen Programmbibliotheken (Dynamic Link Libraries) zur Verfügung, sodass eine Windows-Binärdatei auch unter Linux gestartet werden kann. Zudem stellt wine auch eine Windows-Registry zur Verfügung, da diese von manchen Windows-Anwendungen erfordert wird.

Um Windows-Programme möglichst komfortabel auch auf Linux-Systemen nutzen zu können, bietet es sich an, diese in ein Linux-AppImage zu packen. Das AppImage ist ein komprimiertes Dateisystemabbild, das alle für die Ausführung eines Programms erforderlichen Abhängigkeiten enthält, sodass die Anwendung auf jedem Linux-System ohne Installation ausgeführt werden kann. In dem Fall der Windows-Anwendung enthält das AppImage die ausführbare Windows-Datei vom Typ exe sowie die Windows-kompatible und für das Programm passend konfigurierte Laufzeitumgebung wine. Macht man einen Doppelklick auf das AppImage, so wird das Windows-Programm mit wine gestartet und man kann es nutzen.

Da in dem AppImage nicht nur die Anwendung als solches, sondern auch noch die wine-Laufzeitumgebung mit allen Abhängigkeiten enthalten ist, wird ein solches AppImage leider recht groß. So wächst dann zum Beispiel eine Windows-exe von etwa 40 MB auf über 100 MB an.

In einem weiteren Schritt muss man das AppImage dann in ein Debian-Installationspaket packen, damit man es einfach auf einem Linux-System installieren kann und die Programmstarter automatisch im Anwendungsmenü erzeugt werden.

Im Detail geht man wie folgt vor:

  • Man muss dann das AppImage in deb-Paket packen. Dabei kann man wie von mir hier beschrieben vorgehen.

Leider funktioniert diese Vorgehensweise nicht generell für alle Windowsanwendungen. Vor allem funktioniert diese Vorgehensweise nicht für Anwendungen, die Microsoft .NET nutzen. Mir ist es aber vollkommen problemlos gelungen, Qt-basierte Windows-Anwendungen auf diese Weise zu packen.