Quero atualizar meu sources.list
arquivo com o servidor mais rápido na linha de comando em uma nova instalação do Ubuntu Server. Eu sei que isso é trivialmente fácil com a GUI, mas não parece haver uma maneira simples de fazer isso na linha de comando?
command-line
apt
repository
Evan
fonte
fonte
#
sinais por barras (/
). Caso contrário, eu tenhosed: -e expression #1, char 53: unterminated
o comando 's'.Respostas:
Não está incluído no Ubuntu mais recente devido a problemas de segurança, parece: veja: Relatório de Bug
Mas .. Eu normalmente apenas uso o ping para descobrir a velocidade de uma conexão com algum local. Quantidade de saltos e latência.
fonte
Você não tem que fazer qualquer busca mais - como ajmitch tem explicado , você pode usar
deb mirror
para ter o melhor espelho escolheu para você automaticamente.fonte
sudo apt-get update
antes de fazer qualquerapt-get install
coisa para usar o espelho mais próximo.Aqui está uma maneira que sempre funcionará, usando boa
netselect
e velhagrep
magia:O hacker do terminal-addict "encontre o melhor servidor"!
dpkg -i
netselect
para a sua arquitetura no site da Debian. (tem cerca de 125 KB, sem dependências)Encontre os espelhos mais rápidos do Ubuntu a partir da sua localização, atualizados ou no máximo seis horas atrás com isso (explicarei abaixo, desculpe, mas não se divide muito bem no Markdown)
netselect
:-v
torna um pouco detalhado - você deseja ver pontos de progresso e mensagens informando que diferentes espelhos mapeados para o mesmo IP foram mesclados :)-sN
controla quantos espelhos você deseja no final (por exemplo, os 10 principais espelhos)-tN
é quanto tempo cada espelho é testado em velocidade (o padrão é 10; quanto maior o número, mais tempo leva, mas mais confiáveis são os resultados).Este é o material das aspas (não cole, apenas para explicação)
wget
obtém o status de espelho mais recente em https://launchpad.net/ubuntu/+archivemirrors .grep
extrai espelhos atualizados ou com seis horas de atraso, juntamente com 8 linhas de contexto anterior, que incluem os URLs ftp / http reaisgrep
extrai esses URLs ftp / httpAqui está um exemplo de saída da Califórnia, EUA:
netselect
nem sempre escolhe o URL mais apropriado para exibir quando vários espelhos são mapeados para um único IP; número 3 também é conhecido comonz.archive.ubuntu.com
!fonte
Oneliner que seleciona o melhor espelho (por velocidade de download) com base no mirrors.ubuntu.com para o seu ip.
fonte
sort -gr | head -3
.curl -s http://mirrors.ubuntu.com/mirrors.txt
retorna apenas uma linha:http://archive.ubuntu.com/ubuntu/
que anula o objetivo de escolher entre várias. : - /curl
parte desta resposta útil porquecurl -r 0-102400 -o /dev/null [server_url]/ls-lR.gz
onde[server_url]
está o URL do espelho base listado emmirrors.txt
, permite uma comparação rápida dos primeiros ~ 100K do arquivo de índice do espelho.Aqui está um script Python que escrevi que encontra espelhos com a menor latência de TCP.
O script também fornece largura de banda e dados de status obtidos da barra de ativação e gerará um novo
sources.list
arquivo automaticamente ou usando um espelho escolhido em uma lista.Um exemplo de uso que permite escolher entre 5 espelhos americanos com a menor latência da sua máquina:
fonte
netselect
não está disponível nas versões mais recentes do Ubuntu.README
primeiro link.Desenvolvi um script nodejs simples baseado em ping que testa os servidores listados em mirrors.ubuntu.com/mirrors.txt e retorna o mais rápido:
Entre em contato se achar útil ou tiver alguma sugestão (=
fonte
git clone
o repo e corrernode ffum
Eu sei que isso não responde diretamente à pergunta do OP, mas há um botão na versão desktop / GUI do Ubuntu que encontra o melhor espelho para você. Parecia funcionar muito bem, então eu examinei brevemente, mas não tive tempo para acompanhar.
A razão pela qual eu trouxe isso à tona é porque acho que seria bastante direto e utilizável transformá-lo em um utilitário de linha de comando.
Se alguém estiver interessado, o teste parece estar localizado em:
Novamente, isso foi o mais longe que cheguei, mas imaginei que deixaria isso aqui caso alguém quisesse. Provavelmente voltarei a conversar quando tiver mais tempo.
fonte
$ python3 /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
>>[top 5 omitted] and the winner is: ny-mirrors.evowise.com
Comando que encontra espelhos rápidos
No Ubuntu 18.04 , obtive bons resultados executando
Isso imprime uma lista de espelhos organizados por "tempo" (não explicados) e, em seguida, usei um dos espelhos mais bem classificados.
Mais detalhes
Para mim, foi útil testar alguns dos principais resultados desse comando, definindo-os como meu espelho
/etc/apt/sources.list
e, em seguida, executandopara ver quanto tempo levou para baixar a lista de pacotes desse espelho. Testei as três principais sugestões e todas foram rápidas, mas uma delas foi duas vezes mais rápida que as outras duas no
time sudo apt update
teste.Aqui está um exemplo de saída de
python /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py
:fonte
Para a linha de comando, você pode usar uma ferramenta Python chamada apt-smart
Um exemplo de uso que permite listar espelhos classificados em seu país (detectar automaticamente):
Com
-l
, ou--list-mirrors
você obterá (exemplo de saída do servidor Travis CI US):Obviamente, você
apt-smart
também pode alterar seu sources.list se desejar:Com
-a
ou--auto-change-mirror
para descobrir os espelhos disponíveis, classifique os espelhos pela velocidade da conexão e atualize o status e atualize /etc/apt/sources.list para usar o melhor espelho disponível.Com
-c
, ou--change-mirror MIRROR_URL
para atualizar /etc/apt/sources.list para usar o MIRROR_URL fornecido.Comparado com outras ferramentas:
apt-smart
localiza automaticamente onde você está, assim você não precisa especificar o país quando viaja para o exterior.apt-smart
faz download HTTP real de cada espelho para obter resultados mais precisos (largura de banda e status) e suporta proxy HTTP, em vez de usarping
e confiar nos dados imprecisos da barra de ativação.apt-smart
está sendo mantido, enquanto a maioria das outras ferramentas deixa os problemas sem correção por um longo tempo.Você pode instalar facilmente
apt-smart
viapip
, para obter comandos e usos detalhados de instalação do copy'n'paste, consulte o Leia-me do Projeto .fonte
Eu uso o seguinte para selecionar automaticamente os espelhos (e desativar o deb-src)
fonte
Se você quiser que um utilitário faça isso, poderá implementá-lo como um script bash simples como o seguinte. Isso pode ser útil se você desejar usar o utilitário sem precisar de pip / nodejs.
fonte
As outras respostas, incluindo a resposta aceita, não são mais válidas (para o Ubuntu 11.04 e versões mais recentes) porque recomendaram pacotes Debian como
netselect-apt
eapt-spy
que não funcionam com o Ubuntu.Existem duas respostas de trabalho diferentes para esta pergunta abaixo:
mirror:
Mostra como usar a ferramenta netselect para encontrar os servidores que você atualizou recentemente mais rapidamente - em termos de rede, não geograficamente. Use
sed
para substituir os espelhossources.list
.Use
sed
para substituir espelhos emsources.list
Como algumas fontes usam pastas adicionais como parte do caminho, pode ser melhor usar a sintaxe do separador alternativo.
fonte
A maneira mais fácil e eficiente de obter o espelho mais rápido é usar a
mirror://
fonte apt , consultehttps://mvogt.wordpress.com/2011/03/21/the-apt-mirror-method/
fonte