Je suis actuellement à la recherche d'une bonne configuration pour un serveur d'intégration continue qui permettrait de construire diverses applications C++ pour plusieurs distributions Linux.Serveur d'intégration continue pour C++ - Qu'en est-il des dépendances de bibliothèque?
Ma première question est de savoir comment les autres utilisateurs ont géré les différences entre les bibliothèques système entre les distributions Linux? Bien qu'il soit relativement facile de créer des dépendances directes, telles que des bibliothèques d'interface utilisateur, avec une application, les dépendances "indirectes" telles que la glibc semblent être très pénibles si elles devaient être construites à côté de l'application à chaque fois. Je pense donc à déplacer l'exécution réelle de construction dans une machine virtuelle distincte pour chaque distribution, par ex. en utilisant rlogin pour exécuter les commandes. Mon but est d'empêcher les incompatibilités binaires entre les versions de la bibliothèque de la machine de construction et celles qui sont déployées dans les distributions cibles.
Est-ce que quelqu'un ici a une expérience avec un tel processus et pourrait dire si ce qui précède semble être une approche réalisable?
Je voudrais voir une bonne réponse à cette question. En plus de la question originale, j'aimerais savoir comment je peux compiler pour mingw sur Linux aussi (j'utilise mingw sous Windows). En outre, j'utilise le framework Qt et QTestLib pour les tests unitaires. Merci! –
Je voudrais aussi voir une bonne réponse à cette question.À mon humble avis, cela va à des problèmes de "gestion de la configuration" que chaque module "se couple" à d'autres modules, et en liant un lib, cela signifie que vous devez implicitement lier les bibliothèques up-stream. Comme cela nécessite des limitations de version-lib, ce problème se complique rapidement (par exemple, DLL-hell, ou RPM-hell). La propagation par dépendance indirecte est essentielle, dans le contexte des versions compatibles bornées. – charley