Comment sélectionnez-vous le miroir le plus rapide à partir de la ligne de commande?

127

Je souhaite mettre à jour mon fichier sources.list avec le serveur le plus rapide à partir de la ligne de commande dans une nouvelle installation d'Ubuntu Server. Je sais que cela est trivialement facile avec l'interface graphique, mais il ne semble pas y avoir de moyen simple de le faire à partir de la ligne de commande?

    
posée Evan 04.05.2011 - 08:35
la source

12 réponses

19
Pakket netselect-apt

    dapper (net): Choose the fastest Debian mirror with netselect 
    [universe]
    0.3.ds1-5: all
    hardy (net): Choose the fastest Debian mirror with netselect 
    [universe]
    0.3.ds1-11: all
Pakket apt-spy

    dapper (admin): writes a sources.list file based on bandwidth tests 
    [universe]
    3.1-14: amd64 i386 powerpc

Non inclus dans les nouvelles Ubuntu en raison de problèmes de sécurité, voir: Rapport de bug

Mais ... j'utilise normalement un ping pour connaître la vitesse de connexion à un emplacement. Quantité de sauts et de latence.

    
réponse donnée Rinzwind 04.05.2011 - 09:07
la source
137

Vous n'avez plus besoin de chercher, car ajmitch a explained , vous pouvez utiliser deb mirror pour faites sélectionner automatiquement le meilleur miroir pour vous.

apt-get now supports a 'mirror' method that will automatically select a good mirror based on your location. Putting:

deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse

on the top in your /etc/apt/sources.list file should be all that is needed to make it automatically pick a mirror for you based on your geographical location.

Lucid (10.04), Maverick (10.10), Natty (11.04), and Oneiric (11.10) users can replace precise with the appropriate name.

    
réponse donnée badp 23.10.2010 - 12:31
la source
47

Voici un moyen qui fonctionnera toujours, en utilisant le bon vieux netselect et quelques grep magie:

Le bidouillage de "trouver le meilleur serveur" du toxicomane du terminal!

  • Téléchargez et dpkg -i netselect pour votre architecture à partir du site Web Debian. (environ 125 Ko , pas de dépendances)
  • Trouvez les miroirs Ubuntu les plus rapides de chez vous, à jour ou avec un retard de six heures maximum (je l'expliquerai ci-dessous, je regrette que cela ne se divise pas très bien dans Markdown)

    sudo netselect -v -s10 -t20 'wget -q -O- https://launchpad.net/ubuntu/+archivemirrors | grep -P -B8 "statusUP|statusSIX" | grep -o -P "(f|ht)tp://[^\"]*"'
    
  • netselect :

    1. -v le rend un peu verbeux - vous voulez voir les points de progression et les messages vous indiquant que différents miroirs mappant sur la même adresse IP ont été fusionnés:)
    2. -sN contrôle le nombre de miroirs que vous voulez à la fin (par exemple, les 10 meilleurs miroirs)
    3. -tN est la durée pendant laquelle chaque miroir est soumis à un test de vitesse (la valeur par défaut est 10; plus le nombre est élevé, plus cela prend de temps, mais plus le résultat est fiable.)
  • Ceci est le contenu des citations arrières (ne pas coller, juste pour une explication)

    wget -q -O- https://launchpad.net/ubuntu/+archivemirrors
    | grep -P -B8 "status(UP|SIX)" 
    | grep -o -P "(f|ht)tp://[^\"]*" 
    
    1. wget extrait le dernier statut de miroir du lien .
    2. Le premier grep extrait les miroirs mis à jour ou avec six heures de retard, ainsi que 8 lignes du contexte précédent incluant les URL ftp / http réelles
    3. Le second grep extrait ces URL ftp / http
  • Voici un exemple de sortie de Californie, aux États-Unis:

    60 ftp://mirrors.se.eu.kernel.org/ubuntu/
    70 http://ubuntu.alex-vichev.info/
    77 http://ftp.citylink.co.nz/ubuntu/
    279 http://ubuntu.mirrors.tds.net/pub/ubuntu/
    294 http://mirror.umd.edu/ubuntu/
    332 http://mirrors.rit.edu/ubuntu/
    364 ftp://pf.archive.ubuntu.com/ubuntu/
    378 http://mirror.csclub.uwaterloo.ca/ubuntu/
    399 ftp://ubuntu.mirror.frontiernet.net/ubuntu/
    455 http://ubuntu.mirror.root.lu/ubuntu/
    
    • Les "rangs" sont une métrique arbitraire; plus bas est généralement meilleur.
    • Si vous vous demandez pourquoi le miroir Suède-UE de kernel.org et un miroir NZ figurent dans le top trois de Californie , eh bien, moi aussi ;-) La vérité, c'est que netselect ne choisit pas toujours l'URL la plus appropriée à afficher lorsque plusieurs miroirs sont mappés sur une même adresse IP; le numéro 3 est également connu sous le nom de nz.archive.ubuntu.com !
réponse donnée ish 24.05.2012 - 08:45
la source
18

Oneliner qui sélectionne le meilleur miroir (en vitesse de téléchargement) en fonction de mirrors.ubuntu.com pour votre ip.

curl -s http://mirrors.ubuntu.com/mirrors.txt | xargs -n1 -I {} sh -c 'echo 'curl -r 0-102400 -s -w %{speed_download} -o /dev/null {}/ls-lR.gz' {}' |sort -g -r |head -1| awk '{ print $2  }'
    
réponse donnée KAndy 10.01.2016 - 20:40
la source
17

Voici un script Python que j'ai écrit et qui trouve des miroirs avec la plus faible latence TCP.

Le script fournit également des données de bande passante et d'état extraites du tableau de bord et génère un nouveau fichier sources.list , automatiquement ou à l'aide de un miroir choisi dans une liste.

Un exemple d'utilisation vous permettant de choisir parmi 5 miroirs US avec la latence la plus faible sur votre ordinateur:

$ apt-select --country US -t 5 --choose
    
réponse donnée John B 11.06.2014 - 01:58
la source
5

J'ai développé un script nodejs basé sur le ping qui teste les serveurs répertoriés sur mirrors.ubuntu.com/mirrors.txt et renvoie le plus rapide:

sudo npm install -g ffum
ffum

Faites-moi savoir si vous le trouvez utile ou si vous avez des suggestions (=

    
réponse donnée tentaculo 14.05.2013 - 18:56
la source
2

Je sais que cela ne répond pas directement à la question du PO, mais il y a un bouton dans la version de bureau / interface graphique d'Ubuntu qui trouve le meilleur miroir pour vous. Cela a semblé bien fonctionner, alors j’ai examiné la situation brièvement, mais j’ai eu le temps de faire un suivi.

La raison pour laquelle j’en parle est que je pense que ce serait assez simple et utilisable de le transformer en un utilitaire de ligne de commande.

Si vous êtes intéressé, le test semble se trouver dans:

/usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py

Encore une fois, c’est à peu près tout ce que j’ai eu, mais j’ai pensé que je laisserais ça ici au cas où quelqu'un le voudrait. Je reviendrai probablement là-dessus quand j'aurai un peu plus de temps.

    
réponse donnée copeland3300 29.10.2016 - 23:35
la source
0

J'utilise ce qui suit pour sélectionner automatiquement les miroirs (et désactiver deb-src)

sudo sed -i -e 's%http://archive.ubuntu.com/ubuntu%mirror://mirrors.ubuntu.com/mirrors.txt%' -e 's/^deb-src/#deb-src/' /etc/apt/sources.list
    
réponse donnée iheggie 09.07.2016 - 14:37
la source
0

Si vous voulez qu'un utilitaire fasse cela, vous pouvez l'implémenter comme un script bash simple, comme suit. Cela peut être utile si vous souhaitez utiliser cet utilitaire sans avoir besoin de pip / nodejs.

#!/bin/bash
if [ -z "$1" ]
then
    echo Usage:  sudo $0 http://mirrors.ubuntu.com/mirrors.txt
    echo OR consider one of...
    for mirror in 'wget http://mirrors.ubuntu.com/mirrors.txt -O - 2> /dev/null'
    do 
        (
            host='echo $mirror |sed s,.*//,,|sed s,/.*,,'
            echo -e 'ping $host -c1 | grep time=|sed s,.*time=,,':'  \t\t'$mirror
        ) &
        done
    wait
    exit 1
fi

OLD_SOURCE='cat /etc/apt/sources.list | grep ^deb\ | head -n1 | cut -d\  -f2'

[ -e  /etc/apt/sources.list.orig ] || cp /etc/apt/sources.list /etc/apt/sources.list.orig

cp /etc/apt/sources.list /etc/apt/sources.list.tmp
sed "s,$OLD_SOURCE,$1," < /etc/apt/sources.list.tmp > /etc/apt/sources.list
    
réponse donnée gmatht 24.01.2017 - 05:52
la source
0

Les autres réponses, y compris la réponse acceptée, ne sont plus valables (pour Ubuntu 11.04 et les versions plus récentes) car elles recommandaient des paquets Debian tels que netselect-apt et apt-spy qui ne fonctionnent pas avec Ubuntu.

Il existe deux réponses différentes à cette question ci-dessous:

  1. Utiliser la méthode% co de apt-get

    This method asks the Ubuntu server for a list of mirrors near you based on your IP, and selects one of them. The easiest alternative, with the minor downside that sometimes the closest mirror may not be the fastest.

  2. Foo en ligne de commande à l'aide de netselect
    Vous montre comment utiliser l'outil netselect pour rechercher les serveurs les plus rapidement mis à jour récemment - en termes de réseau et non de géographie. Utilisez mirror: pour remplacer les miroirs dans sed .

Utilisez sources.list pour remplacer les miroirs dans sed

Étant donné que certaines sources utilisent des dossiers d'addition dans leur chemin, il pourrait être préférable d'utiliser la syntaxe de séparateur alternatif.

sudo sed -i 's%us.archive.ubuntu.com%mirrors.gigenet.com/ubuntuarchive/%' /etc/apt/sources.list
    
réponse donnée k0pernikus 07.05.2018 - 12:10
la source
-1

Le moyen le plus simple et efficace d’obtenir le miroir le plus rapide est d’utiliser apt mirror:// source, voir

.

lien

    
réponse donnée david 10.04.2016 - 09:58
la source
-4

beau programme de terminal ici:

# apt-get install netselect-apt

Available Options

stable|testing|unstable|experimental|woody|sarge|etch|sid Specify which distribution of Debian to use. By default stable is used.

-s, --sources
While generating OUTFILE include also deb-src lines to use with ‘‘apt-get source’’ to obtain Debian source packages.

-i, --infile INFILE
Use INFILE instead of mirrors_full for reading mirror list. The file must be in the same format as mirrors_full.

-o, --outfile OUTFILE
Use OUTFILE instead of sources.list.

-n, --nonfree
Include also non-free section while generating OUTFILE.

-f, --ftp
Use FTP mirrors instead of HTTP and generate OUTFILE accordingly.

Examples

If you want non-free repos use the following command

# netselect-apt -n
    
réponse donnée debsid 04.01.2012 - 09:35
la source

Lire d'autres questions sur les étiquettes