Vlc paquet cassé

Tags: #<Tag:0x00007f63f52ba8d0>

Bonjour,

Suite à une mise à jour (9.11 Stretch) VLC a disparu de mon système.
Lorsque j’éssai de le ré-installé je découvre que j’ai des conflits de paquet mais je ne sais pas comment les résoudre.
Voici le message :

root@augustin:[/home/matiu]: apt-get install vlc
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
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 :
 vlc : Dépend: vlc-bin (= 1:3.0.8-dmo0+deb10u2) mais ne sera pas installé
       Dépend: vlc-plugin-base (= 1:3.0.8-dmo0+deb10u2) mais ne sera pas installé
       Dépend: vlc-plugin-qt (= 1:3.0.8-dmo0+deb10u2) mais ne sera pas installé
       Dépend: vlc-plugin-video-output (= 1:3.0.8-dmo0+deb10u2) mais ne sera pas installé
       Recommande: vlc-plugin-notify (= 1:3.0.8-dmo0+deb10u2) mais ne sera pas installé
       Recommande: vlc-plugin-samba (= 1:3.0.8-dmo0+deb10u2) mais ne sera pas installé
       Recommande: vlc-plugin-skins2 (= 1:3.0.8-dmo0+deb10u2) mais ne sera pas installé
       Recommande: vlc-plugin-video-splitter (= 1:3.0.8-dmo0+deb10u2) mais ne sera pas installé
       Recommande: vlc-plugin-visualization (= 1:3.0.8-dmo0+deb10u2) mais ne sera pas installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».

Mes premières recherches sur le forum semblent m’orienter vers un problème de version de mon fichier source.list que voici :

# official debian repos
deb http://ftp.fr.debian.org/debian/ stretch main non-free contrib
deb-src http://ftp.fr.debian.org/debian/ stretch main non-free contrib

deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free
deb http://ftp.fr.debian.org/debian/ stretch-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ stretch-updates main contrib non-free
deb http://ftp.fr.debian.org/debian/ stretch-backports main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ stretch-backports main contrib non-free

# unofficial repos
deb [arch=amd64,i386] https://dl.bintray.com/alanfranz/atom-apt stable main
deb [arch=amd64,i386] http://mirrors.ircam.fr/pub/deb-multimedia/ stable main
deb [arch=amd64,i386] http://download.opensuse.org/repositories/home:/ivaradi/Debian_9.0/ /
deb [arch=i386,amd64] http://download.virtualbox.org/virtualbox/debian stretch contrib
deb http://ftp.debian.org/debian stretch-backports main

est-ce le source.list qui est en faute ?
Quelqu’un pourrait-il m’aider à y voir plus clair pour savoir où ai-je commis une erreur ?

et oui l’éternel massacre à cause des paquets dmo

je commencerai par supprimer tous les paquets dmo

apt list --installed | grep dmo

et n’utiliser que ceux de Debian

deb [arch=amd64,i386] http://mirrors.ircam.fr/pub/deb-multimedia/ stable main

c’est satan :joy:

Bonjour
merci de ta réponse rapide mais je ne suis pas sûr de comprendre:

1 : je dois supprimer des paquets avec la commande que tu donnes ?
2: il y a des trucs pas bien dans mon sources.list, je devrai les supprimer sinon ça va recommencer, peux-tu m’indiquer lesquels ?

la commande permets d’identifier les paquets venant du dépôt malfaisant

A toi de les supprimer ensuite et de les remplacer à chaque fois en installant le paquet officiel Debian

ho là là mais la commande en question me sort une très longue liste de paquet, est-ce que ça veut dire qu’ils sont tous mauvais / à remplacer ?

ils ne sont pas intrinsequement mauvais mais ce depot est fait par un seul pauv’gars qui ne peut evidemment pas assurer l’utilisation sur tous les pc de la terre par des gens qui souvent ne comprennent rien à Debian

la vraie question c’est pourquoi veux tu utiliser ce dépot?

C’est un vrai travail de maintenance informatique pour remettre un pc au clair et ça ne se fait pas par l’intermédiaire d’un forum, en tout cas pas moi
tu peux t’en tenir a ceux qui concerne vlc, puisque c’est vlc qui t’intéresse
je m’en tiendrai là
Bon courage

ok, merci.

Alors en fait, non seulement certains de tes dépots “unofficial” soient mal maintenus, c’est surtoput qu’un dépot comme celui d’opensuse n’est pas fait pour debian, pas plus qu’un dépot ubuntu:
oui, les paquets veulent bien s’installer, mais la plupart du temps, ça fout la merde dans ta debian qui n’est pas prévue pour.

Donc il faudrait reinstaller les versions debian de tous les paquets que tu as installés depuis ces dépots à éviter, même si ça oblige à régresser.
En tous cas, tu ne pourras rien faire tant que tu n’auras pas remis au carré en “pur debian”.
Deux solutions s’offrent à toi:

  • réinstaller tous les paquets en stretch,
  • réinstaller tous les paquets en buster.

Sachant que dans les deux cas il y a autant de chance que ce soit laborieux, que préfères tu: rester en stretch ou passer en buster au passage ?
En attendant de savoir pour que je puisse t’indiquer la manip, quel que soit ton choix, peuxc tu indiquer le résultat de la commande apt policy ?

bonjour,
merci de t’intéresser au sujet.
Entre temps, concernant mon problème de départ qui était la disparition de VLC, j’ai trouvé une solution tout à fait malpropre mais qui fonctionne :
Commenter toutes les sources unofficial, puis refaire apt-get update + apt-get dist-upgrade + apt-get install vlc = ça a suffit à réinstaller vlc.
Mais je suis bien conscient que ça ne résout pas le problème soulevé par grandtoubab des paquets impropres et qui ne devraient pas se trouver là.
Du coup, pour essayer d’en savoir plus et de comprendre, voici le résultat de la commande apt policy:

matiu@augustin:[/etc/apt]: apt policy
Fichiers du paquet :
 100 /var/lib/dpkg/status
     release a=now
 100 http://ftp.debian.org/debian stretch-backports/main amd64 Packages
     release o=Debian Backports,a=stretch-backports,n=stretch-backports,l=Debian Backports,c=main,b=amd64
     origin ftp.debian.org
 100 http://ftp.fr.debian.org/debian stretch-backports/non-free amd64 Packages
     release o=Debian Backports,a=stretch-backports,n=stretch-backports,l=Debian Backports,c=non-free,b=amd64
     origin ftp.fr.debian.org
 100 http://ftp.fr.debian.org/debian stretch-backports/contrib amd64 Packages
     release o=Debian Backports,a=stretch-backports,n=stretch-backports,l=Debian Backports,c=contrib,b=amd64
     origin ftp.fr.debian.org
 100 http://ftp.fr.debian.org/debian stretch-backports/main amd64 Packages
     release o=Debian Backports,a=stretch-backports,n=stretch-backports,l=Debian Backports,c=main,b=amd64
     origin ftp.fr.debian.org
 500 http://ftp.fr.debian.org/debian stretch-updates/main amd64 Packages
     release o=Debian,a=oldstable-updates,n=stretch-updates,l=Debian,c=main,b=amd64
     origin ftp.fr.debian.org
 500 http://security.debian.org/debian-security stretch/updates/non-free amd64 Packages
     release v=9,o=Debian,a=oldstable,n=stretch,l=Debian-Security,c=non-free,b=amd64
     origin security.debian.org
 500 http://security.debian.org/debian-security stretch/updates/contrib amd64 Packages
     release v=9,o=Debian,a=oldstable,n=stretch,l=Debian-Security,c=contrib,b=amd64
     origin security.debian.org
 500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
     release v=9,o=Debian,a=oldstable,n=stretch,l=Debian-Security,c=main,b=amd64
     origin security.debian.org
 500 http://ftp.fr.debian.org/debian stretch/contrib amd64 Packages
     release v=9.11,o=Debian,a=oldstable,n=stretch,l=Debian,c=contrib,b=amd64
     origin ftp.fr.debian.org
 500 http://ftp.fr.debian.org/debian stretch/non-free amd64 Packages
     release v=9.11,o=Debian,a=oldstable,n=stretch,l=Debian,c=non-free,b=amd64
     origin ftp.fr.debian.org
 500 http://ftp.fr.debian.org/debian stretch/main amd64 Packages
     release v=9.11,o=Debian,a=oldstable,n=stretch,l=Debian,c=main,b=amd64
     origin ftp.fr.debian.org
Paquets épinglés :

Voilà, je veux bien une explication, après, du coup.

si ça marche , pas de problème

Oui, à la limite, en restant comme ça avec juste les dépots debian, il peut y avoir des bloquages, mais a priori ça ne peut que se réparer tout seul.

Sinon, je ne peux pas exploiter ton apt policy pour te donner les réglages à faire, vu que tu as commenté les dépots d’ou viennent les paquets à supprimer avant de faire la commande, donc je n’ai pas la signature des dépots.
Mais le principe est simple, chacun de tes dépots a un bloc de signature comme ça:

500 http://packages.microsoft.com/repos/vscode stable/main amd64 Packages
    release o=vscode stable,a=stable,n=stable,l=vscode stable,c=main,b=amd64
    origin packages.microsoft.com

A comparer avec les dépots debian que tu as qui sont tous avec o=Debian, par exemple.
Pour chaque dépot dont tu veux désinstaller les paquets tu crées dans /etc/apt/preferences.d, un fichier avec un suffixe.pref, pour préciser que pour ce dépot, tu veux une priorité -1.
Pour mon dépot vscode stable, indiqué en exemple, par exemple, je voudrais désinstaller les paquets de la branche main.
Je créerais alors un fichier vscode.pref avec:

Package: *
Pin: release o=vscode stable,c=main
Pin-Priority: -1

Ce qui vceut dire;
tous les paquets (l’étoile *) qui matchent la signature o=vscode stable,c=main, apt doit leur appliquer une priorité pour désinstaller (le -1).

Tu fais ça pour toutes les signatures de dépots dont tu ne veux plus, ensuite tu fais un apt update, tu vérifies bien dans apt policy que la priorité de -1 s’applique à ce que tu veux désinstaller et à rien d’autre, puis apt full-upgrade devrait te remplacer les versions que tu refuses par celles standard de debian (enfin celle des dépots dont la priorité est supérieure ou égale à 500).

Un peu de lecture:
https://wiki.debian-fr.xyz/L'etiquetage_de_paquets_via_le_fichier_/etc/apt/preferences

Mais bon, là si tu as installé ton VLC, c’est aussi simple de continuer comme tu es jusqu’au prochain soucis de mise à jour.

1 J'aime

Bonjour,
Merci beaucoup pour cette explication très précise.
Je vais garder ça en favoris pour l’appliquer prochainement.
(question subsidiaire liée au changement de version : si je fais un changement de version pour passer en Debian 10 avec un source.list clean, est-ce que ça permettra de supprimer les paquets inutiles de la D9 ?)

Quand les sources.list ont disparu ont peut lister les paquets installés non référencés par la commande

apt list --installed | grep /now

ça corresponds à la notion de paquets obsolètes ou locaux

Ben ça va upgrader les paquets qui sont dans des versions plus récente de stretch à buster (ceux qui restent à la même version ne bougeront pas), mais coté dépots exotiques, on ne sait pas:
si la version buster et plus récente que celle du dépot exotique, ça se remettra au carré au passage, mais si les versions de tes dépots exotiques sont plus récents, ils ne seront pas remplacés, à moins là encore d’indiquer une prio à -1.

Si tu es prêt à “risquer” un peu de boulot d’upgrade, alors je te conseille de faire les deux en même temps:
tu modifies tes depots debian standard de stretch en buster, tu réactives tes dépots exotiques, puis, aprés un update, tu ajoutes les fichiers de preferences indiquant de désinstaller tes paquets venus de dépots exotiques, tu vérifies que ça colle avec apt policy (les depots buster doivent avoir une prio de 500 et tous les autres -1), et quand c’est bon, apt update, puis apt upgrade (qui ne devrait faire que des mises à jour), puis finalement apt dist-upgrade (quiç devrait faire cette fois des désinstall ou des regressions de paquets à des version plus anciennes mais standard)…

man apt_preferences
   Méthode d'interprétation des priorités par APT
       Les priorités (P) indiquées dans le fichier des préférences doivent être des entiers positifs ou négatifs. Ils
       sont interprétés à peu près comme suit :

       P >= 1000
           cette priorité entraîne l'installation du paquet même s'il s'agit d'un retour en arrière.

       990 <= P < 1000
           la version sera installée, même si elle n'appartient pas à la distribution par défaut ; mais elle ne sera
           pas installée si la version installée est plus récente.

       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.

       100 <= P < 500
           la version sera installée, sauf s'il existe une version appartenant à une autre distribution ou si la
           version installée est plus récente.

       0 < P < 100
           la version sera installée si aucune version du paquet n'est installée.

       P < 0
           cette priorité empêche l'installation de la version.

       P = 0
           a un comportement indéfini, ne pas l'utiliser.

-1 ça veut simplement dire ne pas installer les paquets ça ne force pas une desinstallation, moi je mettrai plutôt un 1001 sur buster

Alors ça a changé.

C’est une bonne option si le -1 sur les exotiques ne suffit pas à désinstaller (ce dont je doute malgré la doc).