hola,
es kommt im Prinzip bloß darauf an, welche Anforderungen des Programmes an die Umgebung bestehen.
Meist können simple Programme, ohne Einbindung irgendwelcher Bibliotheken so gut wie überall laufen, ein einfaches Beispiel ist hierfür die Ausgabe von “Hello World” - wenn Du aber ewig viele fremde Bibliotheken (libraries, .h-Dateien/header, usw. die Du nicht selbst geschrieben hast) einbindest, dann wird es unter Umständen etwas schwierig.
Generell bieten bekannte Linux-Distributionen (auf denen sowieso die meisten aufbauen) nach der LSB gewisse Bibliotheken schon bei jeder, auch meist minimalen, Installation. Somit reicht es eigentlich, wenn Du Deine bloß 1x für Ms Windows, 1x für Apple iOS und 1x für Linux zur Verfügung stellst.
Solltest Du viele Abhängigkeiten bzw. Bibliotheken benutzen, so hast Du unter Linux sogar den Vorteil, dass Du es als Softwarepaket schnüren kannst, das dann diese Abhängigkeiten bei der Installation fordert - so ziemlich alle gängigen Varianten installieren dies dann automatisch mit. Zum Beispiel wenn Du MySQL-Verbindungen brauchst kannst Du zB. libmysql voraussetzen und schon installieren Dir gängige Linuxdistributionen dies mit.
Verwendest Du idealerweise nichts fremdes, so wird Deine Software wahrscheinlich unter jeder Distribution problemlos funktionieren.
Generell haben sowieso alle gängigen einen ähnlich gestalteten Umfang an Software im Bezug auf wichtige Kernbereiche. Notfalls kannst Du ja auch eine Art “Requirements”-Liste beim Download Deiner Software anbieten, wo zB. steht, dass KDE, libSDL, usw. … als Voraussetzung gegeben ist. Wer so etwas dann nicht hat, kanns halt dann zusätzlich installieren.
Du kannst zB. auch unter Ms Windows nicht irgend etwas mit .net-Technik installieren, wenn die .net-Framework nicht installiert ist. Das ist ein fettes Paket dessen Installation schon mal dauern kann, da ist es ähnlich. Meist brauchts dann auch irgendwelche DLL-Dateien, …usw, das muss man sich dann als User alles selber besorgen und einrichten. Da finde ich das Paket-Schnüren unter Linux sogar richtig einfach - denn dann erledigt die Linux-Distribution dies und den ganzen Rest meist vollautomatisch.
ciao