Laufen Terminal Programme auf allen Linux Distros wenn man sie von einer compiled?

3 Antworten

Hallo

Wenn ich also das Terminal Programm kompiliere, läuft es dann auf allen Linux Distributionen?

Das kann man pauschal nicht sagen weil es logischerweise auch davon abhängt ob alle Abhängigkeiten und Pfade die Du darin benutzt auf der Zieldistribution ebenso vorhanden sind. Selbst wenn die Bibliotheken auf die Du zugreifst dort im selben Pfad liegen kann es aber sein das die Versionen sich unterscheiden.

Wenn Du ein Flatpak Paket schnürst UND die Zieldistribution dieses auch unterstützt kannst Du vielen Fettnäpfchen aus dem Weg gehen weil Du die benötigten Abhängigkeiten selbst mit auf das System bringst.

Je näher Du POSIX-konform programmierst stehen die Chancen auf jeden Fall höher.

Linuxhase

nein, das Executable hat Abhängigkeiten zu verschiedenen anderen Libraries, und die müssen zur Laufzeit vorhanden sein.

Wenn man einfach nur baut, dann wird es nur auf der Distri-Familie laufen, mit der man gebaut hat. Und auch dazu muss man sich dann um die ganzen Dependencies kümmern.

Mit etwas Mühe bekommt man Binaries hin, die -- wenn alle Deps da sind -- dann auf verschiedenen Distris laufen. Das nutzt z.B. Mozilla für die firefox und thunderbird-Builds. Für C/C++ Builds gibt es enstprechende Werkzeuge, z.B. das hier:

https://phusion.github.io/holy-build-box/

C# / Mono ist natürlich ein Exot unter Linux, das wird dann zusätzlichen Aufwand verursachen.

Grundsätzlich: Jein.

Sofern alle Abhängigkeiten (inkl. passende Versionsnummer der Bibliotheken, etc.) vorhanden sind und im Fall von Maschinencode die Prozessorarchitektur stimmt (ARM-Binaries auf x86_64 ist nicht so ohne weiteres machbar; ggf. mit qemu-arm) und eventuelle hardcodierte Pfade vorhanden sind bzw. erstellt werden können geht das ganze aber ohne Probleme.