Il y a un intérêt à changer les choix de Debian pour tout ton système, pas d'intérêt d'avoir 3 fois la même version d'une librairie.
Peut-être que pour toi ça n'a pas d'intérêt mais perso j'utilise cette fonctionnalité tous les jours.
Toute la question est la définition de même version. Comme je demandais, est-ce que, considérant toutes les autres options exactement les mêmes,libfoo-1.2.3 compilée avec GCC 7 est-elle la même version que celle compilée avec GCC 8 ?
D'ailleurs, je pense que NixOS ne permet pas directement ce que tu indiques : 3 compilations différentes d'une même version de libraire pour 3 logiciels consommateurs différents.
Ceci est vrai dans une certaine mesure. Je ne connais pas Nix mais Guix définit différents inputs et il est facile de changer les explicit inputs, en utilisant les transformations de build.
En revanche, dans Guix il n'est pas facile de ré-écrire les implicit inputs.
Disons pour schématiser, libfoo-1.2.3 dépend de bax (explicit) et bar (explicit) puis bar dépend de baz (implicit) puis baz dépend de baf (implicit) qui dépend de bax (implicit).
Il est facile de changer comment libfoo-1.2.3 est compilée.
Il est facile de changer la version ou même la bibliothèque bar elle-même, par exemple guix build foo --with-inputs=bar=café.
Mais, guix build foo --with-inputs=bax=pax ne changera pas comme baf a été compilé et n'utilisera pas pax à la place de bax dans la compilation de baf. Il faut ré-écrire "manuellement" un nouveau paquet de baf disons giffle avec la dépendance à pax, ré-écrire un nouveau paquet baz disons taz et aussi un nouveau bar disons troquet.
Bref, tout est possible et tout dépend de ce que l'on appelle même et différent. Le gros avantage, c'est que Guix donne les outils pour manipuler le graphe des dépendances et surtout détecter que l'on fait bien les choses que l'on veut faire. :-)
[^] # Re: Mal connaître sa distribution
Posté par zimoun . En réponse à la dépêche Guix : un outil pour les remplacer tous. Évalué à 3.
Toute la question est la définition de même version. Comme je demandais, est-ce que, considérant toutes les autres options exactement les mêmes,
libfoo-1.2.3compilée avec GCC 7 est-elle la même version que celle compilée avec GCC 8 ?Ceci est vrai dans une certaine mesure. Je ne connais pas Nix mais Guix définit différents
inputset il est facile de changer les explicit inputs, en utilisant les transformations debuild.En revanche, dans Guix il n'est pas facile de ré-écrire les implicit inputs.
Disons pour schématiser,
libfoo-1.2.3dépend debax(explicit) etbar(explicit) puisbardépend debaz(implicit) puisbazdépend debaf(implicit) qui dépend debax(implicit).Il est facile de changer comment
libfoo-1.2.3est compilée.Il est facile de changer la version ou même la bibliothèque
barelle-même, par exempleguix build foo --with-inputs=bar=café.Mais,
guix build foo --with-inputs=bax=paxne changera pas commebafa été compilé et n'utilisera paspaxà la place debaxdans la compilation debaf. Il faut ré-écrire "manuellement" un nouveau paquet debafdisonsgiffleavec la dépendance àpax, ré-écrire un nouveau paquetbazdisonstazet aussi un nouveaubardisonstroquet.Bref, tout est possible et tout dépend de ce que l'on appelle même et différent. Le gros avantage, c'est que Guix donne les outils pour manipuler le graphe des dépendances et surtout détecter que l'on fait bien les choses que l'on veut faire. :-)