Somos uma equipe distribuída, e é por isso que nossas VMs usam a mirror://
configuração do Ubuntu . Nossa /etc/apt/sources.list
aparência é a seguinte:
deb mirror://mirrors.ubuntu.com/mirrors.txt lucid main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt lucid-updates main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt lucid-backports main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt lucid-security main restricted universe multiverse
Isso por si só é incrível e muito útil para pessoas que trabalham em locais diferentes - menos personalização local , etc. necessária. Failover em teoria.
No dia a dia, essa configuração falha com muita frequência. Eu quero dizer 2-3 vezes esta semana.
Agora mirrors.ubuntu.com
retorna ftp.uni-bayreuth.de
como meu espelho do armário. Infelizmente, parece estar em baixo.
Isso já dura algumas horas e o espelho é hospedado por voluntários em uma universidade e hoje sendo uma sexta-feira, minhas esperanças são baixas de que isso esteja sendo corrigido em breve.
Toda conversa, minhas perguntas são:
- Alguém usa isso?
- Como você trabalha com o tempo de inatividade? (minha correção rápida é um script de shell)
- Como posso ajudar a melhorar essa situação?
mirror:
método que teve mais atualizações no seu segmento. Meu problema é que sempre que o espelho mais rápido falha, não há failover e eu fico preso.Respostas:
Pessoalmente, acho que a melhor maneira de selecionar os melhores espelhos dos repositórios Ubuntu é usar o método GUI:
Agora, para melhorar a situação descrita na pergunta, você precisa definir algumas regras de alguma forma. Essas regras devem agir
mirrors.ubuntu.com
. Eu posso sugerir algumas regras da seguinte maneira:netselect
,apt-spy
ouapt-fast
Em seguida, para ver como você pode solucionar, posso fornecer um método descrito passo a passo com três exemplos de scripts bash. O primeiro script usa os espelhos do país em que você está no momento, em vez de
mirrors.ubuntu.com/mirrors.txt
(para cada país, há um arquivo de texto com espelhos associados; consulte http://mirrors.ubuntu.com/ ):mkdir -p bin
- este comando criará umbin
diretório em suahome
pasta, se você ainda não o tiver.gedit ~/bin/change_sources.sh
- isso criará o novo arquivochange_sources.sh
no gedit.ou algo semelhante ao que pode ser encontrado em http://repogen.simplylinux.ch/ :
ou, um script usando
netselect
(faça o download daqui , instale as instruções aqui ) como izx explicou muito legal nesta resposta :chmod +x ~/bin/change_sources.sh
- para conceder acesso de execução ao script.~/bin/change_sources.sh
. Isso causará um erro, porque você não tem o direito de editar/etc/apt/sources.list
. Então usesudo ~/bin/change_sources.sh
sudo crontab -e
comando e adicione a seguinte linha:sudo crontab -l
.A partir de agora, o arquivo será alterado dinamicamente depois de encontrar uma alteração no endereço IP.
Pode não ser a melhor solução, mas, na minha opinião, uma boa solução pode ser dada dessa maneira, como nos scripts acima .
fonte
apt-spy
script agora. Será atualizado aqui mais tarde.Agradeço toda a entrada nesta questão, mas como ninguém encontrou uma solução simples que se encaixasse em nossas circunstâncias, decidi resolver o problema pessoalmente.
Eu criei uma ferramenta (especificamente para Ubuntu) que eu chamo
apt-spy2
.O objetivo principal desta ferramenta é encontrar um espelho de trabalho rapidamente. O trabalho é definido por que o servidor espelho está disponível e (espero :) atualizado.
Não faço suposições sobre se o servidor selecionado é necessariamente o mais próximo e o mais rápido. Não estou fazendo pings ou truques de DNS GEO - mas até agora isso funciona quando algo quebra.
Como funciona - em poucas palavras:
/etc/apt/sources.list
.Atenção: Isso pressupõe que as pessoas se comportem bem e coloquem espelhos adicionais (por exemplo, repositórios de terceiros)
/etc/apt/sources.list.d
. Mas acho que isso significa que há espaço para melhorias.Você pode obter essa ferramenta da seguinte maneira:
$ [sudo] gem install apt-spy2
O cli vem com
list
,check
,fix
ehelp
(com mais informações sobre como usá-lo).Tentei documentar o máximo possível no arquivo README do projeto .
A versão atual é muito conservadora
0.5.0
.O código é de código aberto e a licença é liberal. E eu aceito todas as contribuições.
fonte
Havia este comando no Debian 6.0.4:
Isso fez o trabalho de encontrar o próximo servidor disponível mais próximo automaticamente e gerar um novo sources.list
No Ubuntu, esse comando parece não existir?
Ele ainda existe no Debian 7.0 wheezy:
https://launchpad.net/debian/wheezy/+source/apt-spy/+copyright
Você pode fazer o download do seu pacote * .deb aqui:
http://packages.debian.org/sid/apt-spy
... ainda procurando as fontes ...
Você obviamente precisa do Debian-7.0-Installation para obter o código fonte após editar a lista de fontes com a entrada:
Depois do sudo apt-get update, você simplesmente sugaria o código com:
fonte
Talvez não esteja usando a solução que você gosta, mas a configuração de um cache local para os arquivos .deb deve ser ideal quando você baixa vários MB de pacote (a maioria deles eu aposto que são os mesmos) e, como você está baixando no mesmo servidor, pode querer sacrificar um PC para tornar o cache e tornar o servidor menos ocupado.
Procedimento
Você poderá instalar
apt-cacher
em uma máquina com muito espaço no disco rígido (você precisaria). Você pode configurar isso usando o guia do servidor Apt-cacher , mas vamos fazer um resumo rápido.Instalar
apt-cacher
sudo apt-get install apt-cacher apache2
/etc/default/apt-cacher
e defina oautostart
valor como 1, para que o cache inicie quando a máquina for ligada.sudo /etc/init.d/apache2 restart
http://ip-of.your.cache:3142/apt-cacher
./etc/apt-cacher/apt-cacher.conf
e procure a linhaallowed_hosts
. Você pode definir sub-redes como192.168.0.0/24
ou apenas*
para todos os hostsapt-spy
isso (esse comando pode levar horas, pois também testa a velocidade de cada servidor).Nos seus clientes, você tem duas opções:
sources.list
seguinte:deb http: //ip-of.your.cache: 3142 / the.server.you.like / ubuntu / lucid principal universo restrito multiverso
Mude
ip-of.your.cache
para o ip do seu cache ethe.server.you.like
o nome do host do servidor que você usará. Você pode usar várias linhas./etc/apt/apt.conf.d/01proxy
e adicione a linha:Adquirir :: http :: Proxy " http: //ip-of.your.cache: 3142 ";
fonte
-d testing
cheira a Debian.Você pode tentar configurar seu próprio espelho do Ubuntu. Dessa forma, as atualizações serão locais.
O apt-mirror precisa de uma conexão à Internet de alta velocidade e muito espaço em disco
Configurar seu próprio espelho do Ubuntu é muito fácil usando o apt-mirror.
1) entre no repositório apt-mirror. Faça backup do seu arquivo sources.list da seguinte maneira:
2) Edite o arquivo sources.list da seguinte maneira:
3) E insira o seguinte em uma nova linha:
4) Vamos atualizar o índice do pacote
5) E instale o apt-mirror
6) Agora o Apt-mirror está configurado, então vamos dizer quais servidores espelhar:
A configuração padrão colocará os arquivos baixados na pasta / var / spool / apt-mirror. Veja como é o arquivo mirror.list:
isso reflete apenas os pacotes binários, mas se você quiser pacotes de origem, insira as linhas apropriadas. Eles geralmente assumem a forma:
7) Agora corra
apt-mirror
. Isso vai demorar um pouco. Não se preocupe se você não pode baixar todos os arquivos de uma só vez,apt-mirror
pode retomar downloads (mate-o com a combinação de teclas Ctrl+ Ce execute-o novamente quando quiser continuar). Ok, execute o apt-mirror assim:Também confira Como criar um espelho local Debian / Ubuntu com o apt-mirror
Fonte: Use o Apt-mirror para criar seu próprio espelho do Ubuntu
fonte
apt-mirror
está disponível nos repositórios do ubuntu.mirrors.ubuntu.com
deve funcionar. :)mirrors.ubuntu.com
nunca será resolvidomirrors.ubuntu.com
, mas um servidor mais próximo de você. O problema é que o servidor que ele resolve não é confiável. Sua melhor jogada é usar um servidor confiável da lista oficial.Eu escrevi um script Python chamado apt-select para servir como uma alternativa CLI ao método GUI.
O script consulta cada espelho via TCP, imprime nos espelhos stdout com a menor latência e gera um novo
sources.list
arquivo. Também existem várias opções que permitem escolher em uma lista de espelhos classificados e recuperar informações como quando o espelho foi atualizado pela última vez e sua capacidade de largura de banda.fonte