Je prévois d'écrire une application que j'aimerais pouvoir exécuter sur n'importe quelle installation Linux sans avoir à réécrire le code en le faisant (sauf peut-être l'interface, GNOME vs KDE, etc.).
Je ne suis pas très expérimenté dans la minutie des différences entre les distributions, et je ne peux pas non plus fournir de détails sur le projet car il vient tout juste d'entrer dans la phase de planification, sauf qu'il va fouiller profondément à l'intérieur du noyau afin d'interagir avec autant de matériel informatique que possible.
Réponses:
Quelques points à garder à l'esprit lors du développement,
bibliothèque decodage en durpkg-config
plutôt des outils comme pour trouver les packages externes.wxWidgets
que ceux qui peuvent rendre des éléments d'interface utilisateur natifs en fonction de l'endroit où vous exécutez.La seule façon de vous assurer que votre application fonctionne sur toutes les distributions est de l'exécuter et de la tester. Pour cela, vous pouvez créer des machines virtuelles pour chaque distribution. VirtualBox peut être utilisé pour ce faire. J'ai environ 8 machines virtuelles sur ma boîte pour ce type de test.
Je pense que vous ne pouvez pas trop généraliser sur le déploiement de l'application car chaque distribution utilise une manière différente d'installer les packages. Debian utilise
deb
et fedorarpm
.la source
Juste mon 2c, mais j'ai eu moins de maux de tête avec des applications qui viennent avec des packages dans les dépôts officiels ou qui sont compilées à partir des sources. Les applications distribuées en tant que binaires tiers ont tendance à souffrir de certains problèmes de dépendance. J'ai généralement besoin de les retrouver et de les résoudre manuellement.
Donc, si je devais publier une application Linux, je travaillerais soit pour l'empaqueter et la mettre dans les dépôts officiels. Sinon, je le distribuerais sous forme source et demanderais à l'utilisateur de le compiler pour leur système.
la source
Si vous écrivez pour Linux non intégré, la principale chose à garder à l'esprit est que les différentes distributions auront une collection différente de versions de bibliothèque. Vous devez donc définir une ligne de base suffisamment ancienne. Comme Debian se met à jour lentement, Debian stable (ou oldstable quand elle existe, dans les quelques mois après une publication) a tendance à être un choix raisonnable.
Vous devrez emballer séparément pour chaque distribution. Si votre application est open source et réussit, vous pouvez compter sur quelqu'un pour la récupérer et contribuer à l'emballage, ce n'est donc pas une compétence essentielle. À part le conditionnement, les différences entre les distributions affectent principalement l'administration du système et non le développement ou l'utilisation quotidienne.
Si vous allez patcher le noyau, vous devrez tester avec plus de distributions car chaque distribution a ses propres correctifs qui pourraient provoquer des incompatibilités et chaque distribution a des paramètres de zone utilisateur qui peuvent dépendre de différents ensembles d'interfaces du noyau disponibles (par exemple, les exigences pour certaines choses ne pas être des modules).
Notez que ce que j'ai écrit ci-dessus n'est pas vrai si vous voulez que votre application fonctionne sur des systèmes embarqués (ce qui signifie ici tout ce qui n'est pas un serveur, un ordinateur de bureau ou un ordinateur portable), qui même lorsqu'ils exécutent un noyau Linux n'ont souvent pas les bibliothèques habituelles, en commençant par Glibc étant évité en faveur de µClibc , dietlibc , Bionic , etc.
la source
J'ai trouvé
Linux Standards Base
cela utile, surtout lorsque votre application inclut des services (démons). Voir certains de ces sites:Mais si je devais être limité à la seule ressource, ce pourrait être la norme de hiérarchie des fichiers .
la source
Les discothèques diffèrent principalement par les configurations / défauts de configuration et d'application. Chaque code qui s'exécute dans une architecture déterminée doit s'exécuter sur chaque distribution de cette architecture. Vous pouvez également exécuter facilement des applications GNOME dans KDE et vice-versa, vous pouvez donc choisir celle qui vous convient le mieux / votre base d'utilisateurs et vous avez terminé!
la source
L'essentiel est de choisir une langue. Dans quelle langue cela sera-t-il exécuté? Si vous voulez vraiment tourner sur n'importe quelle distribution Linux, vous pouvez l'écrire en Python. Toute application python qui s'exécutera sur linux s'exécutera (essentiellement) sur n'importe quelle distribution linux avec 0 modifications.
Python a également de très bons classeurs GTK et Qt. Je n'ai jamais travaillé avec gtk, mais PyQt est vraiment génial de travailler avec.
Les avantages de python sont que vous n'aurez probablement pas besoin de compiler d'extensions (cela dépend totalement de ce que vous écrivez cependant. Même si vous en avez besoin, c'est assez facile.) Et vous avez également une excellente source de distribution via pypi . L'installation de programmes python à partir de là est généralement encore plus facile que le référentiel de packages distro.
la source