как автоматически выбрать быстрое зеркало для apt-get

как автоматически выбрать быстрое зеркало для apt-get

Есть ли какой-либо плагин для 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 для поиска самого быстрого/ближайшего из них.

Связанный контент