Я хочу обновить файл sources.list с помощью самого быстрого сервера из командной строки в новой установке Ubuntu Server. Я знаю, что это просто трилогично с графическим интерфейсом, но, кажется, нет простого способа сделать это из командной строки?
Oneliner, который выбирает лучшее (по скорости загрузки) зеркало на основе mirror.ubuntu.com для вашего 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 }'
Вот один из способов, который всегда будет работать, используя старые добрые netselect
и некоторые grep
магии:
dpkg -i
netselect
для своей архитектуры с сайта Debian. (это около 125 КБ, без зависимостей) 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
: -v
делает это немного подробным - вы хотите видеть точки прогресса и сообщения, сообщающие о том, что различные зеркала, сопоставляемые с одним и тем же IP-адресом, были объединены :) -sN
контролирует, сколько зеркал вам нужно в конце (например, 10 лучших зеркал) -tN
как долго каждое зеркало проверяется на скорости (по умолчанию 10, чем больше число, тем дольше оно требуется, но и более надежные результаты). wget -q -O- https://launchpad.net/ubuntu/+archivemirrors | grep -P -B8 "status(UP|SIX)" | grep -o -P "(f|ht)tp://[^\"]*"
wget
отображает последний статус зеркала с https://launchpad.net/ubuntu/+arch ivemirrors . Первые grep
извлекают зеркала, которые обновлены или находятся в шести часах позади, а также 8 строк предыдущего контекста, который включает фактические URL ftp / http. Второй 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 и зеркало NZ находятся в тройке лучших из California , ну, я тоже ;-) Правда в том, что
netselect
t всегда выбирайте наиболее подходящий URL для отображения, когда несколько зеркал сопоставляются с одним IP; номер 3 также известен как nz.archive.ubuntu.com
! приятная терминальная программа здесь:
# 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
Самый простой и эффективный способ получить самое быстрое зеркало - использовать источник apt mirror://
, см.
https://mvogt.wordpress.com/2011/03/21/ -кв-зеркально метод /
Вам больше не нужно заниматься поиском - поскольку ajmitch объяснил , вы можете использовать deb mirror
для автоматического выбора лучшего зеркала.
apt-get теперь поддерживает метод '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
на соответствующее имя.
Я знаю, что это напрямую не отвечает на вопрос OP, но есть кнопка в версии Ubuntu на рабочем столе / графическом интерфейсе, которая находит лучшее зеркало для вас. Это, казалось, работало очень хорошо, поэтому я вкратце рассмотрел его, но не успел следить.
Причина, по которой я это вызвала, состоит в том, что я думаю, что это было бы довольно прямолинейно и пригодно для использования превратите его в утилиту командной строки.
Если кому-то интересно, тест, похоже, находится в:
/usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
Опять же, это примерно так, как я получил, но я Я решил оставить это здесь, если кто-то захочет этого. Я, вероятно, заберу его, когда у меня еще немного времени.
Если вы хотите использовать эту утилиту, вы можете реализовать такую утилиту, как простой сценарий bash, например, следующий. Это может быть полезно, если вы хотите использовать утилиту, не требуя 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
Я использую следующее для автоматического выбора зеркал (и отключить 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
Вот скрипт Python , который я написал, находит зеркала с наименьшей задержкой TCP.
Скрипт также предоставляет данные о пропускной способности и состоянии, взятые из пусковой панели и автоматически сгенерирует новый файл sources.list
или используя зеркало, выбранное из списка.
Другие ответы, включая принятый ответ, более недействительны (для Ubuntu 11.04 и новее), потому что они рекомендовали пакеты Debian, такие как netselect-apt
и apt-spy
, которые не работают с Ubuntu.
Ниже приведены два разных рабочих ответов:
mirror:
Этот метод запрашивает сервер Ubuntu для списка зеркал рядом с вами на основе вашего IP-адреса и выбирает один из них. Самая легкая альтернатива, с незначительным недостатком, что иногда самое близкое зеркало может быть не самым быстрым. sed
для замены зеркал в sources.list
. sed
для замены зеркал в sources.list
. Поскольку некоторые источники используют дополнительные папки как часть их пути было бы лучше использовать синтаксис альтернативного разделителя.
sudo sed -i 's%us.archive.ubuntu.com%mirrors.gigenet.com/ubuntuarchive/%' /etc/apt/sources.list
Oneliner, который выбирает лучшее (по скорости загрузки) зеркало на основе mirror.ubuntu.com для вашего 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 }'
Вот один из способов, который всегда будет работать, используя старые добрые netselect
и некоторые grep
магии:
dpkg -i
netselect
для своей архитектуры с сайта Debian. (это около 125 КБ, без зависимостей) 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
: -v
делает это немного подробным - вы хотите видеть точки прогресса и сообщения, сообщающие о том, что различные зеркала, сопоставляемые с одним и тем же IP-адресом, были объединены :) -sN
контролирует, сколько зеркал вам нужно в конце (например, 10 лучших зеркал) -tN
как долго каждое зеркало проверяется на скорости (по умолчанию 10, чем больше число, тем дольше оно требуется, но и более надежные результаты). wget -q -O- https://launchpad.net/ubuntu/+archivemirrors | grep -P -B8 "status(UP|SIX)" | grep -o -P "(f|ht)tp://[^\"]*"
wget
отображает последний статус зеркала с https://launchpad.net/ubuntu/+arch ivemirrors . Первые grep
извлекают зеркала, которые обновлены или находятся в шести часах позади, а также 8 строк предыдущего контекста, который включает фактические URL ftp / http. Второй 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 и зеркало NZ находятся в тройке лучших из California , ну, я тоже ;-) Правда в том, что
netselect
t всегда выбирайте наиболее подходящий URL для отображения, когда несколько зеркал сопоставляются с одним IP; номер 3 также известен как nz.archive.ubuntu.com
! приятная терминальная программа здесь:
# 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
Самый простой и эффективный способ получить самое быстрое зеркало - использовать источник apt mirror://
, см.
https://mvogt.wordpress.com/2011/03/21/ -кв-зеркально метод /
Вам больше не нужно заниматься поиском - поскольку ajmitch объяснил , вы можете использовать deb mirror
для автоматического выбора лучшего зеркала.
apt-get теперь поддерживает метод '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
на соответствующее имя.
Я знаю, что это напрямую не отвечает на вопрос OP, но есть кнопка в версии Ubuntu на рабочем столе / графическом интерфейсе, которая находит лучшее зеркало для вас. Это, казалось, сработало очень хорошо, поэтому я вкратце рассмотрел его, но не успел следить.
Причина, по которой я это вызвала, состоит в том, что я думаю, что это будет довольно прямолинейно и полезно превратите его в утилиту командной строки.
Если кому-то интересно, тест, похоже, находится в:
/usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
Опять же, это примерно так, как я получил, но я Я решил оставить это здесь, если кто-то захочет этого. Я, вероятно, заберу его, когда у меня еще немного времени.
Если вы хотите использовать эту утилиту, вы можете реализовать такую утилиту, как простой сценарий bash, например, следующий. Это может быть полезно, если вы хотите использовать утилиту, не требуя 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
Я использую следующее для автоматического выбора зеркал (и отключить 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
Вот скрипт Python , который я написал, находит зеркала с наименьшей задержкой TCP.
Скрипт также предоставляет данные о пропускной способности и состоянии, взятые из пусковой панели и автоматически сгенерирует новый файл sources.list
или используя зеркало, выбранное из списка.
Я разработал простой скрипт nodejs на основе ping, который проверяет серверы, перечисленные на mirror.ubuntu.com/mirrors.txt, и возвращает самый быстрый из них:
sudo npm install -g ffum
ffum
Пожалуйста, дайте мне знать, если вы найдете это полезно или имеет какие-либо предложения (=
Другие ответы, включая принятый ответ, более недействительны (для Ubuntu 11.04 и новее), потому что они рекомендовали пакеты Debian, такие как netselect-apt
и apt-spy
, которые не работают с Ubuntu.
Ниже приведены два разных рабочих ответов:
mirror:
Этот метод запрашивает сервер Ubuntu для списка зеркал рядом с вами на основе вашего IP-адреса и выбирает один из них. Самая легкая альтернатива, с незначительным недостатком, что иногда самое близкое зеркало может быть не самым быстрым. sed
для замены зеркал в sources.list
. sed
для замены зеркал в sources.list
. Поскольку некоторые источники используют дополнительные папки как часть их пути было бы лучше использовать синтаксис альтернативного разделителя.
sudo sed -i 's%us.archive.ubuntu.com%mirrors.gigenet.com/ubuntuarchive/%' /etc/apt/sources.list
Oneliner, который выбирает лучшее (по скорости загрузки) зеркало на основе mirror.ubuntu.com для вашего 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 }'
Вот один из способов, который всегда будет работать, используя старые добрые netselect
и некоторые grep
магии:
dpkg -i
netselect
для своей архитектуры с сайта Debian. (это около 125 КБ, без зависимостей) 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
: -v
делает это немного подробным - вы хотите видеть точки прогресса и сообщения, сообщающие о том, что различные зеркала, сопоставляемые с одним и тем же IP-адресом, были объединены :) -sN
контролирует, сколько зеркал вам нужно в конце (например, 10 лучших зеркал) -tN
как долго каждое зеркало проверяется на скорости (по умолчанию 10, чем больше число, тем дольше оно требуется, но и более надежные результаты). wget -q -O- https://launchpad.net/ubuntu/+archivemirrors | grep -P -B8 "status(UP|SIX)" | grep -o -P "(f|ht)tp://[^\"]*"
wget
отображает последний статус зеркала с https://launchpad.net/ubuntu/+arch ivemirrors . Первые grep
извлекают зеркала, которые обновлены или находятся в шести часах позади, а также 8 строк предыдущего контекста, который включает фактические URL ftp / http. Второй 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 и зеркало NZ находятся в тройке лучших из California , ну, я тоже ;-) Правда в том, что
netselect
t всегда выбирайте наиболее подходящий URL для отображения, когда несколько зеркал сопоставляются с одним IP; номер 3 также известен как nz.archive.ubuntu.com
! приятная терминальная программа здесь:
# 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
Самый простой и эффективный способ получить самое быстрое зеркало - использовать источник apt mirror://
, см.
https://mvogt.wordpress.com/2011/03/21/ -кв-зеркально метод /
Вам больше не нужно заниматься поиском - поскольку ajmitch объяснил , вы можете использовать deb mirror
для автоматического выбора лучшего зеркала.
apt-get теперь поддерживает метод '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
на соответствующее имя.
Я знаю, что это напрямую не отвечает на вопрос OP, но есть кнопка в версии Ubuntu на рабочем столе / графическом интерфейсе, которая находит лучшее зеркало для вас. Это, казалось, работало очень хорошо, поэтому я вкратце рассмотрел его, но не успел следить.
Причина, по которой я это вызвала, состоит в том, что я думаю, что это было бы довольно прямолинейно и пригодно для использования превратите его в утилиту командной строки.
Если кому-то интересно, тест, похоже, находится в:
/usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
Опять же, это примерно так, как я получил, но я Я решил оставить это здесь, если кто-то захочет этого. Я, вероятно, заберу его, когда у меня еще немного времени.
Если вы хотите использовать эту утилиту, вы можете реализовать такую утилиту, как простой сценарий bash, например, следующий. Это может быть полезно, если вы хотите использовать утилиту, не требуя 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
Вот скрипт Python , который я написал, находит зеркала с наименьшей задержкой TCP.
Скрипт также предоставляет данные о пропускной способности и состоянии, взятые из пусковой панели и автоматически сгенерирует новый файл sources.list
или используя зеркало, выбранное из списка.
Я разработал простой скрипт nodejs на основе ping, который проверяет серверы, перечисленные на mirror.ubuntu.com/mirrors.txt, и возвращает самый быстрый из них:
sudo npm install -g ffum
ffum
Пожалуйста, дайте мне знать, если вы найдете это полезно или имеет какие-либо предложения (=