Linux Deployment

Dein Thema passt einfach in kein Forum? Dann probiers mal hier.
Antworten
MBex
Beiträge: 17
Registriert: 24. November 2007 11:36

Linux Deployment

Beitrag von MBex »

Hallo zusammen,

aktuell mache ich mir Gedanken darüber, wie ich meine neue Anwendung Linux-Usern zur Verfügung stelle.

Kurz vorweg, ich habe zwar schon öfters mit Linux gearbeitet, jedoch bin ich ein blutiger Anfänger wenn es darum geht für Linux zu entwickeln.

Die Anwendung benötigt zwingen eine Qt Version >= 4.7.2 und der Quelltext kann aus unterschiedlichen Gründen aktuell nicht veröffentlicht werden.

Den Tutorials und verschiedenen Foren nach habe ich folgende Möglichkeiten, wenn ich meine Anwendung nach Linux Deployen möchte:

- Static-Linken und einfach zum Download bereitstellen
Dies hört sich für mich zunächst am einfachsten an und würde theoretisch meinen Anforderungen genügen.

Jedoch habe ich noch eine wahrscheinlich total dumme Frage. Wenn ich z.B. unter Ubuntu 10.10 meine Anwendung kompilieren, kann diese dann einfach z.B. nach openSuse kopiert und ebenso ausgeführt werden? (Vorausgesetzt die Abhängigkeiten sind vorhanden)

Bin gerade dabei zum Testen openSuse herunterzuladen, jedoch dauert dies wohl noch eine weile.

- Dynamisch-Linken und über ein Installations-Skript Qt auf dem Zielrechner installieren und per Start-Skript der Anwendung die Pfade zur Qt-Version bekanntgeben
- Ein Paket für die unterschiedlichen Distributionen bauen
- Den openSuse Build Service verwenden und für alle Distributionen ein Paket generieren lassen

So wie ich es aktuell verstehe funktioniert das Paket-System so, dass beim Paketbau der Quelltext angegeben wird und durch eine spec-Datei definiert ist, welche Abhängigkeiten die Anwendung benötigt und wie die Anwendung kompiliert werden muss.
Das würde für mich bedeuten, dass diese Variante entfällt, da der Source nicht öffentlich ist.
Ist das soweit korrekt?

Abgesehen davon habe ich eine Lizenz des Bitrock Installers, womit ich auch die Installationsroutine für Windows geschrieben habe. Jedoch habe ich keinerlei Vorstellung wie ich mit diesem Tool eine Anwendung mit benötigten Abhängigkeiten auf Linux installieren kann.
Wenn jemand ein Beispiel hat wäre ich sehr dankbar.

Was mich letztendlich interessiert ist wie normalerweise Proprietäre-Software unter Linux (egal welche Distribution) installiert wird. Habt ihr ggf. Empfehlungen? Möchte ungern einfach etwas zusammenbasteln, was zwar funktionieren würde, jedoch total unschön ist.

schon mal vielen Dank im Voraus,

Marco
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Linux Deployment

Beitrag von franzf »

MBex hat geschrieben:- Static-Linken und einfach zum Download bereitstellen
Dies hört sich für mich zunächst am einfachsten an und würde theoretisch meinen Anforderungen genügen.
Tut es nicht, da die LGPL (und so verwendest du Qt, da du deine Sourcen nicht freigibst) statisch Linken nicht erlaubt. Naja, fast... Die LGPL verlangt, dass die Abhängigkeit (hier: Qt4 als LGPL) ausgetauscht werden kann, z.B. bei einem Qt-Update. Das geht auch mit statisch Linken, dafür musst du aber deine Objectfiles zur Verfügung stellen. Ist aber insgesamt relativ kompliziert. Vor allem unter Linux gibt es einfachere Lösungen.
- Dynamisch-Linken und über ein Installations-Skript Qt auf dem Zielrechner installieren und per Start-Skript der Anwendung die Pfade zur Qt-Version bekanntgeben
Mach das nicht! Der große Vorteil eines Linux-Systems ist die zentrale Verwaltung von Software sowie das strikte Teilen von gemeinsamen Abhängigkeiten. So ein Chaos wie unter Windows, wo jede pupsige Anwendung seine eigenen Abhängigeiten mitbringt, und so das System immer weiter zumüllt, weil zigmal die selben libs mitanstalliert werden, geschweige denn von dem Security-Chaos, wenn in irgend einer lib ein schwerer Bug gefunden wurde, wird es nie geben.
So wie ich es aktuell verstehe funktioniert das Paket-System so, dass beim Paketbau der Quelltext angegeben wird und durch eine spec-Datei definiert ist, welche Abhängigkeiten die Anwendung benötigt und wie die Anwendung kompiliert werden muss.
Das würde für mich bedeuten, dass diese Variante entfällt, da der Source nicht öffentlich ist.
Ist das soweit korrekt?
"Das Paketsystem" gibt es nicht, da gibt es unterschiedliche. Die gängigen (auf die du dich beziehst, also rpm, deb) enthalten sehr wohl Binaries! rpm und deb sind gängige Wege, um closed-source zu verteilen - siehe z.B. das Flash-Plugin für ns-Browser.
Abgesehen davon habe ich eine Lizenz des Bitrock Installers, womit ich auch die Installationsroutine für Windows geschrieben habe. Jedoch habe ich keinerlei Vorstellung wie ich mit diesem Tool eine Anwendung mit benötigten Abhängigkeiten auf Linux installieren kann.
Wenn jemand ein Beispiel hat wäre ich sehr dankbar.
Lizenz schließt meist support ein, also frag bei denen nach, ob man mit ihrem Tool auch Installationsscripte für Linux erstellen kann - ich nehm es nicht an.
Antworten