คุณจะเลือกมิเรอร์ที่เร็วที่สุดจากบรรทัดคำสั่งได้อย่างไร


137

ฉันต้องการอัปเดตsources.listไฟล์ของฉันด้วยเซิร์ฟเวอร์ที่เร็วที่สุดจากบรรทัดคำสั่งในการติดตั้งเซิร์ฟเวอร์ Ubuntu ใหม่ ฉันรู้ว่ามันง่ายนิดเดียวกับ GUI แต่ดูเหมือนจะไม่มีวิธีง่ายๆในการทำจากบรรทัดคำสั่ง?


3
ในนิพจน์ทั่วไป ตัวอักษรหมายถึงตัวละครใด ๆ หากคุณต้องการให้ตรงกับ a. คุณต้องหลบหนีด้วย \ ดังนั้น us.archive [.. ] ควรเป็นเรา \ .archive [.. ]
Egil

เกี่ยวข้อง: askubuntu.com/questions/37753/…
Jorge Castro

2
ในกรณีของฉันฉันต้องเปลี่ยน#เครื่องหมายด้วยสแลช ( /) มิฉะนั้นฉันจะได้รับคำsed: -e expression #1, char 53: unterminated สั่งของ
Ethan Leroy

@EthanLeroy เหมือนกันที่นี่กับ Ubuntu 12.04.3
ออกจากระบบ

ควรเฉือนอย่าแฮช
Matt H

คำตอบ:


22
Pakket netselect-apt

    dapper (สุทธิ): เลือก Debian mirror ที่เร็วที่สุดด้วย netselect 
    [จักรวาล]
    0.3.ds1-5: ทั้งหมด
    hardy (net): เลือก Debian mirror ที่เร็วที่สุดด้วย netselect 
    [จักรวาล]
    0.3.ds1-11: ทั้งหมด
Pakket apt-spy

    dapper (ผู้ดูแลระบบ): เขียนไฟล์ source.list ตามการทดสอบแบนด์วิดท์ 
    [จักรวาล]
    3.1-14: amd64 i386 powerpc

ไม่รวมอยู่ใน Ubuntu รุ่นใหม่เนื่องจากปัญหาด้านความปลอดภัยส่วน: ดู: รายงานข้อผิดพลาด

แต่ .. ปกติแล้วฉันจะใช้pingเพื่อหาความเร็วของการเชื่อมต่อไปยังบางตำแหน่ง จำนวนฮ็อพและเวลาแฝง


4
ดูเหมือนว่า netselect-apt จะไม่สามารถใช้ได้ใน Ubuntu 12.04
offby1

ถูกต้อง: ดูที่นี่bugs.launchpad.net/ubuntu/+source/netselect/+bug/337377
Rinzwind

8
นี่ไม่ใช่ upvoted มากที่สุดหรือคำตอบที่ดีที่สุดอีกต่อไปตรวจสอบหนึ่ง
ntg

คำตอบใดคือ "ถัดไป" อาจมีการเปลี่ยนแปลง
gmatht

apt-spy หายไปแล้วที่ debian 9 แต่ netselect-apt นั้นโอเค
netawater

147

คุณไม่ต้องทำการค้นหาใด ๆ อีกต่อไป - ตามที่ajmitchได้อธิบายไว้คุณสามารถใช้deb mirrorเพื่อเลือกมิเรอร์ที่ดีที่สุดให้คุณโดยอัตโนมัติ

apt-get รองรับวิธี 'mirror' ที่จะเลือก mirror ที่ดีโดยอัตโนมัติตามตำแหน่งของคุณ วาง:

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ไฟล์ของคุณควรเป็นสิ่งที่จำเป็นสำหรับการเลือกมิเรอร์ให้คุณโดยอัตโนมัติตามตำแหน่งทางภูมิศาสตร์ของคุณ

ผู้ใช้ Lucid (10.04), Maverick (10.10), Natty (11.04) และ Oneiric (11.10) สามารถแทนที่preciseด้วยชื่อที่เหมาะสม


สุดยอดเคล็ดลับ เพียงแค่ทราบว่าหลังจากทำการเปลี่ยนแปลงคุณจำเป็นต้องเรียกใช้sudo apt-get updateก่อนที่จะทำการใด ๆapt-get installเพื่อใช้กระจกที่ใกล้เคียงที่สุดของคุณ
Simon East

2
เกี่ยวข้อง: askubuntu.com/q/319433/11244
จนถึง

23
เคล็ดลับดี แต่ไม่ช่วยเหลือในกรณีของฉัน มันทำงานในตำแหน่งทางภูมิศาสตร์ให้ฉันเซิร์ฟเวอร์ท้องถิ่นซึ่งเป็น waaaayy ช้ากว่าที่ฉันอยู่ ระยะทางเครือข่ายเป็นปัจจัยสำคัญที่นี่ไม่ใช่ระยะทางเชิงพื้นที่
jarondl

1
เสียอยู่ในขณะนี้: bugs.launchpad.net/ubuntu/+source/apt/+bug/1613184
มาราธอน

1
@marathon แก้ไขอย่างน้อยวันที่ 18.04+
Pablo A

49

นี่คือวิธีหนึ่งที่ใช้งานได้ดีโดยใช้ความเก่าnetselectและgrepเวทมนตร์:

แฮ็ค "ค้นหาเซิร์ฟเวอร์ที่ดีที่สุด" ของผู้ที่ติดยาเสพติด!

  • ดาวน์โหลดและdpkg -i netselectสำหรับสถาปัตยกรรมของคุณจากเว็บไซต์ Debian (มันประมาณ 125 KB, ไม่มีการอ้างอิง)
  • ค้นหากระจก Ubuntu ที่เร็วที่สุดจากที่ตั้งของคุณไม่ว่าจะเป็นรุ่นล่าสุดหรืออย่างน้อยหกชั่วโมงด้วย (ฉันจะอธิบายด้านล่างขออภัยไม่ได้แยกเป็นอย่างดีใน 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 ทำให้เป็น verbose เล็ก ๆ น้อย ๆ - คุณต้องการเห็นจุดความคืบหน้าและข้อความที่บอกให้คุณทำมิรเรอร์การแมปกับ IP เดียวกันได้ถูกรวมเข้าด้วยกัน :)
    2. -sN ควบคุมจำนวนกระจกที่คุณต้องการในตอนท้าย (เช่นกระจก 10 อันดับแรก)
    3. -tN คือระยะเวลาที่กระจกแต่ละอันผ่านการทดสอบความเร็ว (ค่าเริ่มต้นคือ 10; ยิ่งจำนวนสูงเท่าไหร่ก็ยิ่งใช้เวลานานขึ้นเท่านั้น แต่จะให้ผลลัพธ์ที่น่าเชื่อถือมากกว่า)
  • นี่คือสิ่งที่ backquotes (อย่าวางเพียงเพื่ออธิบาย)

    wget -q -O- https://launchpad.net/ubuntu/+archivemirrors
    | grep -P -B8 "สถานะ (UP | SIX)"
    | grep -o -P "(f | ht) tp: // [^ \"] * "
    
    1. wgetดึงสถานะกระจกล่าสุดจากhttps://launchpad.net/ubuntu/+archivemirrors
    2. grepสารสกัดแรกที่ทำมิเรอร์ที่ล้าสมัยหรือล้าหลังหกชั่วโมงพร้อมกับบริบท 8 บรรทัดก่อนหน้าซึ่งรวมถึง URL ftp / http จริง
    3. ที่สองgrepแยก URL ftp / http เหล่านี้
  • นี่คือผลลัพธ์ตัวอย่างจากแคลิฟอร์เนียสหรัฐอเมริกา:

    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/
    
    • "อันดับ" เป็นตัวชี้วัดอิสระ ต่ำมักจะดีกว่า
    • หากคุณสงสัยว่าทำไม kernel.org Sweden-EU mirror และ NZ mirror อยู่ในสามอันดับแรกจากCaliforniaดังนั้นฉัน ;-) ความจริงก็คือnetselectว่าไม่ได้เลือก URL ที่เหมาะสมที่สุดที่จะแสดงเมื่อ มิรเรอร์หลาย ๆ แผนที่เป็น IP เดียว หมายเลข 3 หรือที่เรียกว่าnz.archive.ubuntu.com!

9
netselect เลือกมิเรอร์ที่มีค่า udp หรือ icmp latency ต่ำ ไม่จำเป็นต้องเลือกมิเรอร์ที่สามารถเพิ่มแบนด์วิดท์ได้มากขึ้น
Tobu

@pix ฉันอนุมัติการแก้ไขของคุณแล้ว แต่ไม่ใช่การทดแทนคำสั่งที่ส่งผลให้มีการขึ้นบรรทัดใหม่ มันคือการแยกฟิลด์ที่ตามมาซึ่งนำการขึ้นบรรทัดใหม่ออก การทดแทนคำสั่งลบบรรทัดใหม่ที่ต่อท้ายเท่านั้น
muru

25

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 $2  }'

2
sort -gr | head -3จะมีตัวเลือกมากขึ้นแทนที่ที่สิ้นสุด:
Pablo A

1
ปัจจุบัน curl -s http://mirrors.ubuntu.com/mirrors.txtส่งคืนหนึ่งบรรทัดเท่านั้น: http://archive.ubuntu.com/ubuntu/ซึ่งเอาชนะวัตถุประสงค์ของการเลือกในหลาย ๆบรรทัด : - /
Stéphane Gourichon

ใช่ดังนั้นวิธีนี้คือ NG
netawater

ผมพบว่าcurlส่วนหนึ่งของคำตอบนี้เป็นประโยชน์เพราะcurl -r 0-102400 -o /dev/null [server_url]/ls-lR.gzที่[server_url]คือ URL กระจกฐานที่ระบุไว้ในmirrors.txtช่วยให้การเปรียบเทียบความเร็วแรก ~ 100K ของไฟล์ดัชนีจากกระจก
jamesc

การทดสอบนี้ถ่ายโอนความเร็วซึ่งเป็นการปรับปรุงที่ดีกว่า netselect อย่างแน่นอน เพียงดาวน์โหลด 10k จากเซิร์ฟเวอร์แต่ละเครื่องซึ่งอาจไม่ได้เป็นตัวแทนที่ดีของการถ่ายโอนความเร็วคงที่ในการเชื่อมต่อที่รวดเร็วขึ้น เพิ่ม 102400 เพื่อทดสอบด้วยการดาวน์โหลดที่มากขึ้น
Phil Miller

17

นี่คือสคริปต์ Python ที่ฉันเขียนซึ่งค้นหามิเรอร์ที่มีค่าความหน่วงแฝง TCP ต่ำสุด

สคริปต์ยังให้ข้อมูลแบนด์วิดท์และสถานะที่นำมาจากLaunchpadและจะสร้างsources.listไฟล์ใหม่โดยอัตโนมัติหรือใช้มิเรอร์ที่เลือกจากรายการ

ตัวอย่างการใช้งานที่ให้คุณเลือก 5 มิรเรอร์ของสหรัฐฯด้วยเวลาแฝงที่ต่ำที่สุดไปยังเครื่องของคุณ:

$ apt-select --country US -t 5 --choose

5
ฉันต้องการแจ้งให้คุณทราบว่าฉันได้จัดทำแพคเกจเดเบียนพร้อมสคริปต์ของคุณที่พร้อมใช้งานในวิธีที่ง่ายและตรงไปตรงมา: github.com/brodock/apt-select/releases/tag/0.1.0
Gabriel Mazetto

นี่เป็นโซลูชั่นที่สมบูรณ์แบบเพราะฉันได้ลองวิธีอื่นแล้ว เพื่อให้เป็นมิตร noob ฉันได้เขียนโพสต์รายละเอียดวิธีการนี้: blog.kmonsoor.com/…
kmonsoor

นี่เป็นสิ่งที่ยอดเยี่ยมเนื่องจากnetselectไม่มีให้บริการใน Ubuntu รุ่นใหม่กว่า
เทค

โปรดแสดงวิธีใช้ในโพสต์ของคุณ
Jonathan

@ โจนาธานทำ การใช้งานเต็มรูปแบบอยู่READMEที่ลิงค์แรก
John B

5

ฉันพัฒนาสคริปต์ nodejs แบบ ping ที่ใช้ทดสอบเซิร์ฟเวอร์ที่อยู่ใน mirror.ubuntu.com/mirrors.txt และคืนค่าให้เร็วที่สุด:

sudo npm install -g ffum
ffum

โปรดแจ้งให้เราทราบหากคุณพบว่ามีประโยชน์หรือมีข้อเสนอแนะ (=


ffum ไม่ทำงาน: ข้อผิดพลาดในการเชื่อมต่อ
James Fu

มันไม่ทำงาน: เอาท์พุทที่ว่างเปล่า
Juan Simón

git clonerepo และ runnode ffum
Michael

เจ๋งใช้ได้สำหรับฉัน! ฉันมีข้อผิดพลาดที่มันกำลังมองหาโหนดแทน nodejs ... ก็จะเจ๋งที่จะมี verbose ของความเร็วเก็บถาวรทดสอบแต่ละ
tweak2

4

ฉันรู้ว่านี่ไม่ได้ตอบคำถามของ OP โดยตรง แต่มีปุ่มหนึ่งใน Ubuntu / เดสก์ท็อปรุ่น GUI ที่พบกระจกที่ดีที่สุดสำหรับคุณ ดูเหมือนว่าจะทำงานได้ค่อนข้างดีดังนั้นฉันจึงดูเป็นเวลาสั้น ๆ แต่ไม่มีเวลาที่จะติดตาม

เหตุผลที่ฉันนำมาเป็นเพราะฉันคิดว่ามันจะค่อนข้างตรงไปข้างหน้าและใช้งานได้เพื่อให้เป็นอรรถประโยชน์บรรทัดคำสั่ง

หากใครสนใจการทดสอบดูเหมือนจะอยู่ใน:

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

อีกครั้งเท่าที่ฉันได้ แต่ฉันคิดว่าฉันจะออกจากที่นี่ในกรณีที่มีใครต้องการมัน ฉันอาจจะได้รับมันเมื่อฉันมีเวลาอีกเล็กน้อย


ในวันที่ 18.04 สคริปต์นี้จะตรวจพบเมื่อมีการเรียกใช้เป็นแอปพลิเคชัน (เป็นหลัก ) จากเทอร์มินัล .... และเพียงพิมพ์ผลลัพธ์ไปยังเทอร์มินัล ตรวจสอบให้แน่ใจว่าได้ให้เวลาพอที่จะทำให้เสร็จ $ python3 /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py>>[top 5 omitted] and the winner is: ny-mirrors.evowise.com
PatKilg

น่าเศร้าที่มันทำงานไม่ถูกต้อง สคริปต์นี้ใช้เวลา 5 เซิร์ฟเวอร์ที่มี ping ต่ำที่สุดจากนั้นให้คะแนนเซิร์ฟเวอร์ด้วยแบนด์วิดท์โดยการดาวน์โหลดไฟล์ ~ 1M (Packages.gz จากเซิร์ฟเวอร์หลักของคุณ) หากคุณแก้ไขสคริปต์เพื่อเพิ่มไปยังเซิร์ฟเวอร์ 25 แห่งและดาวน์โหลดไฟล์ 500M คุณจะได้รับผลลัพธ์ที่แตกต่างอย่างสิ้นเชิงซึ่งจะถูกต้องในเวลานี้
โจเซลีน

2

คำสั่งที่พบกระจกอย่างรวดเร็ว

บนUbuntu 18.04ฉันได้รับผลลัพธ์ที่ดีจากการทำงาน

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

ที่พิมพ์รายการของมิรเรอร์ที่จัดเรียงตาม "เวลา" (ไม่ได้อธิบาย) จากนั้นฉันใช้มิเรอร์หนึ่งในนั้นซึ่งอยู่ในอันดับสูงสุด

รายละเอียดเพิ่มเติม

สำหรับฉันมันมีประโยชน์ในการทดสอบผลลัพธ์ยอดนิยมสองสามคำสั่งโดยการตั้งค่าให้เป็นมิเรอร์ของฉัน/etc/apt/sources.listแล้วทำ

time sudo apt update

เพื่อดูระยะเวลาที่ใช้ในการดาวน์โหลดรายการแพ็กเกจจากมิเรอร์นั้น ฉันทดสอบข้อเสนอแนะสามอันดับแรกและพวกเขาทั้งหมดเร็ว แต่หนึ่งในนั้นเร็วกว่าสองเท่าในการtime sudo apt updateทดสอบ

นี่คือตัวอย่างผลลัพธ์จากpython /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py:

mirror: es-mirrors.evowise.com - time: 0.183778047562
mirror: it-mirrors.evowise.com - time: 0.18604683876
mirror: la-mirrors.evowise.com - time: 0.192630052567
mirror: ny-mirrors.evowise.com - time: 0.208723068237
mirror: mirrors.accretive-networks.net - time: 0.385910987854
mirror: mirror.team-cymru.org - time: 0.46785402298
mirror: mirrors.psu.ac.th - time: 1.64231991768
and the winner is: es-mirrors.evowise.com

1
น่าเศร้าที่มันทำงานไม่ถูกต้อง สคริปต์นี้ใช้เวลา 5 เซิร์ฟเวอร์ที่มี ping ต่ำที่สุดจากนั้นให้คะแนนเซิร์ฟเวอร์ด้วยแบนด์วิดท์โดยการดาวน์โหลดไฟล์ ~ 1M (Packages.gz จากเซิร์ฟเวอร์หลักของคุณ) หากคุณแก้ไขสคริปต์เพื่อเพิ่มไปยังเซิร์ฟเวอร์ 25 แห่งและดาวน์โหลดไฟล์ 500M คุณจะได้รับผลลัพธ์ที่แตกต่างอย่างสิ้นเชิงซึ่งจะถูกต้องในเวลานี้
โจเซลีน

1

สำหรับบรรทัดคำสั่งคุณสามารถใช้เครื่องมือ Python ชื่อapt-smart

ตัวอย่างการใช้งานที่ให้คุณจัดอันดับมิรเรอร์ภายในประเทศของคุณ (ตรวจจับอัตโนมัติ):

$ apt-smart -l

ด้วย-lหรือ--list-mirrorsคุณจะได้รับ (ตัวอย่างผลลัพธ์จากเซิร์ฟเวอร์ Travis CI US):

---------------------------------------------------------------------------------------------------------
| Rank | Mirror URL                            | Available? | Updating? | Last updated    | Bandwidth   |
---------------------------------------------------------------------------------------------------------
|    1 | http://mirrors.gigenet.com/ubuntua... | Yes        | No        | Up to date      | 1.73 MB/s   |
|    2 | http://mirror.genesisadaptive.com/... | Yes        | No        | Up to date      | 1.68 MB/s   |
|    3 | http://ubuntu.mirrors.tds.net/pub/... | Yes        | No        | Up to date      | 1.4 MB/s    |
|    4 | http://repos.forethought.net/ubuntu   | Yes        | No        | Up to date      | 1.35 MB/s   |
|    5 | http://repo.miserver.it.umich.edu/... | Yes        | No        | Up to date      | 937.62 KB/s |
...
|   75 | http://mirror.cc.vt.edu/pub2/ubuntu   | Yes        | No        | 1 day behind    | 659.67 KB/s |
|   76 | http://mirror.atlantic.net/ubuntu     | Yes        | No        | 2 days behind   | 351.26 KB/s |
|   77 | http://mirror.lstn.net/ubuntu         | Yes        | No        | 4 days behind   | 806.81 KB/s |
|   78 | http://mirrors.usinternet.com/ubun... | Yes        | No        | 4 weeks behind  | 514.31 KB/s |
|   79 | http://mirrors.arpnetworks.com/Ubuntu | Yes        | No        | 19 weeks behind | 418.94 KB/s |
|   80 | http://mirrors.ocf.berkeley.edu/ub... | Yes        | Yes       | Up to date      | 446.07 KB/s |
---------------------------------------------------------------------------------------------------------
Full URLs which are too long to be shown in above table:
1: http://mirrors.gigenet.com/ubuntuarchive
2: http://mirror.genesisadaptive.com/ubuntu
3: http://ubuntu.mirrors.tds.net/pub/ubuntu
5: http://repo.miserver.it.umich.edu/ubuntu
...
78: http://mirrors.usinternet.com/ubuntu/archive
80: http://mirrors.ocf.berkeley.edu/ubuntu

แน่นอนapt-smartสามารถเปลี่ยนแหล่งรายการของคุณได้หากคุณต้องการ:

$ apt-smart -a

ด้วย-aหรือ--auto-change-mirrorเพื่อค้นหามิรเรอร์ที่มีอยู่ให้จัดอันดับมิร์เรอร์ตามความเร็วการเชื่อมต่อและสถานะการอัปเดตและอัปเดต /etc/apt/sources.list เพื่อใช้มิรเรอร์ที่ดีที่สุด

ด้วย-cหรือ--change-mirror MIRROR_URLเพื่ออัพเดต /etc/apt/sources.list เพื่อใช้ MIRROR_URL ที่กำหนด

เปรียบเทียบกับเครื่องมืออื่น ๆ :

  • apt-smart ค้นหาตำแหน่งที่คุณอยู่โดยอัตโนมัติดังนั้นคุณไม่จำเป็นต้องระบุประเทศเมื่อคุณเดินทางไปต่างประเทศ
  • apt-smartดาวน์โหลด HTTP จริงจากมิเรอร์แต่ละตัวเพื่อให้ได้ผลลัพธ์ที่แม่นยำยิ่งขึ้น (แบนด์วิดท์ & สถานะ) และสนับสนุนพร็อกซี HTTP แทนที่จะใช้pingและอาศัยข้อมูลที่ไม่ถูกต้องของ launchpad
  • apt-smart กำลังได้รับการบำรุงรักษาในขณะที่เครื่องมืออื่น ๆ ส่วนใหญ่ปล่อยให้ปัญหาไม่ได้เกิดขึ้นเป็นเวลานาน

คุณสามารถติดตั้งได้อย่างง่ายดายapt-smartผ่านทางpipสำหรับ copy'n'paste รายละเอียดการติดตั้งคำสั่งและประเพณีโปรดดูโครงการ Readme


0

ฉันใช้สิ่งต่อไปนี้เพื่อเลือกมิเรอร์อัตโนมัติ (และปิดใช้งาน 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

0

หากคุณต้องการให้ยูทิลิตี้ทำสิ่งนี้คุณสามารถใช้ยูทิลิตีเช่นสคริปต์ทุบตีง่ายๆดังต่อไปนี้ สิ่งนี้อาจมีประโยชน์หากคุณต้องการใช้ยูทิลิตี้โดยไม่ต้องใช้ 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

0

คำตอบอื่น ๆ รวมถึงคำตอบที่ยอมรับจะไม่ถูกต้องอีกต่อไป (สำหรับ Ubuntu 11.04 และใหม่กว่า) เพราะพวกเขาแนะนำแพ็คเกจ Debian เช่นnetselect-aptและapt-spyที่ไม่ได้ทำงานกับ Ubuntu

มีสองที่แตกต่างกันการทำงานที่ตอบคำถามด้านล่างนี้:

  1. ใช้apt-get 's mirror:วิธี

    วิธีนี้ขอให้เซิร์ฟเวอร์ Ubuntu สำหรับรายการมิเรอร์ใกล้คุณตาม IP ของคุณและเลือกหนึ่งในนั้น ทางเลือกที่ง่ายที่สุดโดยมีข้อเสียเล็กน้อยที่บางครั้งกระจกที่ใกล้เคียงที่สุดอาจไม่ใช่วิธีที่เร็วที่สุด

  2. บรรทัดคำสั่ง foo โดยใช้ netselect
    แสดงวิธีการใช้เครื่องมือnetselectเพื่อค้นหาเซิร์ฟเวอร์ที่อัปเดตล่าสุดเร็วที่สุดจากคุณ - เครือข่ายที่ฉลาดไม่ใช่ในเชิงภูมิศาสตร์ ใช้sedเพื่อแทนที่กระจกมองsources.listข้าง

ใช้sedเพื่อแทนที่กระจกมองข้างsources.list

เนื่องจากบางแหล่งใช้โฟลเดอร์เพิ่มเติมเป็นส่วนหนึ่งของพา ธ ของมันอาจเป็นการดีกว่าถ้าใช้ไวยากรณ์ตัวคั่นทางเลือก

sudo sed -i 's%us.archive.ubuntu.com%mirrors.gigenet.com/ubuntuarchive/%' /etc/apt/sources.list

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.