Come posso cambiare i mirror in Ubuntu Server da regionale a principale?


76

Ho installato un Lucid Server (10.04) e vorrei cambiare il mirror dagli Stati Uniti (o da qualsiasi altro paese) al Main Ubuntu Mirror.

Ad esempio le mie prime due voci in sources.list sono:

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

In un ambiente desktop selezionerei il mirror principale in questo modo:

Fonti di software

Ma come posso farlo dal terminale in quanto non ho installato un ambiente grafico!

Risposte:


96

Apri il tuo sources.listfile usando il tuo editor di testo preferito, ad es

sudo nano /etc/apt/sources.list

Individua il testo http://us.archive.ubuntu.com/ubuntue sostituiscilo con http://archive.ubuntu.com/ubuntu.


Ho pensato che questo avrebbe funzionato, ma quando ho fatto quello che mi hai suggerito, ma mi ha dato un errore 404 per il repository. Ho controllato di nuovo ora e sembra che vada bene. Sembrava essere un problema con la mia connessione di rete. Grazie mille per la risposta.
Sorin-Mihai Oprea,

c'è un modo sicuro come con la GUI. Voglio dire, non sostituirlo manualmente ed evitare errori di battitura o altro.
disconnessione il

Forse qualcosa del genere: askubuntu.com/questions/20414/… @logoff
Luke Stanley

1
Inoltre, eseguire apt-get updatesuccessivamente in modo che APT possa aggiornare i suoi pacchetti. Inizialmente ho ricevuto un Package X has no installation candidatemessaggio perché APT non ha ancora scansionato il nuovo repository per i pacchetti.
NS du Toit,

Per usarlo in uno script sedpuoi usare il seguente comando 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 sostituisci nl con il tuo prefisso internazionale.
Mandy S

55

Questo comando dovrebbe fare il trucco:

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

Rimuoverà il "noi". prefisso in ciascuno degli indirizzi per convertirli in indirizzi del server principale.

Ovviamente sostituisci "noi" con qualsiasi altro mirror che stai utilizzando.

Spiegazione approfondita del comando:

sed - stream editor per filtrare e trasformare il testo.

  • L' argomento -i è di modificare un file in atto.

  • Poi 's | regexp | sostituzione | g' , s specificando la ricerca e la sostituzione di comando.

  • La g alla fine è l'argomento per la ricerca "globale".

  • Conclusione: sostituisce tutte le occorrenze di http: // us . con http: // nel file /etc/apt/sources.list .


1
Prova a spiegare un po 'di più il comando, che cosa fa?
Evandro Silva,

1
Per passare da noi a de mirror, procedi come segue:sudo sed -i 's/http:\/\/us./http:\/\/de./g' /etc/apt/sources.list'
Christian,

Il metodo pubblicato qui è giusto, tuttavia il codice pubblicato in alto è sbagliato [code] "sudo sed -i 's / http: \ / \ / us./http:\/\//g' / etc / apt / sources.list "[/ code] dove sono i sed cmd pubblicati in fondo ha senso.
SAGAR Nair,

Grazie mille per il one-liner senza modifica manuale del testo. Sono passato da una velocità di download di pochi kB / s a ​​10 MB / s utilizzando sudo sed -i 's|http://us.|http://ch.|g' /etc/apt/sources.list(Sono in Svizzera). Stavo lavorando con un'immagine di osbox e apparentemente sono abbastanza mal configurati al riguardo ...
masterxilo,

4

Utilizzo corretto di sed per rimuovere / modificare il codice paese "us" da source.list a qualcos'altro come "au", il comando sarà il seguente:

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

o semplicemente per rimuovere "noi" da soli invece di cambiarlo in qualcosa, usa il codice qui sotto:

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

3

Con vim:

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

Digitare :(è necessario tenere premuto Shift) per accedere alla modalità command-ine, quindi digitare:

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

Colpire Enter

Premi Escper essere sicuro di essere uscito dalla modalità riga di comando e di aver inserito la modalità normale. Ora puoi scorrere il file con i tasti di spostamento della tastiera (se vuoi) per assicurarti che tutte le occorrenze di noi mirror siano state modificate.

Infine, esci con il salvataggio accedendo alla modalità riga di comando (digita :) ed entra wq!per salvare ed uscire vim.


qui nella ricerca regexp% s / http: \ / \ / us \ ./ http: \ / \ // g; "" (punto) non è un delimitatore, quindi non è necessario evitarlo con una barra rovesciata.
SAGAR Nair,

@SAGARBHOOSHAN è di .per sé "qualsiasi carattere tranne la nuova riga" . La barra rovesciata deve garantire che corrisponda solo a un punto letterale.
Chai T. Rex
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.