Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
BeiträgeDelphiIDEWindows

RAD Studio 11 (Delphi) mit Linux-GUI-Anwendungen für WSL2 mit Windows 11

fmxlinuxgui

Windows 11 (wie auch Windows 10 in den aktuellen Insider Builds) erlaubt die Nutzung des Windows Subsystem für Linux (WSL) in der Version 2 (WSL2) inklusive Grafik-Anwendungen (Linux GUI Anwendungen). Klingt toll. Ist es auch!

Das Ganze wird auch vom RAD Studio (Delphi) 11 unterstützt. WSL2 ist eine unterstützte Zielplattform von Delphi 11! https://docwiki.embarcadero.com/PlatformStatus/en/Main_Page#RAD_Studio_Alexandria

Dazu braucht man folgendes:

Wichtiger Hinweis: FMXLinux ist nur für die Vollversion (Enterprise/Architect) verfügbar. Nicht für die Trial. Mit der Trial geht nur Entwicklung für die Kommandozeile bzw Web-Server Anwendungen / ReST / DataSnap……

Ich möchte das hier Anhand von Windows 11, Insider Preview Build 22000, auf dem Hypervisor („Virtualisierer“) VMware Fusion 12 unter macOS darstellen.

Installation von Windows 11

Im Prinzip alles, wie man es gewohnt ist. Es gibt aber einen wichtigen Unterschied: Damit das Subsystem für die Virtualisierung funktioniert, muss VT-x eingeschaltet werden. Das trifft auch auf direkte Hardware/Blech zu. Hier muss man die Virtualisierungsmöglichkeiten im BIOS/UEFI einschalten. Unter VMware Fusion ist das eine Option unter „Prozessoren & RAM“:

bildschirmfoto 2021 09 13 um 11 50 19

Der Machine sollte man „reichlich“ RAM und mindestens 2 CPUs/Cores geben. Aktuell (Build 22000.184) braucht man noch kein TPM und/oder Secure-Boot in einer VM. Aber das wird sich ja ändern. Weitere Einstellungen/Änderungen, die ich für die VM eingestellt habe: [X] Seitenkanalabgleich deaktivieren / 100 GB HDD/SSD / sonst soweit Standard.

Nachdem die VM installiert ist (inkl. den „VMware Tools“, Aktivierung von Windows, und dem Windows-Update auf die 22000.184 [je nach Installations ISO]), ist das Windows soweit bereit. Zumindest „fast“. Man muss noch WSL bzw WSL2 installieren.

NB: Microsoft nervt langsam echt mit ihrem Online-Konto-Zwang. Es geht aber (noch?!?!?) ohne während der Konfiguration des Benutzerkontos: Anmeldeoptionen -> Offlinekonto -> Vorerst überspringen

Installation von WSL2

WSL2 lässt sich auf Windows 11 sehr leicht installieren. Einfach eine Kommandozeile mit erhöhten Rechten starten (Start als Administrator)

 

wslinstall

Dies installiert auch gleich (unter Windows 11) die GUI Unterstützung mit!

–install -> installiert WSL Unterstützung

-d Ubuntu -> installiert das letzte, aktuelle Ubuntu (20.04 LTS)

Die WSL-Installation fordert zum Schluss zu einen Neustart des Rechners auf. („Der angeforderte Vorgang wurde erfolgreich abgeschlossen. Änderungen werden erst nach einem Neustart des Systems wirksam.“) Nach dem Neustart kann man Benutzernamen und Kennwort definieren; diese Aufforderung kommt automatisch nach dem Neustart des Rechners:

firstwslboot

Falls WSL nicht gestartet werden kann, dann liegt das zumeist am nicht vorhandenen VT-x (Virtualisierungsunterstützung der CPU; muss im BIOS aktiviert sein!)

Das „nackte“ Ubuntu ist installiert. Man muss noch einige, weitere Pakete für die Entwicklung mit Delphi installieren:

Das ist notwendig für die grundlegende Installation von Entwicklungspaketen, die Delphi für den Import des SDKs benötigt

Das sind die Pakete für die GUI Entwicklung mit FMXLinux (was wir nachher benutzen wollen; nicht in der Trial möglich!)

Beide Befehle sind nacheinander (oder auch kombiniert) auszuführen und brauchen einige Zeit. Die Auswahl ist mit „Y“ zu bestätigen.

Ubuntu ist bereit. Jetzt brauchen wir noch den PAServer, den wir uns gleich mit wget holen und auspacken (hier PAServer von RAD Studio 11.3):

PAServer Start noch bestätigen:

paserver 2

Installation von RAD Studio 11 / Delphi 11

Hier habe ich mich für eine Testversion/Trial von Delphi entschieden (siehe oben: FMXLinux/GUI-Entwicklung nicht in der Trial!). Geht natürlich auch mit einer Vollversion bzw dem RAD Studio und den möglichen Kombinationen daraus. Es muss sich halt um (mindestens) ein Delphi 11 handeln.

Die Installation muss mit Linux Unterstützung/Delphi minimal installiert werden. Mehr geht natürlich auch:

Trial / Vollprodukt -> FMXLinux nur mit der Vollversion möglich!

linuxminimal

nontrialplatform

Auf der Optionen Seite nur „deutsches Sprachpaket“ und „Fonts“ ausgewählt. Sonst nichts für die minimale Installation. Mehr kann man natürlich immer installieren. „Delphi Windows“, iOS, Android, …… ich wollte es nur sehr minimalistisch halten 🙂

installend

Installation von FMX Linux innerhalb der IDE / Delphi 11 (nur bei Vollversion möglich / nicht bei der Test/Trialversion)

Die IDE wird gestartet („Mit der Arbeit beginnen“) und man muss jetzt noch FMXLinux installieren. Nachdem man die IDE konfiguriert hat (Helles / dunkle Thema) findet man unter Tools | GetIt-Paket-Manager…..

Suchen nach „FMXLinux“ und installieren:

fmxlinux 2

Import des SDKs (Trial und Vollversion)

Nach dem Start der IDE und bevor man für Linux entwicklen kann, muss man das SDK von der Linux Seite importieren. Dazu folgende Schritte

  • Verbindungsprofil-Manager aufrufen (Tools | Optionen -> Bereitstellung -> Verbindungsprofil-Manager)
  • „Hinzufügen“ -> <Profilname beliebig> / Plattform: Linux 64Bit
  • Remote-Computer: localhost
    (Das klingt komisch, ist aber so. Funktioniert aber nur, wenn der PAServer in der WSL2 Umgebung gestartet ist; siehe oben!)
  • Fertig stellen

Dann anschliessend das SDK importieren:

  • Im Tools | Optionen Dialog (ist noch geöffnet): Bereitstellung -> SDK-Manager
  • „Hinzufügen“ -> Plattform: Linux 64 Bit / Profil: <Name von oben> / SDK Version (vorausgewählt „Ubuntu 20.04 LTS“)
  • OK

Das dauert jetzt einige Zeit. Währenddessen kommt die Meldung, daß einige Dateien überschrieben werden können bzw müssen: „Alle Ja“. Das importierte SDK belegt ca 1,2 GByte(!) auf der Platte unter „C:UsersMEDocumentsEmbarcaderoStudioSDKsubuntu20.04.sdk“ (oder analog / Benutzernamen)

„Speichern“ zum Schluss im Optionen Dialog nicht vergessen…..

sdkimport

Kommandozeilenprogramm „Hello World“ (Trial und Vollversion).

Nach dem Import des SDKs kann man jetzt Kommandozeilenprogramm (oder Webserver-Erweiterungen, DataSnap, RAD Server Module, etc) erstellen:

  • Datei -> Neu -> Konsolenanwendung – Delphi
  • Zielplattform hinzufügen (rechte Maustaste auf den Zielplattformen): Linux 64 Bit
    linuxplatform
  • Im ToDo Bereich der Konsolenanwendung
  • Starten (ohne Debug)

Ausgabe im WSL2:

helloworld

GUI Anwendungen mit WSL2 und Delphi (nur Vollversion Delphi)

Erstellt man eine FMX Anwendung, dann geht das auch 🙂

Beim erstmaligem Start einer GUI Anwendung auf WSL2 dauert das (bei mir) so ca 30 Sekunden!!! Nachfolgende Starts des gleichen Projektes, wie auch weiterer, anderer Projekt geht dann innerhalb einer Sekunde (nach Compile/Link).

  • Datei -> Neu -> Geräteübergreifende Anwendung – Delphi
  • Zielplattform auswählen (Linux 64 Bit)
  • Starten

fmxlinuxgui

 

Bemerkung zum Debuggen

Wir sind auf ein älteres Python (3.6) angewiesen; ein Link (ln) hilft

Erstellt einen Link names libpython3.6m.so.1.0 auf die vorhandene libpython3.8.so.1

Siehe auch

https://docwiki.embarcadero.com/RADStudio/Alexandria/de/Anwendungsentwicklung_für_Linux
https://docwiki.embarcadero.com/RADStudio/Alexandria/de/Linux-Konsolenanwendung_%22Hello_World%22_erstellen


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Kommentieren

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

IN THE ARTICLES