Ich möchte meine sources.list
Datei mit dem schnellsten Server über die Befehlszeile in einer neuen Ubuntu Server-Installation aktualisieren . Ich weiß, dass dies mit der GUI trivial einfach ist, aber es scheint keine einfache Möglichkeit zu geben, dies von der Befehlszeile aus zu tun.
command-line
apt
repository
Evan
quelle
quelle
#
Zeichen durch Schrägstriche (/
) ersetzen . Ansonsten habe ichsed: -e expression #1, char 53: unterminated
s "Kommando" bekommen.Antworten:
Nicht in neueren Ubuntu enthalten aufgrund secturity Probleme scheint es: siehe: Bugreport
Aber ich benutze normalerweise nur Ping , um die Geschwindigkeit einer Verbindung zu einem bestimmten Ort herauszufinden. Hopfenanzahl und Latenz.
quelle
Sie müssen nicht mehr jede Suche tun - wie ajmitch hat erklärt , können Sie
deb mirror
die beste Spiegel automatisch für Sie ausgewählt haben.quelle
sudo apt-get update
bevorapt-get install
Sie die nächste Spiegelung verwenden können.Hier ist eine Möglichkeit, die immer funktioniert und gute alte
netselect
und etwasgrep
Magie verwendet:Der "Find Best Server" -Hack des Terminal-Süchtigen!
dpkg -i
netselect
für Ihre Architektur von der Debian-Website herunter. (es sind ungefähr 125 KB, keine Abhängigkeiten)Finden Sie die schnellsten Ubuntu-Spiegel von Ihrem Standort aus, entweder aktuell oder höchstens sechs Stunden später.
netselect
:-v
macht es ein wenig wortreich - Sie möchten Fortschrittspunkte sehen und Nachrichten, die Ihnen mitteilen, dass verschiedene Spiegel, die derselben IP zugeordnet sind, zusammengeführt wurden :)-sN
Steuert, wie viele Spiegel am Ende angezeigt werden sollen (z. B. die 10 besten Spiegel)-tN
gibt an, wie lange jeder Spiegel einer Geschwindigkeitsprüfung unterzogen wird (Standard ist 10; je höher die Zahl, desto länger dauert die Prüfung, desto zuverlässiger sind jedoch die Ergebnisse.)Dies ist das Backquotes-Zeug (nicht einfügen, nur zur Erklärung)
wget
Ruft den neuesten Spiegelstatus von https://launchpad.net/ubuntu/+archivemirrors ab .grep
extrahiert Spiegel, die aktuell sind oder sechs Stunden zurückliegen, zusammen mit 8 Zeilen des vorherigen Kontexts, der die tatsächlichen FTP / HTTP-URLs enthältgrep
extrahiert diese FTP / HTTP-URLsHier ist eine Beispielausgabe aus Kalifornien, USA:
netselect
nicht immer die am besten geeignete URL für die Anzeige auswählen Mehrere Spiegel werden auf eine einzige IP abgebildet. Nummer 3 ist auch bekannt alsnz.archive.ubuntu.com
!quelle
Oneliner, der den besten (nach Download-Geschwindigkeit) Spiegel basierend auf mirrors.ubuntu.com für Ihre IP-Adresse auswählt.
quelle
sort -gr | head -3
.curl -s http://mirrors.ubuntu.com/mirrors.txt
nur eine Zeile zurückgegeben,http://archive.ubuntu.com/ubuntu/
was den Zweck der Auswahl unter mehreren zunichte macht. : - /curl
Teil dieser Antwort hilfreich , da ,curl -r 0-102400 -o /dev/null [server_url]/ls-lR.gz
wo[server_url]
die URL in aufgelistet Basis Spiegel istmirrors.txt
, einen Geschwindigkeitsvergleich des ersten ~ 100K der Indexdatei aus dem Spiegel ermöglicht.Hier ist ein Python-Skript, das ich geschrieben habe und das Spiegel mit der geringsten TCP-Latenz findet.
Das Skript stellt auch Bandbreiten- und Statusdaten bereit, die vom Launchpad stammen , und generiert
sources.list
automatisch eine neue Datei oder verwendet einen Spiegel aus einer Liste.Ein Anwendungsbeispiel, mit dem Sie aus 5 US-Spiegeln mit der geringsten Latenz für Ihren Computer auswählen können:
quelle
netselect
es in neueren Versionen von UbuntuREADME
ersten Link.Ich habe ein einfaches Ping-basiertes NodeJS-Skript entwickelt, das die in mirrors.ubuntu.com/mirrors.txt aufgelisteten Server testet und das schnellste zurückgibt:
Bitte lassen Sie mich wissen, wenn Sie es nützlich finden oder Vorschläge haben (=
quelle
git clone
das Repo und laufennode ffum
Ich weiß, dass dies die Frage des OP nicht direkt beantwortet, aber es gibt eine Schaltfläche in der Desktop- / GUI-Version von Ubuntu, die den besten Spiegel für Sie findet. Es schien ziemlich gut zu funktionieren, also habe ich es mir kurz angesehen, aber keine Zeit gehabt, es weiter zu verfolgen.
Der Grund, warum ich es anspreche, ist, dass ich denke, dass es ziemlich einfach und brauchbar wäre, es zu einem Befehlszeilen-Dienstprogramm zu machen.
Wenn jemand interessiert ist, scheint der Test in:
Nochmal, das ist ungefähr so weit wie ich gekommen bin, aber ich dachte, ich lasse das hier, falls jemand es wollte. Ich werde es wahrscheinlich wieder aufnehmen, wenn ich etwas mehr Zeit habe.
quelle
$ python3 /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
>>[top 5 omitted] and the winner is: ny-mirrors.evowise.com
Befehl, der schnelle Spiegel findet
Unter Ubuntu 18.04 habe ich gute Ergebnisse erzielt, indem ich ausgeführt habe
Das gibt eine Liste von Spiegeln aus, die nach "Zeit" geordnet sind (nicht erklärt), und dann habe ich einen der Spiegel verwendet, die es am höchsten eingestuft hat.
Mehr Details
Für mich war es nützlich, einige der wichtigsten Ergebnisse dieses Befehls zu testen, indem Sie sie als Spiegelbild festlegen
/etc/apt/sources.list
und dann ausführenum zu sehen, wie lange es gedauert hat, die Paketliste von diesem Spiegel herunterzuladen. Ich habe die drei besten Vorschläge getestet und sie waren alle schnell, aber einer von ihnen war doppelt so schnell wie die anderen beiden im
time sudo apt update
Test.Hier ist ein Beispiel für die Ausgabe von
python /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
:quelle
Für die Befehlszeile können Sie ein Python-Tool namens apt-smart verwenden
Ein Verwendungsbeispiel, mit dem Sie Ranglisten von Mirrors in Ihrem Land erstellen können (automatisch erkennen):
Mit
-l
oder erhalten--list-mirrors
Sie (Beispielausgabe vom Travis CI US-Server):Natürlich
apt-smart
können Sie auch Ihre sources.list ändern, wenn Sie Folgendes möchten:Ordnen Sie mit
-a
oder--auto-change-mirror
, um verfügbare Spiegel zu ermitteln, die Spiegel nach Verbindungsgeschwindigkeit und Aktualisierungsstatus und aktualisieren Sie /etc/apt/sources.list, um den besten verfügbaren Spiegel zu verwenden.Mit
-c
, oder--change-mirror MIRROR_URL
/etc/apt/sources.list aktualisieren, um die angegebene MIRROR_URL zu verwenden.Im Vergleich zu anderen Tools:
apt-smart
Findet automatisch, wo Sie sich befinden, sodass Sie bei Reisen ins Ausland kein Land angeben müssen.apt-smart
Lädt echte HTTP-ping
Daten von jedem Spiegel herunter, um genauere Ergebnisse (Bandbreite und Status) zu erhalten, und unterstützt HTTP-Proxy, anstatt die ungenauen Daten des Launchpads zu verwenden und sich darauf zu verlassen.apt-smart
wird beibehalten, während die meisten anderen Tools Probleme für eine lange Zeit offen lassen.Sie können einfach
apt-smart
über installieren.pip
Ausführliche Anweisungen und Verwendungen für die Installation von copy'n'paste finden Sie in der Projekt-Readme- Datei .quelle
Ich benutze das Folgende, um Spiegel automatisch auszuwählen (und deb-src zu deaktivieren)
quelle
Wenn Sie möchten, dass ein Hilfsprogramm dies ausführt, können Sie ein solches Hilfsprogramm wie das folgende als einfaches Bash-Skript implementieren. Dies kann nützlich sein, wenn Sie das Dienstprogramm verwenden möchten, ohne pip / nodejs zu benötigen.
quelle
Die anderen Antworten, einschließlich der akzeptierten Antwort, sind nicht mehr gültig (für Ubuntu 11.04 und neuer), weil sie Debian-Pakete wie
netselect-apt
und empfohlenapt-spy
haben, die mit Ubuntu nicht funktionieren.Es gibt zwei verschiedene funktionierende Antworten auf diese Frage:
mirror:
Methode von apt-getZeigt Ihnen, wie Sie mit dem Tool netselect die schnellsten kürzlich aktualisierten Server von Ihnen finden - netzwerkmäßig und nicht geografisch. Verwenden Sie
sed
, um die Spiegel in zu ersetzensources.list
.Verwenden Sie
sed
, um die Spiegel in zu ersetzensources.list
Da einige Quellen Additionsordner als Teil ihres Pfades verwenden, ist es möglicherweise besser, die alternative Trennzeichensyntax zu verwenden.
quelle
Der einfachste und effizienteste Weg, um den schnellsten Spiegel zu erhalten, ist die Verwendung der passenden
mirror://
Quellehttps://mvogt.wordpress.com/2011/03/21/the-apt-mirror-method/
quelle