Jak vyberete nejrychlejší zrcadlo z příkazového řádku?

124

Chci aktualizovat svůj souborsources.list nejrychlejším serverem z příkazového řádku v nové instalaci Ubuntu Server. Vím, že je to s tribunem jednoduché, ale zdá se, že to není jednoduchý způsob, jak to udělat z příkazového řádku?

    
dané Evan 04.05.2011 08:35

12 odpovědí

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

Nezahrnuje se do novějšího Ubuntu kvůli problémům s bezpečností. Zdá se, že: Chybová zpráva

Ale .. Obvykle používám ping , abych zjistil rychlost připojení k nějakému místu. Množství chmele a latence.

    
odpověděl Rinzwind 04.05.2011 09:07
134

Již nemusíte provádět žádné vyhledávání - jelikož ajmitch vysvětlení , můžete použítdeb mirror na mít nejlepší zrcadlo vybrané pro vás automaticky.

  

apt-get nyní podporuje metodu 'mirror', která bude automaticky vybrat správné zrcadlo na základě vaší polohy. Vložení:

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
     

v horní části vašeho souboru/etc/apt/sources.list by mělo být vše, co je potřebné k automatickému výběru zrcadla pro vás na základě vaší geografické polohy.

     Lucid (10.04), Maverick (10.10), Natty (11.04) a Oneiric (11.10) mohou nahraditprecise příslušným jménem.

    
odpověděl badp 23.10.2010 12:31
47

Zde je jedna cesta, která bude vždy fungovat s použitím dobrých starýchnetselect a některýchgrep magic:

Terminál-narkoman "najít nejlepší server" hack!

  • Stáhnout adpkg -inetselect pro architekturu z webových stránek Debianu. (je to asi 125 KB , žádné závislosti)
  • Najděte nejrychlejší Ubuntu zrcadla z vašeho umístění, buď aktuální nebo nejvýše šest hodin s tímto (vysvětlím to níže, omlouvám se, že se nerozděluje v Markdownu)

    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 to dělá trochu podrobně - chcete vidět průběžné tečky a zprávy, které vám říkají, že různá zrcadla mapování na stejnou IP byla sloučena:)
    2. -sN určuje, kolik zrcadel chcete na konci (např. top 10 zrcadel)
    3. -tN je jak dlouho je každé zrcadlo testováno rychlostí (výchozí hodnota je 10, čím je číslo vyšší, tím déle trvá, ale výsledky jsou spolehlivější.)
  • Jedná se o položky zpětné odkazy (neukládejte, pouze pro vysvětlení)

    wget -q -O- https://launchpad.net/ubuntu/+archivemirrors
    | grep -P -B8 "status(UP|SIX)" 
    | grep -o -P "(f|ht)tp://[^\"]*" 
    
    1. wget stáhne poslední stav zrcadlení z Odkazu .
    2. Prvnígrep extrakty zrcadlí, které jsou aktuální nebo šest hodin za sebou, spolu s 8 řádky předchozího kontextu, který obsahuje skutečné URL adresy ftp / http
    3. Druhýgrep extrahuje tyto URL adresy ftp / http
  • Zde je ukázkový výstup z Kalifornie, USA:

    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/
    
    • "Řádky" jsou libovolnou metrikou; nižší je obvykle lepší.
    • Pokud jste zvědaví, proč zrcadlo kernel.org Švédsko-EU a zrcadlo NZ jsou v prvních třech z California , no, tak jsem já ;-) Pravda je, že% co_kde % ne vždy zvolí nejvhodnější adresu URL, která se zobrazí, když více map zrcadlení mapuje jednu IP adresu; číslo 3 je také známo jakonetselect!
odpověděl ish 24.05.2012 08:45
15

Zde je Python script , který jsem napsal, že najde zrcadla s nejnižší latencí TCP.

Skript také poskytuje údaje o šířce pásma a stavu získané z launpad a automaticky vytvoří nový souborsources.list nebo pomocí zrcadlo vybrané ze seznamu.

    
odpověděl John B 11.06.2014 01:58
14

Oneliner, který zvolí nejlépe (podle rychlosti stahování) zrcadlo založené na mirrors.ubuntu.com pro váš 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   }'
    
odpověděl KAndy 10.01.2016 20:40
5

Vytvořil jsem jednoduchý skript nodejs založený na pingu, který testuje servery uvedené na mirrors.ubuntu.com/mirrors.txt a vrací nejrychlejší:

sudo npm install -g ffum
ffum

Dejte mi vědět, pokud to považujete za užitečné nebo máte nějaké návrhy (=

    
odpověděl tentaculo 14.05.2013 18:56
2

Vím, že to přímo neodpovídá na otázku operačního systému, ale v grafické verzi Ubuntu, která najde nejlepší zrcadlo pro vás, je tlačítko. Zdálo se, že funguje celkem dobře, a proto jsem se na to krátce podíval, ale neměl čas sledovat.

Důvod, proč to přivedu, je, protože si myslím, že by to bylo docela jednoduché a použitelné, aby se to stalo nástrojem pro příkazovou řádku.

Pokud má někdo zájem, zdá se, že test se nachází v:

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

Opět je to tak daleko, jak jsem se dostal, ale rozhodl jsem se, že to nechám tady, kdyby to někdo chtěl. Pravděpodobně si to vyzvednu, když budu mít ještě trochu času.

    
odpověděl copeland3300 29.10.2016 23:35
0

Pro automatickou volbu zrcadel (a vypnutí deb-src) používám následující

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
    
odpověděl iheggie 09.07.2016 14:37
0

Chcete-li, aby nástroj mohl udělat, můžete implementovat takový nástroj jako jednoduchý bash skript jako následující. To může být užitečné, pokud chcete použít nástroj bez potřeby pip / nodejs.

#!/bin/bash
if [ -z "" ]
then
    echo Usage:  sudo %pr_dfe% 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,," < /etc/apt/sources.list.tmp > /etc/apt/sources.list
    
odpověděl gmatht 24.01.2017 05:52
0

Ostatní odpovědi, včetně přijaté odpovědi, již nejsou platné (pro Ubuntu 11.04 a novější), protože doporučují balíčky Debianu, jako napříkladnetselect-apt aapt-spy, které nefungují s Ubuntu.

Existují dva různé pracovní odpovědi na tuto otázku níže:

  1. Použijte metodumirror: apt-get
      

    Tato metoda pošle serveru Ubuntu seznam zrcadel blízký vám na základě vašeho IP a vybere jeden z nich. Nejjednodušší alternativou, s malou nevýhodou, že někdy nejbližší zrcadlo nemusí být nejrychlejší.

  2. Příkazový řádek foo pomocí netselect
    Ukazuje vám, jak pomocí nástroje netselect najít nejrychlejší a nejnovější aktualizované servery od vás - v síti, nikoliv geograficky. Použijtesed k nahrazení zrcadel vsources.list.

Použijtesed k nahrazení zrcadel vsources.list

Protože některé zdroje používají jako součást své cesty doplňkové složky, může být lepší použít syntaxi alternativního oddělovače.

sudo sed -i 's%us.archive.ubuntu.com%mirrors.gigenet.com/ubuntuarchive/%' /etc/apt/sources.list
    
odpověděl k0pernikus 07.05.2018 12:10
-1

Nejjednodušší a nejúčinnější způsob získání nejrychlejšího zrcadla je použití zdroje aptmirror://, viz

Odkaz

    
odpověděl david 10.04.2016 09:58
-4

Pěkný program terminálu zde:

# 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
    
odpověděl debsid 04.01.2012 09:35