web-dev-qa-db-fra.com

Création d'un programme d'installation pour une application Linux

Je développe une petite application multiplateforme et j'ai besoin de quelques conseils pour l'installer sous Linux. J'utilise InnoSetup sous Windows et un ensemble d'applications sous OSX mais je ne sais pas comment installer mon application sous Linux, y a-t-il des créateurs de programmes d'installation open source pour Linux?

Merci.

35
JWood

Le standard tous les puissants installateurs universellement disponibles sur les systèmes * nix (et pas seulement) est Autotools .

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

Vous pouvez également fournir des installateurs spécifiques à la distribution comme un RPM sur RedHat ou CentOS ou deb pour Debian, Ubuntu, bien qu'une fois que vous avez le Makefile craché par Autotools, ce qui en fait un jeu d'enfant.

# 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

Les outils automatiques également connus sous le nom de "système de construction GNU" sont un peu effrayants à première vue, et le nouvel utilisateur est perplexe lorsqu'il rencontre des choses comme l'ancien système macro m4 & co. Mais nota bene c'est la façon dont la plupart des gens le font et c'est assez facile une fois que vous avez compris.

Ressources d'apprentissage

18
clyfe

Si possible, optez pour ne pas avoir besoin d'un programme d'installation mais en utilisant une approche d'extraction et d'exécution simple. Cela permettra à l'utilisateur de placer le ou les fichiers où il le souhaite et de l'exécuter.

Mais, vous avez d'autres options, telles que:

  1. En utilisant autoconf ,
  2. En utilisant CMake ,
  3. Utilisation d'un programme d'installation Java comme IZPack
  4. etc
2
Kaleb Pederson

Jetez un oeil à InstallJammer . Vous pouvez écrire un seul projet pour votre programme d'installation Windows et Linux, et le support Mac arrive très bientôt.

2
Damon

Écrivez un makefile vraiment robuste! ou utilisez CMake

1
Hortinstein

J'ai commencé à écrire nistall pour les situations où vous deviez installer des packages binaires sur une variété de distributions.

Il essaie de faire quelques choses:

  • Réalisez le type de système d'exploitation et le gestionnaire de packages, ce qui vous permet d'utiliser le gestionnaire de packages système pour extraire toutes les dépendances dont votre programme pourrait avoir besoin. Par exemple, il saura utiliser apt-get install libncurses5-dev si vous utilisez debian/ubuntu, yum install libncurses-devel si vous utilisez RHEL/Fedora/CentOS
  • Comprendre le mécanisme utilisé pour mettre à jour init, si nécessaire
  • Créer un désinstallateur sûr
  • Travailler sur n'importe quel shell (bash, dash, zsh, pdksh, busybox ash, etc.)

Je laisse le dépôt en place car il est plein de bits utiles, mais j'ai rapidement abandonné l'idée d'un install sheild programme de type pour les distributions Linux. Vous constaterez que c'est beaucoup, beaucoup mieux de produire des packages installables pour les formats .deb, .rpm et (éventuellement) slackware .tgz.

Cela peut être intégré dans votre système de construction en utilisant un outil comme checkinstall . Remarque, les paquets générés par checkinstall ne sont pas toujours parfaits, selon les directives strictes sur les peluches établies par Debian et d'autres, cependant les paquets fonctionnent très bien.

La meilleure expérience d'installation que vous puissiez offrir à un utilisateur est de lui permettre d'installer (et de mettre à jour) votre logiciel à l'aide de son gestionnaire de packages natif.

1
Tim Post