Discussions sur la distribution Manjaro Linux et la communauté Manjaro.fr.
S'il vous plaît, ne postez pas ici de questions techniques.
Répondre

pacman-mirrors, passons notre CAP

#1Messageil y a 2 ans

:bjr:
pamac-mirrors est tout sauf simple, un bac est nécessaire pour tout comprendre mais soyons modeste, un c.a.p. sera déjà bien

Une documentation existe, bien complete, mais pas forcément simple

La première chose est de définir une zone géographique pour nos miroirs
  • -c Pays ou -c Pays1,Pays2 : les miroirs hébergés dans un ou plusieurs certains
  • --continent : en fonction de notre ip, deviner notre continent et sélectionner tous les pays de ce continent
  • -c all : le monde entier
Important: L'application va retenir cette sélection géographique pour les futures utilisations

---------------

L'option -f "nombre"
Cette option va tenir compte de notre dernière sélection géographique.
L'application sélectionne aléatoirement le nombre demandé de miroir dans notre sélection géographique précédente - Ensuite elle ne teste que cette petite sélection aléatoire

Exemple:
pacman-mirrors -c all -f 2 ne va tester que 2 miroirs sur les 100 disponibles pour manjaro
A noter qu'il teste tous les protocoles pour chaque miroir
exemple après un "--continent":

pacman-mirrors -f 2
  0.460 Germany        : https://manjaro.moson.org/
  0.372 Germany        : http://manjaro.moson.org/
  0.394 Austria        : http://mirror.easyname.at/manjaro/
  0.793 Austria        : ftp://mirror.easyname.at/manjaro/
Donc si nous avons une large liste géographique, l'option -f est très loin d'être précise. Par contre cette option est très intéressante par sa rapidité !

Note: pacman fournit le timer systemd pamac-mirrorlist qui se lance une fois par semaine et lance la commande: pacman-mirrors -f8, donc cette valeur "8" peut-être trop petite dans certains cas...

---------------


Que mesure pacman-mirrors ?

L'application teste la rapidité d'un miroir suivant plusieurs protocoles (http,http,ftp), pour cela il télécharge le fichier "core.db" de 170 ko.
Pour être précis, il teste tout le téléchargement.
Existe un outil sympa dans aur pour décortiquer un téléchargement : httpstat-go

2 tests sur une ligne "rapide" d'un même serveur mais avec 2 protocoles:

httpstat -L -k "https://mirror.futureweb.be/manjaro/stable/core/x86_64/core.db"
  DNS Lookup   TCP Connection   TLS Handshake   Server Processing   Content Transfer
[      2ms  |           9ms  |         58ms  |             68ms  |            40ms  ]
            |                |               |                   |                  |
   namelookup:2ms            |               |                   |                  |
                       connect:12ms          |                   |                  |
                                   pretransfer:71ms              |                  |
                                                     starttransfer:139ms            |
                                                                                total:179ms

httpstat -L -k "http://mirror.futureweb.be/manjaro/stable/core/x86_64/core.db"
   DNS Lookup   TCP Connection   Server Processing   Content Transfer
[       2ms  |           7ms  |             64ms  |            27ms  ]
             |                |                   |                  |
    namelookup:2ms            |                   |                  |
                        connect:10ms              |                  |
                                      starttransfer:75ms             |
                                                                 total:103ms
pacman-mirror voit/retient uniquement le total (179 et 103 ms ici)
Mais, nous pouvons voir que https et http ne jouent pas dans la même cours ! https ajoute une phase de connexion et le transfert est légèrement plus long (car chiffré). De plus avec une grosse connexion la partie transfert devient négligeable dans le calcul/tri de pacman-mirrors (27 sur 103ms :mrgreen: )

Ici, nous utilisons le même miroir, mais certains n'ont que https et d'autres que http (je vous laisse deviner qui est avantagé :lol: )
Donc, si nous ne définissons pas un seul protocole (ex: --procotol https) certains miroirs peuvent être avantagés et donc le tri ne reflète plus forcément la vitesse de téléchargement (plus le "ping" du serveur)

---------------------

Tout compris ? :pompom: le diplôme est pour vous :fete:

pacman-mirrors, passons notre CAP

#2Messageil y a 2 ans

Choix des "pays"

Nous avons 2 miroirs marqués "Global" :o:?
En fait ce sont des CDN (l'officiel de manjaro est cdn77), donc il est bon de toujours ajouter ces 2 url car:
  • Miroir synchronisé toutes les 15 minutes (beaucoup mieux que la plupart)
  • Doit offrir un bon débit quelque soit notre localisation dans le monde (pas obligatoirement le meilleur)
par exemple:

pacman-mirrors -c Global,France,Germany --api --protocols https
Résultat avec une connexion adsl:

INFO Writing mirror list
::Germany         0.398: https://manjaro.re/stable/$repo/$arch
::Germany         0.411: https://manjaro.moson.eu/stable/$repo/$arch
::France          0.412: https://manjaro.ynh.ovh/stable/$repo/$arch
::Global          0.422: https://mirrors.fossho.st/manjaro/stable/$repo/$arch
::Germany         0.427: https://manjaro.moson.org/stable/$repo/$arch
::Germany         0.439: https://mirror.23media.com/manjaro/stable/$repo/$arch
::Germany         0.46: https://mirror.netcologne.de/manjaro/stable/$repo/$arch
rappel : pacman n'utilise que le premier miroir de la liste générée par pacman-mirrors

pacman-mirrors, passons notre CAP

#3Messageil y a 2 ans

Merci papajoke !
Maintenant, ce qui me semble long c'est l'installation des paquets et la finalisation des noyaux avec les pilotes réseau, graphiques, etc... beaucoup plus que le téléchargement.
Mais tout est relatif, hein, et on s'habitue vite au confort.

pacman-mirrors, passons notre CAP

#4Messageil y a 2 ans

papajoke a écrit : il y a 2 ans Tout compris ? :pompom: le diplôme est pour vous :fete:
Merci papajoke ! :salut:

J'ai tout compris.
Mais à ton avis quelle est la meilleure commande (alias) à mettre dans le .bashrc ou le .zshrc ?
Personnellement, j'ai mis celle-ci :
maj='sudo pacman-mirrors --country Belgium France Germany --timeout 5 && sudo pacman -Syyu && trizen -Syua'
Merci

pacman-mirrors, passons notre CAP

#5Messageil y a 2 ans

Bonjour.
Normalement, tout ce qui se trouve dans ~/ reste du domaine de compétence de l'utilisateur. L'utilisateur <toto> a ses propres personnalisations de bash ou autres qui n'impacteront pas l'utilisatrice <tata> qui aura ses propres paramètres.
Il n'y a que les paramètres définis dans (principalement) /etc qui seront communs à tous les utilisateurs. pacman-mirrors est un paquet système, donc pour tous, mais tu peux invoquer une commande perso dans ~/.
Après de ce que je vois de ton alias concernant Aur, j'en avais fait référence au début de l'aventure Manjaro mais j'en suis revenu; l'automatisation de la mise à jour de paquets Aur sans consentement expressément éclairé :siffle est la porte ouverte à des risques de facilitation de bugs que ne pourrait gérer nativement pacman ou pamac... :twisted:

pacman-mirrors, passons notre CAP

#6Messageil y a 2 ans

:salut:
  • Comme j'ai déjà écrit souvent, il n'y a pas lieu de changer de miroir si notre pc ne voyage pas ! il y a peu de changements dans la liste des miroirs et lorsqu'elle a lieu, les chances que le nouveau miroir soit le plus rapide de la liste sont infimes. De plus comme écrit plus haut, nous avons normalement un timer qui va déjà recréer cette liste tous les 7 jours...
  • pacman yy :? cela est à faire lorsque nous changeons de branche, si nous passons à un miroir de la même branche et synchronisé (ce qui est toujours le cas avec la commande pacman-mirrors), alors c'est inutile
  • aur : (trizen/yay) -Sy :? le y c'est pour synchroniser les dépôts manjaro (télécharger la base de données pacman), cela vient d'être fait avec la commande pacman donc inutile ; doublement inutile puisque le but est de récupérer aur (qui n'a pas de base de donnée à télécharger)
Oui, comme le dit lemust83, chaque cas est différent, peut être que tu voyages, peut-être que tu n'es pas en stable, ... C'est a chacun de comprendre les commandes pour les adapter à ces besoins

pacman-mirrors, passons notre CAP

#7Messageil y a 2 ans

ps: Insertion d'un nouveau message #2 sur les CDN "global"

---------------------------------------------

J'ai parlé de l'utilitaire httpstats qui lui affiche la vitesse de transfert, comme je suis curieux, j'ai écrit un petit script qui va l'utiliser (après install) pour afficher cette vitesse de chaque miroir de la liste générée par pacman-mirrors (histoire de comparer :mrgreen: )

#!/usr/bin/env bash
#set -x
##
#mirrors-test : vitesse de download de mes miroirs
# re-test mirrors speed
##

declare -i i=0
printf "%-9s/%10s\n" "transfert" "total"
while read -r url; do
    if curl -ILs "$url" >/dev/null; then
        ((i++))
        speed=($(httpstat -L "$url" | awk '/^\[/ {transfert=$10} /total/ {print transfert" "$1}'))
        printf "%-9s/%10s\t%s\n" ${speed[0]} ${speed[1]#*:} $url 
        ((i>9)) && exit 0
    else
        echo "ERROR $url NOT FOUND"
    fi
done < <( pacman-conf -r core | awk '/^Server/ {print $3"/core.db"}' )

exit 0
mon résultat (juste après un pacman-mirrors) :

./mirrors-test
178ms    https://manjaro.re/stable/core/x86_64/core.db
174ms    https://manjaro.moson.eu/stable/core/x86_64/core.db
178ms    https://manjaro.moson.org/stable/core/x86_64/core.db
219ms    https://mirrors.fossho.st/manjaro/stable/core/x86_64/core.db
182ms    https://manjaro.ynh.ovh/stable/core/x86_64/core.db
220ms    https://mirrors.manjaro.org/repo/stable/core/x86_64/core.db
219ms    https://ftp.halifax.rwth-aachen.de/manjaro/stable/core/x86_64/core.db
409ms    https://mirror.alpix.eu/manjaro/stable/core/x86_64/core.db
173ms    https://mirror.netcologne.de/manjaro/stable/core/x86_64/core.db
219ms    https://mirror.23media.com/manjaro/stable/core/x86_64/core.db
220ms    https://mirror.atysleaks.org/manjaro/stable/core/x86_64/core.db
212ms    https://ftp.gwdg.de/pub/linux/manjaro/stable/core/x86_64/core.db
petit décalage avec le calcul de pacman-mirrors :oops: mais rien de bien grave puisque pacman n'utilise que le premier
bizarrement, c'est le 9ème de ma liste qui est ici le plus rapide (en transfert!) :confus:
ps: rien ne m’empêche de re-éditer le fichier /etc/pacman.d/mirrorlist à la mano si je suis un obsédé de la vitesse

pacman-mirrors, passons notre CAP

#8Messageil y a 2 ans

:bjr:

pacman-mirrors devrait disparaître pour shiny-mirrors qui est disponible pour test dans les dépôts manjaro
Utilisation bien différente...

Démo
Sources rust

----------
Première utilisation :

on configure:

shiny-mirrors config -s
- sélectionner "stable" et ENTRER
- touche espace en face de Goba, France, Germany et ENTRER
- continent: escape rien ici puisque nous avons sélectionné des pays
- protocoles: sélectionner avec espace et ENTRER pour enregistrer

Pour vérifier: shiny-mirrors config

$ shiny-mirrors config 
Branch: Stable
Countries: Global, France, Germany
Continent: 
Protocols: Http, Https
Blocklist: 
Reste à générer la liste des miroirs... voir shiny-mirrors refresh -h, il y a pas mal d'options

shiny-mirrors refresh -d va tester sans rien enregistrer
shiny-mirrors refresh va tester et enregistrer
Pour voir le résultat: shiny-mirrors
Répondre