URL: https://linuxfr.org/users/mzf/journaux/comment-distribuer-un-logiciel-pour-gnu-linux Title: Comment distribuer un logiciel pour GNU/Linux ? Authors: mzf Date: 2016年10月05日T09:14:55+02:00 License: CC By-SA Tags: distribution, vst, sdk, packaging, linus_torvalds, debian et flatpak Score: 30 Bonjour, Je souhaite distribuer un de mes [projets](https://vst-preset-generator.org) pour la plateforme GNU/Linux. Le logiciel compile et s’exécute parfaitement sur Debian testing. La seule dépendance nécessaire est [Qt5](https://www.qt.io/) en plus de la bibliothèque standard. Après quelques recherches je suis tombé sur plusieurs options possibles : - livrer le code source - générer des paquets de distributions (deb, rpm, etc.) - créer une application portable (AppImage, Flatpack, etc.) J’explique ci-dessous les avantages et inconvénients de chacune des solutions pour mon projet. # Livrer le code source. Facile, on crée une archive des sources avec des instructions pour construire le logiciel et hop c’est fait. Dans mon cas, le logiciel a besoin du [SDK VST](http://www.steinberg.net/en/company/developers.html) de Steinberg qui ne peut pas être redistribué par un tiers. Donc les potentiels candidats doivent se le procurer. Une alternative est l’utilisation de [VeSTige](https://lmms.io/wiki/index.php?title=VeSTige) ([aeffectx.h](https://github.com/LMMS/lmms/blob/master/include/aeffectx.h)) créé par [LMMS](https://lmms.io/), mais je ne l’ai pas encore testé. # Générer des paquets de distributions Dans cette solution il est question de générer pour chaque distribution un paquet avec des binaires et des spécifications pour les dépendances requises. Il me semble que cela demande un travail énorme pour rentrer officiellement dans les dépôts des distributions (en tout cas pour Debian). De plus il va falloir avoir les différentes distributions installées pour tester les déploiements. L’idéal serait d’avoir des gens pour le faire à ma place, mais vu le faible public de mon projet je ne mise pas dessus pour l’instant (même si [certains](https://mediaarea.net/fr/MediaInfo/Download) s’en sortent bien apparemment). De plus il se pose aussi le même problème d’utilisation du SDK VST de Steinberg que pour la solution précédente. # Créer une application portable Une application portable est un binaire statique qui empaquette le logiciel et ses dépendances. Cela permet d’être indépendant de l’environnement dans lequel est exécuté l’application. J’utilise un système similaire pour la version Windows (compilation en statique) et cela permet de faire tourner la version 32 bit et 64 bit du logiciel en parallèle. Même si l’exécutable grossit considérablement, cela reste acceptable dans mon cas. Il en existe apparemment un grand nombre : - [AppImage](http://appimage.org/), recommandé par Linus Torvald - [Guix](https://www.gnu.org/software/guix/), soutenu par le projet GNU - [Snap](http://snapcraft.io/) - [CDE](http://www.pgbovine.net/cde.html) - [flatpak](http://flatpak.org/), très en vogue en ce moment # Conclusion et questions Actuellement j’ai laissé de côté la génération des paquets. J’ai peur que ce soit trop chronophage sans garantie de résultat. La livraison des sources est trivial, et donc je vais me pencher sur les applications portables. Mais quel format choisir ? Pour ceux qui ont déjà été confrontés au problème de distribuer un logiciel sous GNU/Linux, qu’en pensez vous ? Merci