Komut satırından en hızlı yansıtmayı nasıl seçersiniz?

121

sources.list dosyamı yeni bir Ubuntu Sunucu yüklemesinde komut satırından en hızlı sunucuyla güncellemek istiyorum. Bunun GUI ile çok kolay olduğunu biliyorum, ancak komut satırından bunu yapmanın basit bir yolu yok mu?

    
sordu Evan 04.05.2011 08:35

12 cevap

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

Yeni Ubuntu’ya katılık sorunları nedeniyle dahil değil: bkz .: Hata raporu

Ancak .. Normalde, bazı konumlarla bağlantı hızını öğrenmek için sadece ping kullanıyorum. Atlama sayısı ve gecikme süresi.

    
verilen cevap Rinzwind 04.05.2011 09:07
133

Artık arama yapmak zorunda değilsiniz - ajmitch ’de Açıklaması , deb mirror değerini otomatik olarak sizin için en iyi yansıtmayı seçtiniz.

  

apt-get şimdi destekleyecek bir 'ayna' yöntemi Bulunduğunuz yere göre otomatik olarak iyi bir ayna seçin. Koymak:

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
     

/etc/apt/sources.list dosyanızın üst kısmında, coğrafi konumunuza göre otomatik olarak bir ayna seçmesini sağlamak için gereken her şey olmalıdır.

     

Lucid (10.04), Maverick (10.10), Natty (11.04) ve Oneiric (11.10) kullanıcıları precise 'yi uygun adla değiştirebilir.

    
verilen cevap badp 23.10.2010 12:31
47

İşte her zaman işe yarayacak, eski netselect ve bazı grep sihrini kullanmanın bir yolu:

Terminal-addict'ın "en iyi sunucuyu bul" hack!

  • Mimariniz için Debian web sitesinden indirin ve dpkg -i netselect . , bağımlılık yok)
  • Bulunduğunuz yerdeki en güncel Ubuntu aynalarını ya güncel ya da en fazla altı saat geride bırakarak (aşağıda açıklayacağım, üzgünüm Markdown'da güzel bir şekilde ayrılmaz)

    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 onu biraz ayrıntılı hale getirir - ilerleme noktaları ve mesajların aynı IP ile eşleştirilen farklı aynaların birleştirildiğini görmek istediğinizi görmek istersiniz:)
    2. -sN sonunda kaç ayna istediğinizi kontrol eder (ör. ilk 10 ayna)
    3. -tN , her bir yansıtıcının ne kadar süreyle test edildiğini gösterir (varsayılan değer 10'dur; sayı ne kadar yüksekse, o kadar uzun sürer, ancak sonuçlar o kadar güvenilirdir.)
  • Bu backquotes şeyler (sadece açıklama için yapıştırmayın)

    wget -q -O- https://launchpad.net/ubuntu/+archivemirrors
    | grep -P -B8 "status(UP|SIX)" 
    | grep -o -P "(f|ht)tp://[^\"]*" 
    
    1. wget , en son ayna durumunu İşte 'den çeker.
    2. İlk grep , güncel ftp / http URL'lerini içeren 8 satırlık bir önceki içerikle birlikte, güncel veya altı saat geride kalan yansımaları çıkarır
    3. % ikinci co_de%, bu ftp / http URL'lerini ayıklar
  • İşte Kaliforniya, ABD'den bir örnek çıktı:

    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/
    
    • "Sıralar", keyfi bir metriktir; daha düşük genellikle daha iyidir.
    • Eğer kernel.org İsveç-AB aynası ve bir NZ aynasının neden California 'daki ilk üçte olduğunu merak ediyorsanız, ben de ;-) Gerçek şu ki grep , her zaman, birden çok ayna tek bir IP ile eşlendiğinde görüntülenecek en uygun URL'yi seçmez; 3 sayısı da netselect ! olarak bilinir!
verilen cevap ish 24.05.2012 08:45
14

İşte bir Python betiği En düşük TCP gecikme süresi olan aynaları buldum.

Komut ayrıca, launchpad 'den alınan bant genişliği ve durum verilerini de sağlar ve yeni bir sources.list dosyasını otomatik olarak veya kullanarak oluşturur listeden seçilen bir ayna.

    
verilen cevap John B 11.06.2014 01:58
14

Kendiniz için mirrors.ubuntu.com'a dayalı en iyi (indirme hızına) yansıtmayı seçen Oneliner.

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   }'
    
verilen cevap KAndy 10.01.2016 20:40
5

mirrors.ubuntu.com/mirrors.txt dosyasında listelenen sunucuları test eden ve en hızlı olanı döndüren basit bir ping tabanlı nodejs komut dosyası geliştirdim:

sudo npm install -g ffum
ffum

Kullanışlı bulursanız veya herhangi bir öneriniz varsa lütfen bana bildirin (=

    
verilen cevap tentaculo 14.05.2013 18:56
2

Bunun OP'nin sorusunu doğrudan yanıtlamadığını biliyorum, ancak Ubuntu'nun masaüstü / GUI sürümünde sizin için en iyi aynayı bularak bir düğme var. Oldukça iyi çalışıyor gibiydi, bu yüzden kısaca baktım, ama takip edecek vaktim yoktu.

Bunu getirmemin sebebi, oldukça basit ve ileride bir komut satırı yardımcı programına dönüştürülebileceğini düşünüyorum.

Birisi ilgilenirse, test şu konumda bulunur:

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

Yine, elime geçtiği kadarıyla, ama istediğim takdirde bunu burada bırakacağımı düşündüm. Biraz daha zamanım olduğunda muhtemelen geri döneceğim.

    
verilen cevap copeland3300 29.10.2016 23:35
0

Aynaları otomatik olarak seçmek için aşağıdakileri kullanırım (ve deb-src'yi devre dışı bırak)

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
    
verilen cevap iheggie 09.07.2016 14:37
0

Bir programın bunu yapmasını istiyorsanız, aşağıdaki gibi basit bir bash betiği gibi bir yardımcı program uygulayabilirsiniz. Bu yardımcı programı pip / nodejs gerekmeden kullanmak istiyorsanız yararlı olabilir.

#!/bin/bash
if [ -z "" ]
then
    echo Usage:  sudo %pre% 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
    
verilen cevap gmatht 24.01.2017 05:52
0

Kabul edilen yanıt dahil olmak üzere diğer yanıtlar artık geçerli değil (Ubuntu 11.04 ve daha yeni sürümler için) çünkü Ubuntu ile çalışmayan netselect-apt ve apt-spy gibi Debian paketlerini önerdiler.

Aşağıdaki bu soruya iki farklı çalışma yanıtı var:

  1. apt-get 'in mirror: yöntemini kullan
      

    Bu yöntem, Ubuntu sunucusunu, yakınınızdaki IP'lere dayalı bir ayna listesi için sorar ve bunlardan birini seçer. En ufak bir dezavantajı olan en kolay alternatif, bazen en yakın ayna en hızlı olmayabilir.

  2. Netselect'i kullanan komut satırı

    En son güncellenen sunucuları sizden - ağ bilge, coğrafi olarak değil - bulmak için netselect aracını nasıl kullanacağınızı gösterir. Aynaları sed olarak değiştirmek için sources.list kullanın.

sed 'deki aynaları değiştirmek için sources.list kullanın

Bazı kaynaklar ek klasörlerini yollarının bir parçası olarak kullandıklarından, alternatif ayırıcı sözdizimini kullanmak daha iyi olabilir.

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

En hızlı yansıtmayı elde etmenin en kolay ve etkili yolu apt mirror:// kaynağını kullanmaktır, bkz.

İşte

    
verilen cevap david 10.04.2016 09:58
-4

burada güzel terminal programı:

# 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
    
verilen cevap debsid 04.01.2012 09:35

Etiketlerdeki diğer soruları oku