Wie ändere ich die Spiegel in Ubuntu Server von regional auf main?

76

Ich habe einen Lucid Server (10.04) eingerichtet und möchte den Mirror von US (oder einem anderen Land) auf den Main Ubuntu Mirror umstellen.

Zum Beispiel sind meine zwei ersten Einträge in sources.list:

deb http://us.archive.ubuntu.com/ubuntu/ lucid main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ lucid main restricted

In einer Desktop-Umgebung würde ich den Hauptspiegel folgendermaßen auswählen:

Software-Quellen

Aber wie mache ich das vom Terminal aus, da ich keine grafische Umgebung installiert habe!

Sorin-Mihai Oprea
quelle

Antworten:

95

Öffnen Sie Ihre sources.listDatei mit Ihrem bevorzugten Texteditor, z

sudo nano /etc/apt/sources.list

Suchen Sie den Text http://us.archive.ubuntu.com/ubuntuund ersetzen Sie ihn durch http://archive.ubuntu.com/ubuntu.

Jakob
quelle
Ich habe gedacht, dies würde den Trick machen, aber als ich das tat, was Sie vorgeschlagen hatten, gab es mir einen 404-Fehler für das Repository. Ich habe jetzt nochmal nachgesehen und es scheint in Ordnung zu sein. Es schien ein Problem mit meiner Netzwerkverbindung zu sein. Vielen Dank für die Antwort.
Sorin-Mihai Oprea
Gibt es einen sicheren Weg wie mit der GUI. Ich meine, es nicht manuell zu ersetzen und Tippfehler oder was auch immer zu vermeiden.
Abmeldung am
Vielleicht so etwas: askubuntu.com/questions/20414/… @logoff
Luke Stanley
1
Führen Sie apt-get updatedas Programm auch nachträglich aus, damit APT seine Pakete aktualisieren kann. Anfangs erhielt ich eine Package X has no installation candidateNachricht, weil APT das neue Repository noch nicht nach Paketen durchsucht hat.
NS du Toit
Um es in einem Skript sedzu verwenden, kann der folgende Befehl verwendet werden: sed -E -i 's#http://[^\s]*archive\.ubuntu\.com/ubuntu#http://be.archive.ubuntu.com/ubuntu#g' /etc/apt/sources.list'/etc/apt/sources.list Ersetzen Sie nl durch Ihren Ländercode.
Mandy S
55

Dieser Befehl sollte den Trick machen:

sudo sed -i 's|http://us.|http://|g' /etc/apt/sources.list

Es wird das "uns" entfernen. Präfix in jeder der Adressen, um sie in Adressen des Hauptservers zu konvertieren.

Ersetzen Sie uns natürlich durch einen anderen Spiegel, den Sie verwenden.

Ausführliche Erklärung des Befehls:

sed - stream editor zum filtern und transformieren von text.

  • Das Argument -i dient zum Bearbeiten einer vorhandenen Datei.

  • Dann 's | regexp | Austausch | g' , s Angabe der Suche und Befehl ersetzen.

  • Das g am Ende ist das Argument für die "globale" Suche.

  • Fazit: Ersetzt alle Vorkommen von http: // us . mit http: // in der Datei /etc/apt/sources.list .

PoloSoares
quelle
1
Erklären Sie den Befehl etwas genauer. Was macht er?
Evandro Silva
1
Gehen Sie wie folgt vor, um von uns zu de mirror zu wechseln:sudo sed -i 's/http:\/\/us./http:\/\/de./g' /etc/apt/sources.list'
Christian,
Die hier veröffentlichte Methode ist richtig, der Code oben ist jedoch falsch. sources.list "[/ code] wo die sed cmd unten stehen macht sinn.
Sagar Nair
Vielen Dank für den manuellen, textbearbeitungsfreien Einzeiler. Ich bin von ein paar kB / s Download-Geschwindigkeit auf 10 MB / s übergegangen sudo sed -i 's|http://us.|http://ch.|g' /etc/apt/sources.list(ich bin in der Schweiz). Ich habe mit einem osboxes-Image gearbeitet und sie sind anscheinend in dieser Hinsicht ziemlich falsch konfiguriert ...
masterxilo
4

Die korrekte Verwendung von sed, um den Ländercode "us" aus der source.list zu entfernen / in einen anderen Code wie "au" zu ändern, sieht der Befehl folgendermaßen aus:

sed -i 's/http:\/\/us./http:\/\/au./g' /etc/apt/sources.list

Verwenden Sie den folgenden Code, um "uns" alleine zu entfernen, anstatt es in etwas zu ändern:

sed -i 's/http:\/\/in./http:\/\//g' /etc/apt/sources.list
SAGAR Nair
quelle
3

Mit vim:

mv /etc/apt/sources.list{,.bak}   # you may want to make a backup
vim /etc/apt/source.list

Geben :Sie ein (Sie müssen Shiftgedrückt halten ), um in den Befehlszeilenmodus zu wechseln, und geben Sie dann Folgendes ein:

%s/http:\/\/us\./http:\/\//g

Schlagen Enter

Drücken Sie Esc, um sicherzustellen, dass Sie den Befehlszeilenmodus verlassen und in den normalen Modus gewechselt haben. Jetzt können Sie mit den Tasten zum Verschieben der Tastatur durch die Datei scrollen (wenn Sie möchten), um sicherzustellen, dass alle Vorkommen von uns Spiegeln bearbeitet wurden.

Beenden Sie abschließend mit dem Speichern, indem Sie in den Befehlszeilenmodus (Typ :) wechseln wq!, und drücken Sie die Eingabetaste , um zu speichern und den Vorgang zu beenden vim.

Fangxing
quelle
hier in der Suche regexp% s / http: \ / \ / us \ ./ http: \ / \ // g; "." (Punkt) ist kein Trennzeichen, daher muss es nicht mit einem Backslash versehen werden.
Sagar Nair
@SAGARBHOOSHAN ist .für sich genommen "ein beliebiges Zeichen außer einer neuen Zeile" . Der Backslash soll sicherstellen, dass er nur mit einem wörtlichen Punkt übereinstimmt.
Chai T. Rex