Conflit lors d'un apt upgrade avec le paquet libjson-xs-perl sous debian 12 (bookworm)

Tags: #<Tag:0x00007f338db2fd50>

Bonjour à tous,

Je viens sollicité votre aide pour un soucis que je n’ai encore jamais rencontré

lors d’un apt upgrade le système refuse de mettre à jour libjson-xs-perl

Les paquets suivants ont été conservés :
libjson-xs-perl
0 mis à jour, 0 nouvellement installés, 0 à enlever et 1 non mis à jour.

et pour cause j’ai l’impression que deux versions sont disponibles dans les dépôts et qu’il bloque là dessus

apt list --upgradable -a
En train de lister… Fait
libjson-xs-perl/oldstable-security 4.040-1~deb12u1 amd64 [pouvant être mis à jour depuis : 4.030-2+b1]
libjson-xs-perl/oldstable,now 4.030-2+b1 amd64 [installé, pouvant être mis à jour vers : 4.040-1~deb12u1]

Comment m’en sortir pour mettre à jour ce fichu paquet ?

Merci d’avance pour votre aide.

Tu as essayé

apt full-upgrade

?

même problème :

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
Calcul de la mise à jour... Fait
Les paquets suivants ont été conservés :
libjson-xs-perl
0 mis à jour, 0 nouvellement installés, 0 à enlever et 1 non mis à jour

Que dit ceci:
apt install libjson-xs-perl/oldstable-security

Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances… Fait
Lecture des informations d’état… Fait
Version choisie « 4.040-1~deb12u1 » (Debian-Security:12/oldstable-security [amd64]) pour « libjson-xs-perl »
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l’impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n’ont pas encore
été créés ou ne sont pas sortis d’Incoming.
L’information suivante devrait vous aider à résoudre la situation :

Les paquets suivants contiennent des dépendances non satisfaites :
 libjson-xs-perl : Dépend: perl (>= 5.36.0-7+deb12u3) mais 5.36.0-7+deb12u2 devra être installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».

apt install perl=5.36.0-7+deb12u3

lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
Aucune version du paquet perl n'est disponible, mais il existe dans la base
de données. Cela signifie en général que le paquet est manquant, qu'il est devenu obsolète
ou qu'il n'est disponible que sur une autre source
Cependant les paquets suivants le remplacent :
  perl-base:i386 libperl5.36:i386 perl-base libperl5.36

et si j’essaie d’installer les 4 paquets ci-dessus :

sudo apt install   perl-base:i386 libperl5.36:i386 perl-base libperl5.36
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
perl-base est déjà la version la plus récente (5.36.0-7+deb12u2).
libperl5.36 est déjà la version la plus récente (5.36.0-7+deb12u2).
libperl5.36 passé en « installé manuellement ».
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation : 

Les paquets suivants contiennent des dépendances non satisfaites :
 perl-base : Est en conflit avec: perl-base:i386 mais 5.36.0-7+deb12u2 devra être installé
 perl-base:i386 : Est en conflit avec: perl-base mais 5.36.0-7+deb12u2 devra être installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».

C’est vraiment la panade, je ne comprends pas ce qui se passe, je n’ai pourtant pas fait joujou entre les version stable et testing ???

Ton problème vient que tu mixes peut-être deux architectures. Que dit:

dpkg --print-architecture

dpkg --print-architecture
amd64

Et ceci:
dpkg -l |awk '$1~i && $4~386 {0};END{print NR}'

le résultat : 3236

Le plus simple est de repartir sur une installation neuve, soit bookworm si tu as une raison de rester sur bookworm, ou trixie.

étrange j’avais seulement installé les paquets i386 de wine dans mes souvenirs
en activant architecture i386 via sudo dpkg --add-architecture i386.
Jamais eu aucuns soucis sous debian 11 à l’époque

Il y a wine32 et wine64.
Impossible de retourner dans tes souvenirs, mais tu vas trainer une galère de mises à jour avec ce mix d’architectures.
N’essaies surtout de migrer vers trixie.

du coup comment faire pour installer proprement un wine qui permet de lancer des applis win32 proprement sans activer l’architecture I386 ?

debian 11 → 12 , maintenant 13.
Il faut commencer par normaliser ton installation, en faisant d’abord du ménage. C’est selon moi une perte de temps de comprendre l’origine de tes 3236 paquets i386.
Une réponse relative à wine dépendra de la version nettoyée (soit bookworm ou trixie).
Wine sera un sujet ultérieur, ce qui permettra de vérifier si tu en as réellement besoin.

De toute manière pas le choix, je vais repartir sur une installation neuve de debian 13. mais je ne comprends pas pourquoi j’ai eu ce problème en activant l’architecture i386 ? je n’ai jamais eu aucuns soucis sur les versions précédentes de debian (pour info je n’ai jamais fait de dist-upgrade de ma vie) toujours migré en installant de zéro les nouvelles versions (en conservant mon disque home).

Merci en tout cas d’avoir pris le temps de m’aider.

Je n’ai pas de paquets i386 pour tester, mais ton nombre exact de paquets i386 est plutôt exactement ça qui doit être bien inférieur:

dpkg -l | awk '$1~"^i" && $4~"386" {i++};END {print i}'

Ça ne change rien à ta problématique de mix d’architectures, qui devient de plus en plus complexe à démêler quand on rajoute du ‹ security › et éventuellement du backport et autre chose externe.
Ce n’est pas du tout ‹ impossible › à nettoyer, mais galère par forum interposé.
Donc, l’occasion de repartir sur une base propre ‹ trixie ›, mais aussi de ne pas installer wine sans vérifier qu’il est vraiment nécessaire…