web-dev-qa-db-fra.com

Nouveau package vs nouvelle version?

Dans la question Qu'est-ce que "dist-upgrade" et pourquoi est-il mis à niveau plus que "upgrade"? le réponse acceptée explique que linux-headers-3.0.0-13 est un nouveau package remplaçant linux-headers-3.0.0-12.

Comment est-ce un nouveau package et pas simplement une nouvelle version, et comment connaître (reconnaître) la différence?

De plus, pourquoi linux-headers-3.0.0-13 répertorié dans la sortie de la commande Sudo apt-get upgrade s'il s'agit d'un nouveau package et non d'une nouvelle version d'un package déjà installé?

La réponse fait allusion à l'argument selon lequel c'est parce que linux-headers-3.0.0-12 et linux-headers-3.0.0-13 sont connectés à le même paquet virtuel ("linux-headers est un package virtuel fourni par les deux linux-headers-3.0.0-12 et linux-headers-3.0.0-13 "). Est-ce pour cette raison que linux-headers-3.0.0-13 est listé? Et si oui, pourquoi ne voyons-nous pas d'autres packages fournis par d'autres packages virtuels suggérés comme des mises à niveau?

ÉDITER:

Bien que l'exemple ci-dessus concerne les packages du noyau, ma question n'est pas orientée noyau mais plus générale; ou est-il uniquement pertinent pour le noyau?

4
The Quark

La raison d'avoir des méta-packages du noyau comme linux-image-generic et linux-headers-generic pointer vers de vrais paquets du noyau, c'est permettre d'avoir plus d'une instance d'un noyau.

Vous pouvez avoir linux-headers-3.0.0-13-generic et linux-headers-3.0.0-12-generic installé en même temps.

Lorsque vous mettez à niveau meta linux-headers-generic, il extrait le dernier package réel en tant que dépendance. Si nous avions ces paquets de noyau comme un seul avec des versions différentes, il serait toujours remplacé.

apt-get upgrade n'installe pas de nouveaux packages

 upgrade
           upgrade is used to install the newest versions of all packages
           currently installed on the system from the sources enumerated in
           /etc/apt/sources.list. Packages currently installed with new
           versions available are retrieved and upgraded; under no
           circumstances are currently installed packages removed, or packages
           not already installed retrieved and installed. New versions of
           currently installed packages that cannot be upgraded without
           changing the install status of another package will be left at
           their current version. An update must be performed first so that
           apt-get knows that new versions of packages are available.

C'est pourquoi il ne met pas à niveau les méta-packages qui dépendent de nouveaux packages.

Ce n'est pas lié au noyau. Il y a d'autres exemples.

5
Pilot6

Comment est-ce un nouveau package et pas simplement une nouvelle version, et comment connaître (reconnaître) la différence?

Différents packages ont des noms différents. Différentes versions du même package ont le même nom de package et différents numéros de version. Vous pouvez voir vos packages installés et leurs numéros de version avec, par exemple, apt list --installed:

firas@itsuki ~ % apt list --installed | grep linux-image
linux-image-4.18.0-14-generic/cosmic-updates,cosmic-security,now 4.18.0-14.15 AMD64 [installed,automatic]
linux-image-4.18.0-15-generic/cosmic-updates,cosmic-security,now 4.18.0-15.16 AMD64 [installed,automatic]
linux-image-generic/cosmic-updates,cosmic-security,now 4.18.0.15.16 AMD64 [installed,automatic]

Ici, j'ai trois packages installés dont les noms contiennent linux-image: linux-image-4.18.0-14-generic version 4.18.0-14.15, linux-image-4.18.0-15-generic version 4.18.0-15.16, et linux-image-generic version 4.18.0.15.16. En particulier, linux-image-4.18.0-14-generic et linux-image-4.18.0-15-generic sont des noms différents, donc ce sont des packages différents. Ne vous laissez pas berner par la similitude des noms, le fait est qu'ils ne sont pas les mêmes. Ils pourraient aussi bien s'appeler foo et bar.

De plus, dans les noms de fichiers de .deb packages, le nom du package et le numéro de version sont généralement séparés par des traits de soulignement:

firas@itsuki ~ % ls /home/apt/archives/linux-image-*
/home/apt/archives/linux-image-4.18.0-14-generic_4.18.0-14.15_AMD64.deb
/home/apt/archives/linux-image-4.18.0-15-generic_4.18.0-15.16_AMD64.deb
/home/apt/archives/linux-image-generic_4.18.0.15.16_AMD64.deb
4
fkraiem