Quelle est la manière préférée de publier une application binary uniquement pour plusieurs dissortingbutions Linux?

J’ai une application Linux à source fermée que je veux dissortingbuer. Cette application utilise wxWidgets / GTK, il existe donc une énorme liste de bibliothèques partagées (60+) dont cette application dépend.

Quelle est la manière préférée de publier l’application et de prendre en charge le nombre maximum de dissortingbutions?

Vous devriez jeter un oeil à la base standard de Linux . Il est conçu spécifiquement pour aider les personnes dans votre position. Il définit un environnement sur lequel les développeurs d’applications tierces peuvent compter – il existe donc une version de libc et d’autres bibliothèques, et certains programmes et répertoires vivent dans des endroits connus. Toute la dissortingbution principale de Linux prend en charge LSB.

Cela dit, vous devriez toujours probablement emballer le résultat spécifiquement pour chaque dissortingbution majeure – juste pour que vos clients puissent gérer votre application avec leurs outils de gestion de paquets familiers.

Fondamentalement, il y a deux façons. Vous pouvez choisir les deux, si vous le souhaitez.

La première façon est la façon commune de faire les jeux et autres. Créez un sous-répertoire lib /, utilisez LD_LIBARY_PATH et incluez à peu près toutes les bibliothèques partagées dont vous avez besoin. Cela garantit une expérience sans tracas à votre utilisateur, mais rend le programme d’installation plus volumineux et probablement aussi l’empreinte mémoire plus grande. Je ne tenterais même pas de réutiliser des bibliothèques préexistantes, car celles-ci auraient tendance à disparaître au fur et à mesure des mises à niveau du système.

La deuxième méthode consiste à fournir des packages de dissortingbution. Celles-ci ne sont généralement pas difficiles à réaliser et s’intègreront bien aux dissortingbutions et sembleront en outre beaucoup plus accueillantes pour vos clients. Les deux inconvénients sont les suivants: vous devrez le faire pour chaque dissortingbution (Debian, Ubuntu, SuSE, qui est probablement un bon début), et vous devrez les gérer: avec le temps, certaines bibliothèques ne seront plus disponibles. dans une version spécifique, et donc l’utilisateur aura des problèmes de dépendance.

Dans votre programme d’installation, vérifiez les bibliothèques installées, puis téléchargez les fichiers binarys pour ceux qui ne le sont pas.

Pour plus de confort pour vos utilisateurs, en l’absence de connexion à Internet, le programme d’installation doit générer une clé que vous pouvez saisir sur votre site Web pour recevoir une archive ZIP que vous pouvez ensuite envoyer à l’installateur.

Pour le plus grand confort, vérifiez quelles bibliothèques sont disponibles sur la dissortingbution cible et demandez à l’utilisateur d’utiliser l’outil d’administration standard pour les installer. De cette façon, vous ne polluez pas l’ordinateur avec différentes versions de la même bibliothèque.

Cela dit, il serait peut-être plus judicieux de mettre votre précieux code dans une bibliothèque de liens, puis de le fournir en tant que blob binary dans un paquet source. De cette façon, votre code est aussi protégé que dans un fichier binary pur et les utilisateurs peuvent comstackr le code de colle sur leur système favori sans que vous ayez à vous soucier de choses.

Je veux dire: quelle est la valeur de la partie de votre code qui définit l’interface utilisateur? Combien allez-vous perdre quand quelqu’un vole ça?