Boehrsi.de - IT und Gaming Blog

Dart - Linux Binaries unter Windows erstellen

Erstellt am event Uhr von account_circle Boehrsi in label Development
Dart - Linux Binaries unter Windows erstellen Bild

Im Rahmen meines BoehrsiTweetHub Projekts stolperte ich über das Problem, dass unter Windows gebaute Dart Binaries nicht unter Linux ausgeführt werden können. Diese Problematik ist auch auf GitHub als Issue open_in_new festgehalten und ich finde es spannend das ich darüber nicht schon viel früher gestolpert bin. Doch glücklicherweise war es trotz dessen durchaus einfach die gewünschte Binary zu erzeugen. Einen kleinen Guide findet ihr im unteren Teil der News. Sofern ihr Fragen, Ergänzungen oder ähnliches habt, meldet euch gerne in den Kommentaren.

1. Windows Subsystem for Linux (WSL) Installation

Mittlerweile ist es zum Glück sehr einfach ein Linux unter Windows nutzen zu können. WSL bietet die Möglichkeit mit nur wenigen Befehlen eine vollwertige Linux Umgebung zu erzeugen. Öffnet eure Powershell im Administrator Modus und gebt folgenden Befehl ein.

wsl --install

Diese Eingabe startet die Installation, bittet abschließend um einen Neustart und führt euch nach selbigem durch ein minimales Setup, in welchem ein Nutzeraccount erstellt wird. Schon habt ihr ein Linux, in diesem Fall Ubuntu, installiert und es kann weitergehen.
Nicht nötig aber empfehlenswert ist es nach dem ersten Start das System auf den neusten Stand zu bringen. Gebt dafür folgendes in eurem Ubuntu ein.

sudo apt-get update
sudo apt-get upgrade

Gestartet werden kann Ubuntu nun einfach über das Startmenü. Gebt dort einfach Ubuntu ein und startet das System wie jedes normale Programm.

Quelle und weitere Informationen via microsoft.com open_in_new

2. Dart Installation unter Linux

Da es unser Ziel ist Dart Code unter Linux zu kompilieren, ist es natürlich nötig das Dart SDK unter Linux zu installieren. Dafür installiert zunächst das apt-transport-https Package und fügt Googles Signing Key hinzu. Folgende Eingaben in eurem Ubuntu führen diese Schritte aus.

 sudo apt-get update
 sudo apt-get install apt-transport-https
 wget -qO- https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor -o /usr/share/keyrings/dart.gpg
 echo 'deb [signed-by=/usr/share/keyrings/dart.gpg arch=amd64] https://storage.googleapis.com/download.dartlang.org/linux/debian stable main' | sudo tee /etc/apt/sources.list.d/dart_stable.list

Anschließend kann Dart via apt installiert werden.

sudo apt-get update
sudo apt-get install dart

Um zu überprüfen ob alles funktioniert hat führt Dart zum ersten Mal aus und prüft die installierte Version.

dart –version

Quelle und weitere Informationen via dart.dev open_in_new

3. Programm kompilieren

Navigiert in den Ordner in welchem sich euer Projekt befindet. Ihr müsst nichts einbinden oder erneut herunterladen, denn euer Ubuntu kann auf die Windows Ordner zugreifen. Gebt folgenden Befehl in eurem Ubuntu ein und folgt von dort aus eurer aus Windows bekannten Ordnerstruktur. Im mnt Ordner findet ihr eure Laufwerke und darin entsprechend alle weiteren Unterordner.

cd /mnt

Sobald ihr im Ordner angekommen seid sorgt dafür das alle Abhängigkeiten vorhanden sind, indem ihr selbige herunterladet. Führt dafür folgenden Befehl aus.

dart pub get

Nun ist es soweit und ihr könnt eure Binary für Linux erstellen. Folgender Befehl führt dies aus. Lasst euch dabei nicht vom Befehl exe verwirren, selbiger sagt lediglich aus das eine ausführbare Datei erstellen werden soll und hat nicht direkt etwas mit der Windows Dateiendung .exe zu tun.

dart compile exe main.dart -o boehrsiTweetHub

Der erste Parameter hinter exe ist die Quelldatei eures Dart Codes, meist also die main.dart und der -o Parameter mit dem folgenden String definiert den Namen der erzeugten Binary Datei. Während unter Windows hier .exe erwartet wird, ist unter Linux keine Dateiendung zu setzen.

Mit diesen wenigen Schritten ist es möglich eine Binary für Linux unter Windows zu bauen. Für mich war dies relevant, weil ich auf meinem Linux Server kein Dart SDK benötigte und entsprechend auch nicht installieren möchte. Entwickeln tue ich allerdings unter Windows und somit war es hier nötig diese Betriebssystemgrenze zu überbrücken. Dankenswerterweise war dies mit dem WSL und wenigen zusätzlichen Schritten möglich, sodass ich auf externe Tools und ähnliche Abhängigkeiten verzichten konnte.

Kommentare  
Kommentar erstellen
Mit dem Abschicken des Kommentars erklären sie sich mit der in der Datenschutzerklärung dargelegten Datenerhebung für Kommentare einverstanden. Spam, unangebrachte Werbung und andere unerwünschte Inhalte werden entfernt. Das Abonnieren via E-Mail ist nur für E-Mail Adressen erlaubt die Sie rechtmäßig administrieren. Widerrechtliche Abonnements werden entfernt.