¿Cómo cambio los espejos en Ubuntu Server de regional a principal?


76

Tengo un Lucid Server (10.04) configurado y me gustaría cambiar el espejo de los EE. UU. (O cualquier otro país) al Espejo principal de Ubuntu.

Por ejemplo, mis dos primeras entradas en sources.list son:

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

En un entorno de escritorio, seleccionaría el espejo principal de esta manera:

Fuentes de software

¡Pero cómo hago eso desde la terminal ya que no tengo un entorno gráfico instalado!

Respuestas:


95

Abra su sources.listarchivo usando su editor de texto favorito, por ej.

sudo nano /etc/apt/sources.list

Localice el texto http://us.archive.ubuntu.com/ubuntuy reemplácelo con http://archive.ubuntu.com/ubuntu.


Pensé que esto funcionaría, pero cuando hice lo que me sugirió, me dio un error 404 para el repositorio. He comprobado de nuevo ahora y parece estar bien. Parecía ser un problema con mi conexión de red. Muchas gracias por la respuesta.
Sorin-Mihai Oprea

¿Hay alguna manera segura como con la GUI? Quiero decir, no reemplazarlo manualmente y evitar errores tipográficos o lo que sea.
cierre de sesión el

Tal vez algo como esto: askubuntu.com/questions/20414/… @logoff
Luke Stanley

1
También se ejecuta apt-get updateposteriormente para que APT pueda actualizar sus paquetes. Inicialmente recibí un Package X has no installation candidatemensaje porque APT aún no ha escaneado el nuevo repositorio en busca de paquetes.
NS du Toit

Para usarlo en un script, sedse puede usar el siguiente 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 replace nl con el código de su país.
Mandy S

55

Este comando debería hacer el truco:

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

Eliminará el 'nosotros'. prefijo en cada una de las direcciones para convertirlas en direcciones del servidor principal.

Por supuesto, reemplace 'nosotros' por cualquier otro espejo que esté utilizando.

Explicación profunda del comando:

sed - editor de flujo para filtrar y transformar texto.

  • El argumento -i es editar un archivo en su lugar.

  • Luego 's | expreg | sustitución | g' , s especificando el comando de búsqueda y reemplazo.

  • La g al final es el argumento para la búsqueda "global".

  • Conclusión: reemplaza todas las apariciones de http: // us . con http: // en el archivo /etc/apt/sources.list .


1
Intenta explicar el comando un poco más, ¿qué hace?
Evandro Silva

1
Para pasar de nosotros al espejo, haga lo siguiente:sudo sed -i 's/http:\/\/us./http:\/\/de./g' /etc/apt/sources.list'
Christian

El método publicado aquí es correcto, sin embargo, el código publicado en la parte superior es incorrecto [código] "sudo sed -i 's / http: \ / \ / us./http:\/\//g' / etc / apt / sources.list "[/ code] donde tiene sentido el cmd sed publicado en la parte inferior tiene sentido.
SAGAR Nair

Muchas gracias por el one-liner sin edición manual de texto. Pasé de una velocidad de descarga de unos kB / s a ​​10 MB / s usando sudo sed -i 's|http://us.|http://ch.|g' /etc/apt/sources.list(Estoy en Suiza). Estaba trabajando con una imagen de osboxes y aparentemente están bastante mal configurados a ese respecto ...
masterxilo

4

Corrija el uso de sed para eliminar / cambiar el código de país "us" de source.list a algo más como "au", el comando será el siguiente:

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

o simplemente para eliminar "nosotros" solo en lugar de cambiarlo a algo, use el código a continuación:

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

Escriba :(debe mantener presionado Shift) para ingresar al modo comando-ine y luego escriba:

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

Golpear Enter

Presione Escpara asegurarse de que ha salido del modo de línea de comandos y ha entrado en el modo normal. Ahora puede desplazarse por el archivo con las teclas de movimiento del teclado (si lo desea) para asegurarse de que se hayan editado todos los espejos de nosotros .

Finalmente, salga con guardar ingresando el modo de línea de comando (tipo :) e ingrese wq!para guardar y salir vim.


aquí en la búsqueda regexp% s / http: \ / \ / us \ ./ http: \ / \ // g; "." (punto) no es un delimitador, por lo que no necesita escapar con una barra invertida.
SAGAR Nair

@SAGARBHOOSHAN .en sí mismo es "cualquier carácter excepto una nueva línea" . La barra diagonal inversa es garantizar que solo coincida con un punto literal.
Chai T. Rex
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.