Mise à jour de système mixte (stretch/buster)

Bonjour à tous,

Je tourne sous une Debian Stretch et j’ai installé quelques packages depuis testing.

Voilà la façon dont j’ai procédé pour, par exemple, vlc :

apt-get -t testing install vlc

cat /etc/apt/sources.list :

deb http://deb.debian.org/debian stretch main contrib non-free
deb-src http://deb.debian.org/debian stretch main contrib non-free

deb http://deb.debian.org/debian buster main contrib non-free
deb-src http://deb.debian.org/debian buster main contrib non-free

deb http://deb.debian.org/debian buster-updates main contrib non-free
deb-src http://deb.debian.org/debian buster-updates main contrib non-free

deb http://security.debian.org/ buster/updates main contrib non-free
deb-src http://security.debian.org/ buster/updates main contrib non-free

cat /etc/apt/preferences.d/default-stable :

Package: *
Pin: release a=stable
Pin-Priority: 700

Je mets à jour mon système avec la commande suivante :

apt-get update && apt-get upgrade && apt-get autoremove

Et plus le temps passe, plus le nombre de packages “kept back” augmente (j’ai tronqué l’output et limité les packages à ceux liés à vlc pour réduire la longueur de la ligne) :

The following packages have been kept back :
[...] vlc vlc-bin vlc-data vlc-l10n vlc-plugin-base vlc-plugin-notify vlc-plugin-qt vlc-plugin-samba vlc-plugin-skins2 vlc-plugin-video-output vlc-plugin-video-splitter vlc-plugin-visualization [...]

Que sont ces paquets “kept back” et comment les mettre à jour avec ma configuration actuelle ?

Lorsque je tente un apt-get dist-upgrade, apt me propose effectivement d’upgrader vlc, mais dans le même temps, indique qu’il supprimerait tout un tas d’autre package “automatically installed and no longer required” (en réalité, des autres packages installés de la même manière que vlc, calibre par exemple).

La version de vlc de mon système est 2.2.6-0-g1aae78981c alors que celle de buster est 3.0.0~rc2-2.

(VLC est un exemple, le problème se produit pour une série d’autres packages)

Merci d’avance pour votre aide.

MW

Salut

man apt preferences

dit

500 <= P < 990
_ La version sera installée, sauf s’il existe une version appartenant à la distribution par défaut ou si la version installée est plus récente._

tu as donné toi même la préferences a stable mais le systeme signale que des paquets ont été gardé

pour faire le point sur les paquets installés venant de testing

apt list --installed > resul-apt-list-installed.txt

grep testing resul-apt-list-installed.txt

apt list vlc -a
En train de lister... Fait
vlc/testing,now 3.0.0~rc2-2 amd64  [installé]
vlc/stable,stable 2.2.7-1~deb9u1 amd64
vlc/oldstable 2.2.7-1~deb8u1 amd64
:~$ vlc -version
VLC media player 3.0.0-rc2 Vetinari (revision 3.0.0-rc2-4-g34986c2207)

Tu n’as pas tout dit, 2.2.6-0-g1aae78981c n’est pas de Debian

Fait une simulation pour voir ce que le système propose

apt -s install --reinstall vlc

Bonjour,

Merci pour ta réponse.

Je m’y suis peut-être mal pris. Mon objectif est d’avoir une distribution sous stable à l’exception de quelques paquets (et de leurs dépendances) tels que darktable (des paquets dont les nouvelles fonctionnalités mettent du temps à arriver dans stable). La logique que j’ai essayé de donner à apt lorsque je lui demande une upgrade c’est :

Le paquet provient-il de stable ?
    Si c'est le cas, vérifier dans stable s'il existe une mise à jour et l'appliquer.
Le paquet provient-il de testing ?
    Si c'est le cas, vérifier dans testing s'il existe une mise à jour et l'appliquer.

Quelle est la bonne manière de procéder ?

[quote=“grandtoubab, post:3, topic:75610”]pour faire le point sur les paquets installés venant de testing

apt list --installed &gt; resul-apt-list-installed.txt
grep testing resul-apt-list-installed.txt

[/quote]

Je dois faire grep "/testing" sinon ça me retourne tout le contenu du fichier car toutes les lignes ont cette forme : <package>/stable,testing,now <version> amd64 [installed(,automatic)].

C’est… surprenant. Je viens de vérifier mon bash history, c’est bien la commande plus haut que j’ai lancé pour installer vlc (pas de repo ou de config particulière). Note que vlc -v me retourne, plus précisément : VLC media player 2.2.6 Umbrella (revision 2.2.6-0-g1aae78981c).

apt list vlc -a

vlc/testing 3.0.0~rc2-2 amd64
vlc/stable 2.2.7-1~deb9u1 amd64 [upgradable from: 2.2.6-6]
vlc/now 2.2.6-6 amd64 [installed,upgradable to: 2.2.7-1~deb9u1]

En utilisant apt list package -a, j’ai identifié et réinstallé tous les packages qui étaient entre deux (ni stable, ni testing). Je n’ai plus de paquet “kept back” désormais quand je tente une mise à jour. Mon système à l’air à jour (upgrade ou dist-upgrade ne me proposent plus rien).

Note que le cas de vlc était en effet, assez particulier, parce qu’il n’était pas entre stable et testing, il était en dessous de stable :open_mouth:

Je repose la question posée plus haut, sous une autre forme : est-ce moi qui m’y suis mal pris ? y a-t-il une meilleure façon de parvenir au but que j’ai exposé ? vais-je systématiquement devoir manuellement résoudre ce genre de problème ?

C’est pas toujours facile de trouver le bon réglage avec les priorités, je te conseille de lire
https://www.debian.org/doc/manuals/debian-handbook/sect.apt-get.fr.html#sect.apt.priorities

et

man apt preferences

Perso j’ai fait l’inverse , je suis en oldstable+stable + testing sans priorités sur les release (carrément ce qui hérisse les intégristes :joy: )mais je fais des préférences par paquet pour rester en stable
exemple je veux garder le noyau stable j’ai mis


@debian:/etc/apt/preferences.d$ cat linux
# P < 0
# cette priorité empêche l'installation de la version.
# ne pas installer le noyau de testing
Package: linux*
Pin: release a=testing
Pin-Priority: -1

ce qui donne

 apt-cache policy linux-image-amd64
linux-image-amd64:
  Installé : 4.9+80+deb9u3
  Candidat : 4.9+80+deb9u3
 Table de version :
     4.14+88 -1
        500 http://deb.debian.org/debian buster/main amd64 Packages
 *** 4.9+80+deb9u3 500
        500 http://deb.debian.org/debian-security stretch/updates/main amd64 Packages
        100 /var/lib/dpkg/status
     4.9+80+deb9u2 500
        500 http://deb.debian.org/debian stretch/main amd64 Packages
     3.16+63+deb8u1 500
        500 http://deb.debian.org/debian-security jessie/updates/main amd64 Packages
  • Dans tous les cas au début , tu fais

apt update

apt list --upgradable

Pour verifier que tes priorités font ce que tu souhaites

  • La commande pour identifier la source du paquet et la priorité: apt-cache policy
apt-cache policy vlc
vlc:
  Installé : 3.0.0~rc2-2
  Candidat : 3.0.0~rc2-2
 Table de version :
 *** 3.0.0~rc2-2 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status
     2.2.7-1~deb9u1 500
        500 http://deb.debian.org/debian-security stretch/updates/main amd64 Packages
        500 http://deb.debian.org/debian stretch/main amd64 Packages
     2.2.7-1~deb8u1 500
        500 http://deb.debian.org/debian-security jessie/updates/main amd64 Packages

Salut @grandtoubab, encore merci pour ta réponse.

(j’attends de voir comment se comporte le système sur le long terme avant de compléter ce thread - tout semble fonctionner relativement sans encombre pour l’instant, vlc ainsi que l’un ou l’autre package ont nécessités une nouvelle réinstallation mais voilà plusieurs semaines qu’il n’y a plus rien à signaler)