• [^] # Re: Dépendances

    Posté par . En réponse au journal Nouvelle machine, ubuntu live, debian.. Évalué à 3.

    On me corrigera si je me trompe, mais de ce que j'ai cru comprendre à l'usage :

    Un meta-paquet est un paquet qui dépend de plein d'autres, et qui n'installe aucun fichier de lui même. Il sert à installer une collection de paquet sans s'embêter (par exemple, tout Gnome d'un coup).

    Un paquet virtuel sert à gérer les paquets qui fournissent la même chose. J'ai pas d'explication simple, mais un exemple devrait bien parler (J'ai plus de Debian sous la main, par contre... Donc, je ne donnerais pas de vrais noms de paquets) : on prend un programme qui a besoin du Java Development Kit. Sur Debian, il y a deux paquets qui le fournissent : le paquet totalement libre (« Open JDK »), et le paquet qui vient de Sun (« Sun JDK », peut-être devenu « Oracle JDK » ?), si on a activé les dépôts qui le contiennent. Pour ne pas forcer l'usage d'une solution, on crée un paquet virtuel, « JDK », et dans les paquets « Sun JDK » et « Open JDK », on indique qu'ils fournissent « JDK ». Ensuite, quand un programme a besoin de « JDK », ça ne fait ni chaud ni froid au gestionnaire de dépendance que « Sun JDK » soit installé et pas « Open JDK ». Tant qu'il y en a un. Si rien n'est installé, il me semble qu'il en choisit un par défaut, je ne sais pas selon quels critères, mais on peut toujours le remplacer après (Installer l'autre, résoudre le conflit en désinstallant le premier... C'est assez facile avec Aptitude). Après, certains paquets ne fonctionnent qu'avec « Sun JDK », et dans ce cas, ils ne listent pas « JDK » dans leurs dépendances, mais « Sun JDK », et on n'a plus le choix. Bref, un paquet virtuel permet d'avoir deux paquets qui fournissent la même chose, et de laisser le choix de celui qu'on installe.

    D'un certain côté, le meta-paquet et le paquets virtuel sont situés à l'opposé dans la chaîne de dépendance. L'un dépend de plein de trucs, l'autre est une dépendance fournie par plusieurs trucs. (Bon, c'est pas une véritable opposition... On pourrait créer un paquet virtuel « Environnement de bureau » qui serait fournit par les meta-paquets « Gnome » ou « KDE » ou « Xfce », mais ça devient vicieux...)

    J'espère que mon explication est compréhensible, et surtout, qu'elle est correcte.

    Dans le cas contraire, n'hésitez pas à me corriger.