jak automatycznie wybrać szybkie dublowanie dla apt-get

3

Czy jest dostępna jakakolwiek wtyczka do apt-get, aby wybrać szybkie dublowanie, tak jak najszybsza wtyczka YUM YUM Najszybsza wtyczka dublowania jest zaprojektowana do użytku w konfiguracjach repozytoriów, w których masz więcej niż 1 dublowanie w konfiguracji repo. Nawiązuje połączenie z każdym lustrem, mierzy czas połączenia, a następnie sortuje lustra od najszybszego do najwolniejszego do użycia przez yum.

Powód: Dodałem kilka kopii lustrzanych (intranet i Internet) do pliku konfiguracyjnego apt i chcę, aby apt-get używało kopii lustrzanej intranet, gdy jestem w biurze, i kopii lustrzanej w domu w domu.

Przetrząsać
źródło

Odpowiedzi:

1

Aby obejść ten problem, możesz napisać skrypt, który sprawdza, do której sieci jesteś podłączony, i odpowiednio zmienia /etc/apt/sources.list. Coś jak poniższy skrypt, po prostu edytuj go, aby dopasować do swoich potrzeb.

Najpierw wykonaj kopię zapasową swojego/etc/apt/sources.list . Następnie utwórz dwa pliki sources.list, jeden dla domu i jeden dla biura. Załóżmy, że są nazywani sources.office.listi sources.home.list. Zapisz oba w /etc/apt/.

Teraz edytuj poniższy skrypt, aby dostosować go do swoich potrzeb, zapisz go (w tym przykładzie zakładam, że zapiszesz go jako ~/bin/change_sources.sh) i uczyń go wykonywalnym, uruchamiając to polecenie:

$ chmod +x ~/bin/change_sources.sh

Scenariusz:

#!/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

Teraz edytuj plik etc/rc.locali dodaj ten wiersz na końcu pliku, zanim exit(0):

/home/youruser/bin/change_sources.sh

Oczywiście zmień ścieżkę powyżej, aby odzwierciedlić ścieżkę do właśnie utworzonego skryptu.

Przy następnym uruchomieniu komputera skrypt powinien zostać uruchomiony i automatycznie wybrać prawidłowy plik sources.list.


EDYCJA: Jeśli chcesz mieć dostęp do obu repozytoriów przez cały czas i pobrać dany pakiet z najszybszego, jeśli jest obecny, wystarczy zmienić kolejność repozytoriów w pliku sources.list. Postępuj zgodnie z procedurą, którą zasugerowałem powyżej, po prostu spraw, aby odpowiednie wiersze w pliku /etc/apt/sources.office.list wyglądały tak:

deb http://fastest.mirror.for.office
deb http://fastest.mirror.for.home

oraz w /etc/apt/sources.home.list w następujący sposób:

deb http://fastest.mirror.for.home
deb http://fastest.mirror.for.office

Jeśli pakiet istnieje z tą samą wersją w obu repozytoriach, apt pobierze od pierwszego.

UWAGA 1: Jeśli wersje są różne, apt otrzyma najnowszą wersję, niezależnie od kolejności, w jakiej znajdują się repozytoria.

UWAGA 2: Nie sprawdza to prędkości pobierania repozytoriów. Musisz to zrobić sam. Aby znaleźć najszybszy serwer lustrzany, możesz spróbować użyć netselect-apt:

sudo apt-get install netselect-apt

Pakiet netselect-apt:

tester prędkości do wybierania szybkiego lustra Debiana

Ten pakiet zawiera narzędzie, które może wybrać najlepsze lustro Debiana, pobierając pełną listę kopii lustrzanych i używając netselect do znalezienia najszybszego / najbliższego.

terdon
źródło
Dzięki bardzo terdon. Wyeksportowałem zmienną http.proxy i lustro internetowe i intranetowe dostępne w biurze, nadal chcę zachować lustro internetowe na liście źródeł, na wypadek, gdyby lokalne lustro nie chciało pakietu. czy istnieje jakieś rozwiązanie do testowania szybkości łączności i wybierania postu, tak jak zrobił to najszybszy błąd?
Ted,
@Ted Zaktualizowałem odpowiedź, to powinno być to, czego potrzebujesz.
terdon