[apt] sl-test / script d'analyse des fichiers sources apt

Tags: #<Tag:0x00007fb5d6ff5ee0> #<Tag:0x00007fb5d6ff5d78>

sl-test

sl-test liste les fichiers sources apt, teste leurs domaines et identifie leurs éventuelles redirections.

#!/bin/bash
# sl-test : liste des fichiers source apt + test domaines # 20260801 #
L=$(grep -slm1 ^d /etc/apt/s*t; awk '{if((e==1)&&/^E.*no/)nextfile}
    /^[dU]/{print FILENAME}' e=${1/*e*/1} /etc/apt/s*d/*[st])
sed 's/[^/]*$/\x1b[38;5;85m&\x1b[m/' <<<$L ; echo

while read H ; do printf "\e[38;5;117m %-38s\e[m" $H
  ping -c1 -W5 $H | awk -v h=$H \
      '/^P/{if($2!=h)printf "\n  ↳ %-34s ",$2}/%/{print (/0%/?": OK":"> 5s")}'
done < <(awk -F'//|/' '/^[dU]/{print $2}' $L |sort -u)
exit

option:
-e,--enabled : ne teste que les fichiers sources non désactivés par une première ligne ‹ Enabled: no › du fichier source au format DEB822.

Exemple:

sl-test

Test exclusivement des sources actives (option -e):

sl-test2


Note: afin que ce fil ne devienne pas une demande de support général, ou demande d’explication sur du code bash, je suggère que toute question/observation soit adressée dans un nouveau fil faisant référence à celui-ci.
Dans ce fil, la remontée de ‹ vrais › bugs ou dysfonctionnements sont à leur place, car source d’amélioration.

Bonsoir @Verner,

Cette ligne serait à remplacer par une ligne telle que celle-ci qui rejette plus de fichiers et de dossiers. Sans cela, l’ajout de certains noms de répertoires ou de fichiers viendrait perturber votre script d’analyse en générant des faux positifs.

L=$(ls -1 /etc/apt/sources.list{,.d/*{.sources,.list}} 2>/dev/null)

« serait, viendrait… » Message qui n’a pas sa place ici (= à supprimer) puisque ne répond pas à la définition d’un bug (voir Note), mais donne l’occasion d’ouverture du sujet Commentaires sur sl-test où la réponse détaillée d’hypothèse théorique à probabilité nulle aura sa place, et où la définition d’un ‹ bug › sera rappelée.

MAJ 20260730 (1er message)
Formatage de sortie plus compact permettant de mieux identifier les redirections de domaine dans le cas de longue liste de fichiers sources.

J’ai relaté un dysfonctionnement et proposé une amélioration. Un bogue pour parler français. « Serait, viendrait » invite et n’impose pas. Il n’en reste pas moins vrai que l’expression régulière dans le script est à remplacer pour la corriger. Mon message n’est donc pas à supprimer comme vous l’écrivez, au regard du seul titre et du soin particulier visant à résoudre des erreurs notables dans le script.

Déclarer que l’hypothèse est théorique et que sa probabilité est nulle sans argument réel et sérieux revient à discréditer et donc à exclure des messages pertinents. Cela laisse ainsi supposer à tort que le script n’a pas de bogue, ce qui n’est pas le cas.

Rappelons la définition de bogue (Larousse): Défaut de conception ou de réalisation d’un programme informatique, qui se manifeste par des anomalies de fonctionnement de l’ordinateur.

Certains bogues nécessitent davantage de réflexion que d’autres qui ne peuvent être résolus que par une communication et des échanges de qualité et qui ont toutes leur place ici, et non pas par un transfert ou un renvoi dans une section pause café.

Je pense qu’il faudrait améliorer ceci, car dans la specification du format DEB822, la ligne Enabled n’est pas nécessairement en début de pavé, elle peut être ailleurs (moi par exemple c’est en bas).

Bonne remarque partagée prise en compte dans la version à venir qui intégrera aussi une détection des lignes ‹ pseudo-vides › des fichiers multi-sources causant un dysfonctionnement particulièrement difficile à diagnostiquer, et qui ajoutera une fonction.
En attendant, je propose du supprimer les échanges suivants relatifs au sujet VLC ayant servi d’argumentation qui auraient plutôt dû prendre place dans le sujet ‹ commentaires sl-test ›.
Merci de la contribution de chacun pour maintenir ce fil le plus propre possible.

Pas tout à fait : en réalité le conversion chez moi n’a pas mis la ligne Enabled, c’est moi qui l’ai rajoutée à la mano en me disant que ce serait sûrement utile un jour. L’absence de ligne Enabled est considérée comme Enabled: yes.

D’ailleurs ça me fait penser, c’est utile que le script sache détecter une suspicion de pavés mal séparés, comme ça m’était arrivé. Ça serait chaud à implémenter, peut-être qu’il faudrait détecter la présence anormale de plusieurs lignes concurrentes dans chaque pavé, mais très utile pour la personne qui s’arrache les cheveux sans comprendre ce qui se passe.

Certes, mais c’est l’outil de migration des sources qui m’a fait ce fichier unique, donc je ne dois pas être seul dans ce cas. Il vaut mieux que ton script s’adapte aux utilisateurs plutôt que l’inverse.