2

Имеется ли какой-либо плагин для apt-get для выбора быстрого зеркала, так же как и плагин YAM fasttestmirror Самый быстрый плагин mirror предназначен для использования в конфигурациях репозитория, где в конфигурации репо имеется более 1 зеркала. Он устанавливает соединение с каждым зеркалом, синхронизирует соединение, а затем сортирует зеркала по быстродействию или замедлению для использования yum.

Причина: я добавил несколько (интрасеть и интернет) зеркал в конфигурационный файл apt, и я хочу, чтобы apt-get использовал зеркало интрасети, когда я нахожусь в офисе, и интернет-зеркало дома.

1 ответ1

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.


РЕДАКТИРОВАТЬ: Если вы хотите, чтобы оба репозитория были доступны в любое время, и загружать данный пакет из самого быстрого, если он есть, вам просто нужно изменить порядок репо в 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, чтобы найти самое быстрое / ближайшее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .