[apt] Dépôts Debian

Tags: #<Tag:0x00007fb5da611d80>

A toutes fins utiles, quelques remarques sur de potentiels problèmes accès apt:
En cas de problème apt, quelques tests préliminaires qui balaient quelques doutes:

➤ la connexion internet est-elle bien active ? (on ne sait jamais…)
ping -c2 8.8.8.8

➤ les dépôts apt sont-ils bien accessibles, y inclus ceux au format DEB822) ?

while read H ;do echo '@~~~';ping -c2 -W5 ${H##*/} |tail -n3
done < <(grep -ohs '^[^#/]*//[^/]*' /etc/apt/s*{t,/*{t,s}} |uniq)

――――――――――――――――――――――――――

➤ Remarques sur ’deb.debian.org' souvent utilisé par défaut

Conserver ‹ deb.debian.org › dans un sources.list, c’est à chaque opération ‹ apt › aller aux US vérifier qu’on est bien en France pour être redirigé sur ftp.fr.debian.org qui pointera sur le meilleur site FR de dépôt Debian (une dizaine / debian.proxad.net actuellement).
Certes, initialiser apt systématiquement par les US ne représentera éventuellement que quelques secondes cumulées sur une journée, même avec le sponsor ‹ Fastly › (…), mais quand on est bien sûr d’être en France, je n’y vois personnellement aucun intérêt.

deb.debian.org [us]
   ⤷ ftp.fr.debian.org (pointage maintenu sur meilleur site fr)
        ⤷ debian.proxad.net (Free / fr)

Sur chaque page de téléchargement de paquet, Debian rappelle bien ceci:

Vous devriez pouvoir utiliser n’importe lequel des miroirs de la liste
en ajoutant une ligne au fichier /etc/apt/sources.list comme ceci :

deb http://ftp.de.debian.org/debian bullseye main 

En remplaçant ftp.de.debian.org/debian par le miroir en question, soit ftp.fr.debian.org/debian pour la France.

――――――――――――――――――――――――――

➤ Comment visualiser/surveiller les différences de temps d’accès de différents dépôts:

bullseye → netselect-apt
sudo netselect-apt -c france -t 5

bookworm/sid → nala ( gestionnaire apt sympa )
sudo nala fetch -c FR --fetches 5

Ou un petit script perso: apt_perf

#!/bin/bash
# apt_perf : mesure performance dépôts apt Debian fr »20230315«
>${X:=/tmp/_}
for H in deb.debian.org ftp.fr.debian.org debian.proxad.net    \
 debian.mirror.ate.info  deb-mir1.naitways.net debian.obspm.fr \
 apt.tetaneutral.net debian.univ-tlse2.fr cdn-aws.deb.debian.org; do
 printf "\r\e[4;33mSites Debian apt\e[0;32m [$((++i))/9]\e[m"
 T="$((time curl -s http://$H/debian/dists/stable/Release >/dev/null) 2>&1)"
 echo "$(sed -n '/^r/s~.*m~~p' <<<$T) $H" >>$X
done
echo; sort $X |awk '{printf "%2d %-24s%s\n",FNR,$2,$1}'
exit

Exemple de sortie:

Sites Debian apt [9/9]
 1 debian.mirror.ate.info  0,064s
 2 cdn-aws.deb.debian.org  0,080s
 3 deb-mir1.naitways.net   0,082s
 4 debian.proxad.net       0,085s
 5 ftp.fr.debian.org       0,093s
 6 debian.obspm.fr         0,097s
 7 deb.debian.org          0,114s
 8 apt.tetaneutral.net     0,135s
 9 debian.univ-tlse2.fr    0,154s

――――――――――――――――――――――――――
➤ Exemple de fichiers sources apt, optimisés France,:

:star: Debian 11 / Bullseye : /etc/apt/sources.list

#### APT France ####
##――― security ―――##
deb https://security.debian.org/debian-security bullseye-security main contrib non-free

##――― Repo 1 ―――## 
## 202303: redirection vers debian.proxad.net (Free) ##
deb http://ftp.fr.debian.org/debian/ bullseye main non-free contrib
deb http://ftp.fr.debian.org/debian/ bullseye-updates main contrib non-free

##――― Repo 2 / dépannage ―――##
# deb http://cdn-aws.deb.debian.org/debian/ bullseye main non-free contrib
# deb http://cdn-aws.deb.debian.org/debian/ bullseye-updates main contrib non-free

##――― Repo 3 / dépannage ―――##
# deb http://deb.debian.org/debian/ bullseye main non-free contrib
# deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
##――――――――――――――――――――――――――――

:star: Debian 12 - Bookworm / au format DEB822

/etc/apt/sources.list.d/bookworm.sources

Types: deb
URIs: http://ftp.fr.debian.org/debian/
Suites: bookworm
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

/etc/apt/sources.list.d/bookworm-security.sources

Types: deb
URIs: https://security.debian.org/debian-security
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
3 J'aime

Annule et remplace le message précédent qui n’est plus éditable, mais qui demande une mise à jour.


A toutes fins utiles, quelques remarques sur de potentiels problèmes accès apt:
En cas de problème apt, quelques tests préliminaires qui balaient quelques doutes:

➤ la connexion internet est-elle bien active ? ( on ne sait jamais …)
ping -c2 8.8.8.8

➤ les dépôts apt sont-ils bien accessibles, y inclus ceux au format DEB822 ) ?

for H in $(awk -F '[/]+' '/^[dU].*http/{print $2}' \
`find /etc/apt/s*{t,/*{t,s}} -type f 2>/dev/null` |sort -u)
do echo -e "\n• $H";ping -c2 -W5 $H |tail -n3; done

――――――――――――――――――――――――――

➤ Remarques sur ’ deb.debian.org' souvent utilisé par défaut

Conserver ‹ deb.debian.org › dans un sources.list, c’est à chaque opération ‹ apt › aller aux US vérifier qu’on est bien en France pour être redirigé sur ftp.fr.debian.org qui pointera sur le meilleur site FR de dépôt Debian (une dizaine / debian.proxad.net actuellement).
Certes, initialiser apt systématiquement par les US ne représentera éventuellement que quelques secondes cumulées sur une journée, même avec le sponsor ‹ Fastly › (…), mais quand on est bien sûr d’être en France, je n’y vois personnellement aucun intérêt.

deb.debian.org [us]
   ⤷ ftp.fr.debian.org (pointage maintenu sur meilleur site fr)
        ⤷ debian.proxad.net (Free / fr)

Sur chaque page de téléchargement de paquet , Debian rappelle bien ceci:

Vous devriez pouvoir utiliser n’importe lequel des miroirs de la liste
en ajoutant une ligne au fichier /etc/apt/sources.list comme ceci :

deb http://ftp.de.debian.org/debian bookworm main 

En remplaçant ftp.de.debian.org/debian par le miroir en question, soit ftp.fr.debian.org/debian pour la France.

――――――――――――――――――――――――――

➤ Comment visualiser/surveiller les différences de temps d’accès de différents dépôts:

netselect-apt
sudo netselect-apt -c france -t 5

nala ( gestionnaire apt sympa )
sudo nala fetch -c FR --fetches 5

Ou un petit script perso: apt_perf

#!/bin/bash
# apt_perf : mesure performance dépôts apt Debian fr »20260725«
:>${X:=/dev/shm/_} ; i=0
ping -q -c1 -W2 212.27.32.66 >/dev/null || exit # test accès réseau ftp.fr.debian.org

for H in apt.tetaneutral.net deb-mir1.naitways.net {deb,cdn-fastly.deb}.debian.org \
 debian.{mirrors.ovh.net,obspm.fr,polytech-lille.fr,proxad.net,map.fastlydns.net} \
 miroir.{univ-lorraine.fr,abaclouda.net,gitoyen.net,debian.ikoula.com,johnnybegood.fr,plusserver.com} \
 ftp.{lip6.fr,ec-m.fr,rezopole.net,univ-pau.fr,u-picardie.fr,u-strasbg.fr,fr.debian.org}
 do
 printf "\r\e[4;33mSites Debian apt\e[0;32m [$((++i))/22]\e[m"
 echo $((time wget -T5 http://$H/debian/dists/stable/Release >/dev/null) 2>&1 | \
	  sed -n '/^r/s~.*m~~p') $H >> $X
done ; echo
sort $X | awk '{printf " %2d %-28s%s\n",NR,$2,$1}' ; echo

printf " %17s -> %s\n" deb.debian.org debian.map.fastlydns.net \
	   $H $(ping -q -c1 $H | awk '/^-/{print $2}')
exit

Exemple de sortie:

Sites Debian apt [22/22]
 1 miroir.abaclouda.net        0,005s
 2 miroir.gitoyen.net          0,005s
 3 miroir.johnnybegood.fr      0,005s
 4 miroir.plusserver.com       0,005s
 5 miroir.debian.ikoula.com    0,006s
 6 ftp.lip6.fr                 0,065s
 7 debian.map.fastlydns.net    0,095s
 8 ftp.fr.debian.org           0,212s
 9 deb-mir1.naitways.net       0,227s
10 debian.mirrors.ovh.net      0,231s
11 debian.proxad.net           0,231s
12 debian.obspm.fr             0,232s
13 ftp.u-picardie.fr           0,234s
14 ftp.ec-m.fr                 0,241s
15 ftp.rezopole.net            0,250s
16 miroir.univ-lorraine.fr     0,251s
17 deb.debian.org              0,252s
18 ftp.univ-pau.fr             0,256s
19 apt.tetaneutral.net         0,260s
20 debian.polytech-lille.fr    0,265s
21 ftp.u-strasbg.fr            0,269s
22 cdn-fastly.deb.debian.org   0,273s

   deb.debian.org -> debian.map.fastlydns.net
ftp.fr.debian.org -> debian.proxad.net
1 J'aime

deb.debian.org c’est un CDN (content delivery network) qui a ma connaissance utilise du DNS anycast pour fournir un service basse latence partout dans le monde.

Fastly est une entreprise américaine, mais quand tu fais ta requette à deb.debian.org en pratique ta requète ne sort probablement pas de France.

Révision du script apt_perf précédent avec test de 22 dépôts et rappel des url redirecteurs:

   deb.debian.org -> debian.map.fastlydns.net
ftp.fr.debian.org -> debian.proxad.net

+ complément d’information sur Fastly / non nécessaire pour ftp.fr.debian.org