Quiero actualizar mi sources.list
archivo con el servidor más rápido desde la línea de comandos en una nueva instalación de Ubuntu Server. Sé que esto es trivialmente fácil con la GUI, pero no parece haber una manera simple de hacerlo desde la línea de comandos.
command-line
apt
repository
Evan
fuente
fuente
#
signos con barras (/
). De lo contrario, tengosed: -e expression #1, char 53: unterminated
el 'comando'.Respuestas:
No se incluye en Ubuntu más nuevo debido a problemas de seguridad parece: ver: Informe de error
Pero ... normalmente solo uso ping para averiguar la velocidad de una conexión a alguna ubicación. Cantidad de lúpulo y latencia.
fuente
Ya no tiene que hacer ninguna búsqueda: como ha explicado ajmitch , puede usar para que el mejor espejo sea elegido automáticamente.
deb mirror
fuente
sudo apt-get update
antes de hacer cualquier cosaapt-get install
para que use su espejo más cercano.Aquí hay una manera que siempre funcionará, usando buenos viejos
netselect
y algo degrep
magia:¡El hack de "encontrar el mejor servidor" del adicto a la terminal!
dpkg -i
netselect
para su arquitectura desde el sitio web de Debian. (se trata de 125 KB, sin dependencias)Encuentre los espejos Ubuntu más rápidos desde su ubicación, ya sea actualizados o como máximo seis horas atrás con esto (lo explicaré a continuación, lo siento, no se divide bien en Markdown)
netselect
:-v
lo hace un poco detallado: desea ver puntos de progreso y mensajes que le indiquen que se combinaron diferentes mapeos de espejos a la misma IP :)-sN
controla cuántos espejos desea al final (por ejemplo, los 10 mejores espejos)-tN
es cuánto tiempo se prueba la velocidad de cada espejo (el valor predeterminado es 10; cuanto mayor es el número, más tiempo se tarda pero más confiables son los resultados).Este es el material de las comillas inversas (no pegue, solo para explicación)
wget
extrae el último estado de espejo de https://launchpad.net/ubuntu/+archivemirrors .grep
extractos reflejan espejos que están actualizados o con seis horas de retraso, junto con 8 líneas de contexto anterior que incluye las URL ftp / http realesgrep
extrae estas URL ftp / httpAquí hay un ejemplo de salida de California, EE. UU .:
netselect
no siempre elige la URL más apropiada para mostrar cuando múltiples espejos se asignan a una sola IP; el número 3 también se conoce comonz.archive.ubuntu.com
!fuente
Oneliner que selecciona el mejor espejo (por velocidad de descarga) basado en mirrors.ubuntu.com para su ip.
fuente
sort -gr | head -3
.curl -s http://mirrors.ubuntu.com/mirrors.txt
solo devuelve una línea: lohttp://archive.ubuntu.com/ubuntu/
que anula el propósito de elegir entre varias. : - /curl
parte de esta respuesta me pareció útil porquecurl -r 0-102400 -o /dev/null [server_url]/ls-lR.gz
dónde[server_url]
está la URL del espejo base en la listamirrors.txt
, permite una comparación de velocidad de los primeros ~ 100K del archivo de índice del espejo.Aquí hay un script de Python que escribí que encuentra espejos con la latencia TCP más baja.
El script también proporciona datos de ancho de banda y estado tomados de la plataforma de lanzamiento , y generará un nuevo
sources.list
archivo automáticamente o usando un espejo elegido de una lista.Un ejemplo de uso que le permite elegir entre 5 espejos de EE. UU. Con la latencia más baja para su máquina:
fuente
netselect
que no está disponible en las versiones más nuevas de UbuntuREADME
el primer enlace.Desarrollé un simple script nodejs basado en ping que prueba los servidores enumerados en mirrors.ubuntu.com/mirrors.txt y devuelve el más rápido:
Avíseme si le resulta útil o tiene alguna sugerencia (=
fuente
git clone
el repositorio y correnode ffum
Sé que esto no responde directamente a la pregunta del OP, pero hay un botón en la versión de escritorio / GUI de Ubuntu que encuentra el mejor espejo para usted. Parecía funcionar bastante bien, así que lo examiné brevemente, pero no tuve tiempo de hacer un seguimiento.
La razón por la que lo menciono es porque creo que sería bastante sencillo y utilizable convertirlo en una utilidad de línea de comandos.
Si alguien está interesado, la prueba parece estar ubicada en:
De nuevo, eso es lo más lejos que llegué, pero pensé que dejaría esto aquí en caso de que alguien lo quisiera. Probablemente lo recupere cuando tenga un poco más de tiempo.
fuente
$ python3 /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
>>[top 5 omitted] and the winner is: ny-mirrors.evowise.com
Comando que encuentra espejos rápidos
En Ubuntu 18.04 obtuve buenos resultados ejecutando
Eso imprime una lista de espejos organizados por "tiempo" (no explicado), y luego utilicé uno de los espejos que clasificó más alto.
Más detalles
Para mí, fue útil probar algunos de los resultados principales de ese comando configurándolos como mi espejo
/etc/apt/sources.list
y luego haciendopara ver cuánto tiempo llevó descargar la lista de paquetes desde ese espejo. Probé las tres sugerencias principales y todas fueron rápidas, pero una de ellas fue dos veces más rápida que las otras dos en la
time sudo apt update
prueba.He aquí un ejemplo del resultado de
python /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
:fuente
Para la línea de comando, puede usar una herramienta de Python llamada apt-smart
Un ejemplo de uso que le permite enumerar espejos clasificados dentro de su país (detectar automáticamente):
Con
-l
, o--list-mirrors
, obtendrá (salida de ejemplo del servidor Travis CI US):Por supuesto,
apt-smart
también puede cambiar su sources.list si desea:Con
-a
, o--auto-change-mirror
para descubrir las réplicas disponibles, clasifíquelas según la velocidad de conexión y el estado de actualización y actualice /etc/apt/sources.list para utilizar la mejor réplica disponible.Con
-c
, o--change-mirror MIRROR_URL
para actualizar /etc/apt/sources.list para usar el MIRROR_URL dado.En comparación con otras herramientas:
apt-smart
encuentra automáticamente dónde se encuentra, por lo que no necesita especificar el país cuando viaja al extranjero.apt-smart
realiza una descarga HTTP real desde cada espejo para obtener resultados más precisos (ancho de banda y estado) y es compatible con el proxy HTTP, en lugar de usarping
y confiar en los datos inexactos de la plataforma de lanzamiento.apt-smart
se mantiene, mientras que la mayoría de las otras herramientas dejan los problemas sin resolver durante mucho tiempo.Puede instalar fácilmente a
apt-smart
través depip
, para obtener información detallada sobre los comandos y usos de instalación de copiar y pegar, consulte el archivo Léame del proyecto .fuente
Uso lo siguiente para seleccionar automáticamente los espejos (y deshabilitar deb-src)
fuente
Si desea que una utilidad haga esto, puede implementar dicha utilidad como un simple script bash como el siguiente. Esto puede ser útil si desea utilizar la utilidad sin necesidad de pip / nodejs.
fuente
Las otras respuestas, incluida la respuesta aceptada, ya no son válidas (para Ubuntu 11.04 y posteriores) porque recomendaron paquetes de Debian como
netselect-apt
yapt-spy
que no funcionan con Ubuntu.Hay dos respuestas de trabajo diferentes a esta pregunta a continuación:
mirror:
Le muestra cómo usar la herramienta netselect para encontrar los servidores actualizados más recientemente por usted, en términos de red, no geográficamente. Úselo
sed
para reemplazar los espejos adentrosources.list
.Use
sed
para reemplazar espejos ensources.list
Dado que algunas fuentes usan carpetas adicionales como parte de su ruta, podría ser mejor usar la sintaxis de separador alternativo.
fuente
La forma más fácil y eficiente de obtener el espejo más rápido es usar la
mirror://
fuente apt , veahttps://mvogt.wordpress.com/2011/03/21/the-apt-mirror-method/
fuente