Como altero os espelhos no Ubuntu Server de regional para principal?

76

Eu tenho um Lucid Server (10.04) configurado e gostaria de mudar o espelho dos EUA (ou de qualquer outro país) para o Main Ubuntu Mirror.

Por exemplo, minhas duas primeiras entradas em sources.list são:

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

Em um ambiente de área de trabalho, selecionaria o espelho principal assim:

Fontes de software

Mas como faço isso no terminal, pois não tenho um ambiente gráfico instalado!

Sorin-Mihai Oprea
fonte

Respostas:

95

Abra seu sources.listarquivo usando seu editor de texto favorito, por exemplo

sudo nano /etc/apt/sources.list

Localize o texto http://us.archive.ubuntu.com/ubuntue substitua-o por http://archive.ubuntu.com/ubuntu.

Jakob
fonte
Eu imaginei que isso faria o truque, mas quando eu fiz como você sugeriu, isso me deu um erro 404 para o repositório. Verifiquei novamente agora e parece estar bem. Parecia ser um problema com minha conexão de rede. Muito obrigado pela resposta.
Sorin-Mihai Oprea
existe uma maneira segura como com a GUI. Quero dizer, não substituí-lo manualmente e evitar erros de digitação ou o que seja.
logoff
Talvez algo parecido com isto: askubuntu.com/questions/20414/… @logoff
Luke Stanley
1
Também execute apt-get updateposteriormente para que o APT possa atualizar seus pacotes. Inicialmente, recebi uma Package X has no installation candidatemensagem porque o APT ainda não examinou o novo repositório em busca de pacotes.
NS du Toit
Para usá-lo em um script, o seguinte sedcomando pode ser usado 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, substitua nl pelo código do seu país.
Mandy S
55

Este comando deve fazer o truque:

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

Isso removerá o 'nós'. prefixo em cada um dos endereços para convertê-los em endereços do servidor principal.

É claro que substitua 'us' por qualquer outro espelho que você estiver usando.

Explicação detalhada do comando:

editor sed - stream para filtrar e transformar texto.

  • O argumento -i é editar um arquivo no local.

  • Então | regexp | replace | g ' , está especificando o comando search and replace.

  • O g no final é o argumento para pesquisar "globalmente".

  • Conclusão: substitui todas as ocorrências de http: // us . com http: // no arquivo /etc/apt/sources.list .

PoloSoares
fonte
1
Tente explicar um pouco mais o comando, o que ele faz?
Evandro Silva
1
Para mudar de nós para o espelho, faça o seguinte:sudo sed -i 's/http:\/\/us./http:\/\/de./g' /etc/apt/sources.list'
Christian
O método postado aqui está correto, no entanto, o código postado no topo está errado [code] "sudo sed -i 's / http: \ / \ / us./http:\/\//g' / etc / apt / sources.list "[/ code] onde o cmd sed publicado na parte inferior faz sentido.
SAGAR Nair
Muito obrigado pela versão manual, sem edição manual de texto. Passei de uma velocidade de download de alguns kB / s para 10 MB / s usando sudo sed -i 's|http://us.|http://ch.|g' /etc/apt/sources.list(estou na Suíça). Eu estava trabalhando com uma imagem osboxes e eles são aparentemente bastante mal configurado a esse respeito ...
masterxilo
4

Corrija o uso do sed para remover / alterar o código do país "us" do source.list para algo como "au", o comando será o seguinte:

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

ou apenas para remover "nós" sozinhos em vez de alterá-lo para algo, use o código abaixo:

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

Com vim:

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

Digite :(você precisa segurar Shift) para entrar no modo de comando e, em seguida, digite:

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

Acertar Enter

Clique Escpara ter certeza de que saiu do modo de linha de comando e entrou no modo normal. Agora você pode percorrer o arquivo com teclas de movimento de teclado (se você quiser) para se certificar de todas as ocorrências nos espelhos foram editadas.

Por fim, saia com o salvamento entrando no modo de linha de comando (tipo :) e entre wq!para salvar e sair vim.

fangxing
fonte
aqui no regexp de pesquisa% s / http: \ / \ / us \ ./ http: \ / \ // g; "." (ponto) não é um delimitador, portanto, não é necessário escapá-lo com uma barra invertida.
SAGAR Nair
@SAGARBHOOSHAN .por si só é "qualquer caractere, exceto nova linha" . A barra invertida é garantir que ele corresponda apenas a um ponto literal.
Chai T. Rex