How-To :: escolhendo espelhos mais rápidos no Void Linux.


Por meio de um script veremos como obter e redefinir os espelhos mais rápidos para o Void Linux.

Atualizado em: 2019-09-08

O conteúdo aqui publicado substitui o presente em DICA :: ACELERANDO O DOWNLOAD DE PACOTES NO VOID LINUX, visto que os repositórios mudaram e que por enquanto a mesma não foi atualizada.

Eu vinha sofrendo bastante com a lentidão nesses repositórios, e apenas trocar o espelho alpha.de.repo.voidlinux.org pelo alpha.us.repo.voidlinux.org não resolveu o problema, encontrei a solução no post abaixo:

Automatically find fastest update mirror and use it.

Onde apenas peguei o script o qual nome-ei como testmirrors.sh e o pus em $HOME/bin, segue o conteúdo do mesmo já devidamente editado e com os novos espelhos (todos oficiais):

#!/bin/bash
#
# Ref: https://www.reddit.com/r/voidlinux/comments/6xor9j/automatically_find_fastest_update_mirror_and_use/
# Ref: https://edpsblog.wordpress.com/2019/08/24/how-to-escolhendo-espelhos-mais-rapidos-no-void-linux/
#
# Require: xbps-install -S geoip

declare -a arr=("alpha.de.repo.voidlinux.org" \
		"mirror.clarkson.edu" \
		"alpha.us.repo.voidlinux.org" \
		"mirrors.servercentral.com" \
		"void.webconverger.org")

fping=10000
frepo=""

for repo in "${arr[@]}"
	do
geo=`geoiplookup $repo | head -1 | sed 's/^.*: //'`
	echo ""
	echo "Testing ping for $repo ($geo)"
ping=`ping -c 4 $repo | tail -1| awk '{print $4}' | cut -d '/' -f 2 | bc -l`
	echo "$repo Average ping: $ping"
	if (( $(bc <<< "$ping<$fping") ))
	then
	frepo=$repo
	fping=$ping
	fi
done

geo=`geoiplookup $frepo | head -1 | sed 's/^.*: //'`
	echo ""
	echo "Recommended repo is: $frepo ($geo)"
echo "Ping: $fping"

Para executá-lo algumas coisas são necessárias, isto é; que você tenha instalado o pacote GEOIP, que salve e dê permissão de execução ao script e que o salve num diretório incluído em seu $PATH, caso seja de seu interesse crie em seu diretório pessoal o diretório bin:

$ mkdir -p ~/bin

E acrescente em seu ~/.bashrc ou ~/.zshrc o seguinte:

# PATH.
export PATH=$HOME/bin:$PATH

Ao executar o script serão testados 5 espelhos oficiais incluidos por mim e ao final o de melhor resultado será indicado, exemplo:

~ » testmirrors.sh  

Testing ping for alpha.de.repo.voidlinux.org (FI, Finland)
alpha.de.repo.voidlinux.org Average ping: 241.227

Testing ping for mirror.clarkson.edu (US, United States)
mirror.clarkson.edu Average ping: 169.333

Testing ping for alpha.us.repo.voidlinux.org (US, United States)
alpha.us.repo.voidlinux.org Average ping: 150.689

Testing ping for mirrors.servercentral.com (US, United States)
mirrors.servercentral.com Average ping: 138.911

Testing ping for void.webconverger.org (SG, Singapore)
void.webconverger.org Average ping: 339.656

Recommended repo is: mirrors.servercentral.com (US, United States)
Ping: 138.911
~ » 

Como observação devo acrescentar que o espelho mais lento (pro meu caso) era o definido por padrão, o ( alpha.de.repo.voidlinux.org ), agora trata-se do ( void.webconverger.org de Singapura ). Já o substituto eventual ( alpha.us.repo.voidlinux.org ) ficou melhor rankeado, em 2º lugar. Dos 5 testados o melhor foi o ( mirrors.servercentral.com ).

Vejamos agora como trocar os mirrors pelos espelhos mais rápidos, o correto é seguir a orientação da Wiki e copiar os arquivos .conf de /usr/share/xbps.d para /etc/xbps.d e depois editá-los, EU não farei isso (por enquanto), editarei diretamente os arquivos em /usr/share/xbps.d, são 2 no meu caso (já que não uso o multilib):

00-repository-main.conf

10-repository-nonfree.conf

O arquivo /usr/share/xbps.d/00-repository-main.conf deixei assim:

repository=https://mirrors.servercentral.com/voidlinux/current
#repository=https://alpha.us.repo.voidlinux.org/current
#repository=http://https//mirror.clarkson.edu/voidlinux/current
#repository=https://alpha.de.repo.voidlinux.org/current
#repository=https://void.webconverger.org/current

E no arquivo /usr/share/xbps.d/10-repository-nonfree.conf assim:

repository=https://mirrors.servercentral.com/voidlinux/current/nonfree
#repository=https://alpha.us.repo.voidlinux.org/current/nonfree
#repository=http://https//mirror.clarkson.edu/voidlinux/current/nonfree
#repository=https://alpha.de.repo.voidlinux.org/current/nonfree
#repository=https://void.webconverger.org/current/nonfree

Realizadas as alteração, basta executar:

$ sudo xbps-install -S # sincroniza
ou
$ sudo xbps-install -Su # sincroniza e atualiza
ou
$ sudo xbps-install -Suv # mais detalhes na atualização.

Em mais um exemplo, vejam agora a instalação do XFCE com velocidade razoável:

Fiz testes numa VM com o Void MATE onde copiei as configurações para /etc/xbps.d:

$ sudo cp -v /usr/share/xbps.d/*.conf /etc/xbps.d/

Nessa VM habilitei os repos multilib e multilib-nonfree, então o conteúdo dos arquivos (estão descritos os 4 arquivos) ficaram assim:

# /etc/xbps.d/00-repository-main.conf
repository=https://mirrors.servercentral.com/voidlinux/current

# /etc/xbps.d/10-repository-nonfree.conf
repository=https://mirrors.servercentral.com/voidlinux/current/nonfree

# /etc/xbps.d/10-repository-multilib.conf
repository=https://mirrors.servercentral.com/voidlinux/current/multilib

# /etc/xbps.d/10-repository-multilib-nonfree.conf
repository=https://mirrors.servercentral.com/voidlinux/current/multilib/nonfree

Vejam o log da atualização na imagem abaixo:

É isso! t+

How-To :: escolhendo espelhos mais rápidos no Void Linux.

Um comentário sobre “How-To :: escolhendo espelhos mais rápidos no Void Linux.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s