2010-03-10 12 views
32

Ich entwickle eine kleine Cross-Plattform-Anwendung und ich brauche ein paar Tipps, wie Sie es in Linux installieren. Ich verwende InnoSetup in Windows und ein Anwendungspaket in OSX, aber ich habe keine Ahnung, wie ich meine App unter Linux installieren kann. Gibt es OpenSource-Installer für Linux?Erstellen eines Installers für Linux-Anwendung

Danke.

+1

Nur aus Neugier, antworte, wenn du willst, was macht es? In was wurde es geschrieben? =) – Marcelo

Antwort

16

Die standard alle mächtig universell verfügbaren Installer auf * nix systems (und nicht nur) ist Autotools.

# the user will install like so: 
./configure --with-stuff 
make # if package is from source 
make install 

Sie auch Verteilung spezifische Installateure wie ein RPM auf RedHat oder CentOS oder deb für Debian, Ubuntu, obwohl, wenn Sie die von Autotools aufgespießt Makefile haben zur Verfügung stellen kann, diese zu machen ist ein Kinderspiel.

# the user will install like so: 
yum install your-package-1.0.rpm # on redhat or 
apt-get install your-package-1.0.deb # on debian 

Autotools auch als „das GNU Build-System“ bekannt ist ein wenig beängstigend auf den ersten Blick, und der neue Benutzer verwirrt, wenn Dinge wie die alten m4 Makrosystem & co treffen. aber nota bene das ist die Art, wie die meisten Leute es tun und ist ziemlich einfach, sobald Sie den Dreh raus.

Learning resources

+1

Schreiben Sie einfach ein sauberes 'autotools'-Setup, und lassen Sie die Vertriebsleute den Rest für ihre Bedürfnisse vorläufig herausfinden. –

+3

+1 für Autotools; Es braucht nur ein wenig Know-how, um Autotools zu verwenden. Hier ist ein Link: http://www.lrde.epita.fr/~adl/dl/autotools.pdf – rmk

+0

@rmk Ich wollte das PDF in meine Antwort einfügen, konnte es aber nicht finden. – clyfe

1

eine wirklich robuste Make-Datei schreiben! Oder verwenden Sie CMake

2

Wenn möglich, entscheiden Sie sich dafür, kein Installationsprogramm zu benötigen, sondern einen einfachen Extrakt-und-Lauf-Ansatz. Dadurch kann der Benutzer die Datei (en) beliebig platzieren und ausführen.

Aber Sie tun haben andere Optionen, wie zum Beispiel:

  1. autoconf Verwendung,
  2. CMake verwenden,
  3. Mit Hilfe eines Java-Installer wie IZPack
  4. etc
2

Nehmen ein Blick auf InstallJammer. Sie können ein einzelnes Projekt sowohl für Ihr Windows- als auch für Ihr Linux-Installationsprogramm schreiben, und die Mac-Unterstützung wird sehr bald verfügbar sein.

+0

Ich schaue mir gerade InstallJammer an, es sieht bisher sehr vielversprechend aus! Vielen Dank. – JWood

+1

Leider wurde das Projekt eingestellt 'Die aktive Entwicklung von InstallJammer wurde eingestellt. Die Quelle ist für alle Versionen verfügbar und wird dies auch bleiben, aber Ihre Bemühungen könnten besser für ein Installationsprogramm verwendet werden, das in seiner Entwicklung aktiv ist –

1

Ich begann zu schreiben unistall für Situationen, wenn Sie Binärpakete auf einer Vielzahl von Distributionen installieren mussten.

Es wird versucht, ein paar Dinge zu tun:

  • Verwirklichen Sie den OS-Typ und Paket-Manager, so dass Sie das System Paket-Manager in irgendwelchen Abhängigkeiten zu ziehen, um zu verwenden, die Ihr Programm benötigen könnten.Zum Beispiel wird es wissen apt-get install libncurses5-dev zu verwenden, wenn debian mit/ubuntu, yum install libncurses-devel bei Verwendung von RHEL/Fedora/CentOS
  • Verstehen, was Mechanismus init zu aktualisieren verwendet wird, wenn
  • einen sicheren un-installer
  • Arbeit erstellen benötigt auf jedem Shell (bash, Bindestrich, zsh, pdksh, busybox ash, etc)

ich den Repo, weil seine voll von nützlichen Bits verlassen, aber ich habe schnell auf der Idee eines install sheild Typ Programm auf für Linux-Distributionen. Sie werden feststellen, dass es sehr viel besser ist, installierbare Pakete für .deb-, .rpm- und (möglicherweise) slackware .tgz-Formate zu erstellen.

Dies kann mit einem Tool wie checkinstall in Ihr Build-System integriert werden. Beachten Sie, dass die Pakete, die checkinstall generiert, nicht immer perfekt sind, gemäß den strikten Richtlinien von Debian und anderen, aber die Pakete funktionieren gut.

Die beste Installationserfahrung, die Sie einem Benutzer bieten können, besteht darin, dass er Ihre Software mit dem nativen Paketmanager installieren (und aktualisieren) kann.

Verwandte Themen