
Есть ли какой-либо плагин для apt-get, позволяющий выбрать быстрое зеркало, как в YUM?плагин fastermirror Самый быстрый плагин зеркала предназначен для использования в конфигурациях репозитория, где у вас есть более 1 зеркала в конфигурации репозитория. Он устанавливает соединение с каждым зеркалом, засекает время соединения, а затем сортирует зеркала от самых быстрых к самым медленным для использования yum.
Причина: Я добавил несколько зеркал (внутрикорпоративной сети и в Интернете) в файл конфигурации apt и хочу, чтобы apt-get использовал зеркало внутренней сети, когда я в офисе, и зеркало интернета дома.
решение1
В качестве обходного пути вы можете написать скрипт, который проверяет, к какой сети вы подключены, и соответствующим образом изменяет /etc/apt/sources.list. Что-то вроде скрипта ниже, просто отредактируйте его в соответствии со своими потребностями.
Первый,сделайте резервную копию вашего/etc/apt/sources.list
. Затем создайте два файла sources.list, один для дома и один для офиса. Предположим, они называются sources.office.list
и sources.home.list
. Сохраните оба в /etc/apt/
.
Теперь отредактируйте следующий скрипт в соответствии со своими потребностями, сохраните его (в этом примере я предполагаю, что вы сохраните его как ~/bin/change_sources.sh
) и сделайте его исполняемым, выполнив следующую команду:
$ chmod +x ~/bin/change_sources.sh
Сценарий:
#!/bin/bash
ip=ifconfig | grep Bcast | cut -d " " -f 12
## Set this for your office IP
if [ $ip == "XXX.XXX.XXX.XXX" ]
then
cp /etc/apt/sources.office.list /etc/apt/sources.list
else
cp /etc/apt/sources.home.list /etc/apt/sources.list
fi
Теперь отредактируйте файл etc/rc.local
и добавьте эту строку в конец файла перед exit(0)
:
/home/youruser/bin/change_sources.sh
Разумеется, измените указанный выше путь так, чтобы он соответствовал пути к только что созданному вами скрипту.
При следующей перезагрузке скрипт должен запуститься и автоматически выбрать правильный файл sources.list.
EDIT: Если вы хотите иметьобарепозитории доступны в любое время, и загрузите данный пакет из самого быстрого, если он есть, вам просто нужно изменить порядок репозиториев в sources.list. Следуйте процедуре, которую я предложил выше, просто сделайте так, чтобы соответствующие строки в /etc/apt/sources.office.list были такими:
deb http://fastest.mirror.for.office
deb http://fastest.mirror.for.home
и в /etc/apt/sources.home.list вот так:
deb http://fastest.mirror.for.home
deb http://fastest.mirror.for.office
Если пакет существуетс той же версиейв обоих репозиториях apt выполнит загрузку из первого.
ПРИМЕЧАНИЕ 1: Если версии разные, apt получит самую новую версию независимо от порядка расположения репозиториев.
ПРИМЕЧАНИЕ 2: Это не проверяет скорость загрузки репозиториев. Вам нужно сделать это самостоятельно. Чтобы найти самое быстрое зеркало, вы можете попробовать использовать netselect-apt:
sudo apt-get install netselect-apt
Пакет netselect-apt:
тестер скорости для выбора быстрого зеркала Debian
Этот пакет содержит утилиту, которая может выбрать лучшее зеркало Debian, загрузив полный список зеркал и используя netselect для поиска самого быстрого/ближайшего из них.