Frage

Auf Windows-Anwendungen sind in der Regel als MSI verpackt, auf Redhat Linux als RPM, was ein bestes Open-Source-Verpackungsverfahren würde die verwendet werden könnten Anwendungen auf alle Plattformen, darunter verschiedene Varianten von Unix und Windows zu implementieren?

Inhalt würde Ex, Unix-Binärdateien, java jar-Dateien, Benutzerdaten, auch Datenbank-Skripte ausgeführt werden.

(erkenne ich Inhalt pro Ziel-OS variieren würde, dh. Binärdateien anders sein würde, exe vs Unix gewinnen binäre etc, aber zum Beispiel Konfigurationsdateien können gleich oder im Fall von Java sein, auch die Bytecode-Gläser)

Hauptmerkmal ich die Verpackung möchten unterscheidet sich von Benutzern und Berechtigungen für verschiedene Verzeichnisse zu unterstützen, aber ich erkenne diese Funktion Multi-Plattform unterstützt, kann sehr schwierig sein.

War es hilfreich?

Lösung

Ich habe einen Client, den IzPack verwendet einen einzigen Installer zu erstellen (es ist Java-basiert), die ihre Anwendung auf Windows, OS X und Linux installiert.

http://izpack.org/

Andere Tipps

Anstatt ein Paket zu erstellen, die sich über alle Ihre Plattformen arbeiten, was wahrscheinlich unmöglich ist, soll, sollten Sie Ihr Build-System für jede Zielplattform verschiedene Pakete bauen.

Mit CPack (Es kommt mit CMake ) Sie können Pakete für Windows erstellen (mit NSIS), Linux (rpm und deb) und OS X mit "Paket machen". CMake auch plattformübergreifende Gebäude vereinfachen.

Für eine Probe kann man sich avogadro CMakeLists.txt und AvoCPack.cmake

NSIS ist eine Open-Source-Lösung, die, soweit ich weiß, ist in der Lage Installateure zu bauen dass läuft unter Windows und UNIX-mag gleichermaßen. Doch für die Bereitstellung von Software unter Windows (vor allem in Unternehmensumgebungen) MSI ist der Weg zu gehen und NSIS ist eher Kopfschmerzen.

So würde ich nicht empfehlen, dass Sie versuchen, ein einzelnes Paket / installer für verschiedene Plattformen zu bauen. Sondern, wie RibaldEddie angegeben, mehrere Pakete: eine für jede Plattform. Das ermöglicht auch den Inhalt des Pakets auf die Dateien zu beschränken relevant für jede Plattform.

Wenn Sie möchten, dass Verpackungen für mehrere Distributionen unterstützen, würde ich vorschlagen, die Verpacker für diese Verteilungen aushelfen; verwenden irgendeine Art von bekannten Build-System für Ihre Software (GNU autotools oder so etwas wie scons oder waf), und dokumentieren die Build, optionale Abhängigkeiten und so weiter ziemlich gut.

Auf diese Weise, wenn ein Debian, Ubuntu, Red Hat, SuSE, was auch immer, Verpacker kommt, werden sie in der Lage sein, das Paket für Sie zu erstellen. Optional können Sie die Verpackung Vorlagen für eine oder mehr Verteilungen in einem separaten VCS Baum, der verfügbar ist, wenn Sie möchten.

Wenn Sie an Verpacken einer Closed-Source / proprietäre Anwendung für mehrere Systeme suchen, würden Sie tun wahrscheinlich am besten eine tar.gz-Datei zu verpacken und zu dokumentieren den Installationsprozess für sie. Sie werden auch sicherstellen möchten, dass der Build-Prozess jede Pfadinformationen in die Anwendung nicht einbetten verwendet, so dass es in /opt ausgeführt werden kann, /usr oder /usr/local, die einige beliebte Wahl für Drittanbieter sind Add-on Software.

BitRock Install können Sie Installationspakete für jede der Plattformen, die Sie erwähnt (sowie die Schaffung erstellen RPM, DEB, Pakete usw. aus einer einzigen Projektdatei)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top