Chcę zaktualizować mój sources.list
plik najszybszym serwerem z wiersza polecenia w nowej instalacji serwera Ubuntu. Wiem, że jest to banalnie łatwe z GUI, ale wydaje się, że nie ma prostego sposobu, aby to zrobić z wiersza poleceń?
command-line
apt
repository
Evan
źródło
źródło
#
znaki ukośnikami (/
). W przeciwnym razie dostajęsed: -e expression #1, char 53: unterminated
polecenie.Odpowiedzi:
Wygląda na to, że nie jest uwzględniony w nowszym Ubuntu z powodu problemów z bezpieczeństwem: patrz: Raport o błędzie
Ale .. Zwykle po prostu używam polecenia ping, aby sprawdzić szybkość połączenia z jakąś lokalizacją. Ilość chmielu i opóźnienie.
źródło
Nie trzeba robić żadnych poszukiwania już - jak ajmitch został wyjaśniony , można użyć
deb mirror
, aby mieć najlepsze lusterko automatycznie zbierane dla Ciebie.źródło
sudo apt-get update
przedapt-get install
użyciem, aby użyć najbliższego lustra.Oto jeden ze sposobów, który zawsze będzie działał, wykorzystując stare dobre
netselect
i trochęgrep
magii:Hack „znajdź najlepszy serwer” uzależnionego od terminalu!
dpkg -i
netselect
dla swojej architektury ze strony Debiana. (około 125 KB, brak zależności)Znajdź najszybsze serwery lustrzane Ubuntu z Twojej lokalizacji, albo aktualne, albo co najwyżej sześć godzin temu (wyjaśnię to poniżej, przepraszam, że nie dzieli się ładnie w Markdown)
netselect
:-v
sprawia, że jest trochę gadatliwy - chcesz zobaczyć kropki postępu i wiadomości informujące, że różne lustra mapujące na ten sam adres IP zostały scalone :)-sN
kontroluje liczbę kopii lustrzanych na końcu (np. 10 najlepszych kopii)-tN
określa, jak długo każde lustro jest testowane pod względem prędkości (domyślnie jest to 10; im wyższa liczba, tym dłużej trwa, ale bardziej wiarygodne wyniki).To jest backquotes (nie wklejaj, tylko dla wyjaśnienia)
wget
pobiera najnowszy status kopii lustrzanej z https://launchpad.net/ubuntu/+archivemirrors .grep
wyodrębnia lustra, które są aktualne lub sześć godzin za nimi, wraz z 8 liniami poprzedniego kontekstu, który zawiera rzeczywiste adresy URL ftp / httpgrep
wyodrębnia te adresy URL ftp / httpOto przykładowy wynik z Kalifornii, USA:
netselect
nie zawsze wybiera się najbardziej odpowiedni adres URL do wyświetlenia, gdy wiele kopii lustrzanych mapowanych na pojedynczy adres IP; numer 3 jest również znany jakonz.archive.ubuntu.com
!źródło
Oneliner, który wybiera najlepszy (według prędkości pobierania) serwer lustrzany na podstawie mirrors.ubuntu.com dla twojego adresu IP.
źródło
sort -gr | head -3
.curl -s http://mirrors.ubuntu.com/mirrors.txt
zwraca tylko jedną linię:http://archive.ubuntu.com/ubuntu/
co przeczy celowi wyboru spośród kilku. : - /curl
część tej odpowiedzi jest pomocna, ponieważcurl -r 0-102400 -o /dev/null [server_url]/ls-lR.gz
gdzie[server_url]
jest wymieniony podstawowy adres URLmirrors.txt
kopii lustrzanej, pozwala na porównanie szybkości pierwszego ~ 100 KB pliku indeksu z kopii dystrybucyjnej.Oto napisany przeze mnie skrypt w języku Python , który wyszukuje kopie lustrzane o najniższym opóźnieniu TCP.
Skrypt zapewnia również dane o przepustowości i stanie pobrane ze startera i automatycznie wygeneruje nowy
sources.list
plik lub przy użyciu kopii lustrzanej wybranej z listy.Przykład użycia, który umożliwia wybranie jednego z 5 amerykańskich serwerów lustrzanych o najniższym opóźnieniu względem komputera:
źródło
netselect
nie jest dostępne w nowszych wersjach UbuntuREADME
w pierwszym linku.Opracowałem prosty skrypt nodejs oparty na pingach, który testuje serwery wymienione na mirrors.ubuntu.com/mirrors.txt i zwraca najszybszy:
Daj mi znać, jeśli uznasz to za przydatne lub masz jakieś sugestie (=
źródło
git clone
repozytorium i uruchomnode ffum
Wiem, że to nie odpowiada bezpośrednio na pytanie OP, ale w wersji Ubuntu na pulpicie / GUI znajduje się przycisk, który znajdzie dla ciebie najlepsze lustro. Wydawało się, że działa całkiem dobrze, więc przyjrzałem się temu krótko, ale nie miałem czasu na śledzenie.
Powodem, dla którego o tym wspomniałem, jest to, że myślę, że przekształcenie go w narzędzie wiersza poleceń byłoby całkiem proste i użyteczne.
Jeśli ktoś jest zainteresowany, test wydaje się znajdować w:
Znów, to o tyle, o ile mi się udało, ale pomyślałem, że zostawię to tutaj na wypadek, gdyby ktoś tego chciał. Pewnie go odzyskam, kiedy będę miał trochę więcej czasu.
źródło
$ python3 /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
>>[top 5 omitted] and the winner is: ny-mirrors.evowise.com
Polecenie, które znajduje szybkie lustra
Na Ubuntu 18.04 uzyskałem dobre wyniki, uruchamiając
To wypisuje listę serwerów lustrzanych uporządkowanych według „czasu” (nie wyjaśniono), a następnie użyłem jednego z serwerów lustrzanych, które uzyskały najwyższą pozycję.
Więcej szczegółów
Dla mnie użyteczne było przetestowanie kilku najlepszych wyników uzyskanych przez to polecenie, ustawiając je jako moje lustro,
/etc/apt/sources.list
a następnie wykonującaby zobaczyć, ile czasu zajęło pobranie listy pakietów z tego serwera lustrzanego. Testowałem trzy najlepsze sugestie i wszystkie były szybkie, ale jedna z nich była dwa razy szybsza niż pozostałe dwie w
time sudo apt update
teście.Oto przykładowy wynik z
python /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
:źródło
W wierszu polecenia można użyć narzędzia Python o nazwie apt-smart
Przykład użycia, który pozwala wyświetlić listę kopii lustrzanych w twoim kraju (automatycznie wykrywa):
Za pomocą
-l
, lub--list-mirrors
otrzymasz (przykład danych wyjściowych z serwera Travis CI US):Oczywiście,
apt-smart
możesz również zmienić swój source.list, jeśli chcesz:Za pomocą
-a
lub,--auto-change-mirror
aby odkryć dostępne kopie, uszereguj je według prędkości połączenia i statusu aktualizacji oraz zaktualizuj /etc/apt/sources.list, aby użyć najlepszego dostępnego kopii.Za pomocą
-c
lub,--change-mirror MIRROR_URL
aby zaktualizować /etc/apt/sources.list, aby użyć podanego MIRROR_URL.W porównaniu z innymi narzędziami:
apt-smart
automatycznie znajdzie miejsce, w którym się znajdujesz, więc nie musisz określać kraju podczas podróży zagranicznej.apt-smart
wykonuje rzeczywiste pobieranie HTTP z każdego serwera lustrzanego, aby uzyskać dokładniejsze wyniki (przepustowość i status) i obsługuje proxy HTTP, zamiast używaćping
niedokładnych danych startera i polegać na nich.apt-smart
jest utrzymywany, podczas gdy większość innych narzędzi pozostawia problemy przez długi czas nierozwiązane.Możesz łatwo zainstalować
apt-smart
za pośrednictwempip
, aby uzyskać szczegółowe polecenia i sposoby instalacji kopiuj i wklej, zobacz Projekt Readme .źródło
Używam następujących do automatycznego wyboru serwerów lustrzanych (i wyłączam deb-src)
źródło
Jeśli chcesz to zrobić, możesz zaimplementować takie narzędzie jako prosty skrypt bash, taki jak poniżej. Może to być przydatne, jeśli chcesz korzystać z narzędzia bez potrzeby pip / nodejs.
źródło
Inne odpowiedzi, w tym odpowiedź zaakceptowana, nie są już ważne (dla Ubuntu 11.04 i nowszych), ponieważ zalecały pakiety Debiana takie jak
netselect-apt
i,apt-spy
które nie działają z Ubuntu.Istnieją dwie różne robocze odpowiedzi na to pytanie poniżej:
mirror:
metodyPokazuje, jak korzystać z narzędzia netselect , aby znaleźć najszybsze ostatnio aktualizowane serwery - pod względem sieci, a nie geograficznie. Służy
sed
do zastępowania serwerów lustrzanychsources.list
.Służy
sed
do zastępowania serwerów lustrzanychsources.list
Ponieważ niektóre źródła używają folderów dodawania jako części ich ścieżki, lepszym rozwiązaniem może być użycie alternatywnej składni separatora.
źródło
Najłatwiejszym i najskuteczniejszym sposobem na uzyskanie najszybszego kopii lustrzanej jest użycie apt apt
mirror://
, patrzhttps://mvogt.wordpress.com/2011/03/21/the-apt-mirror-method/
źródło