Existem repositórios alternativos para ports.ubuntu.com para ARM?

12

Estou usando um Chromebook Samsung (com um chip ARM). ports.ubuntu.com é um espelho razoavelmente lento para mim. Existem outros espelhos que carregam os pacotes ARM?

link parece sugerir que não há nenhum, ou pelo menos muito poucos - há algum?

    
por dja 03.03.2014 / 05:51

1 resposta

21

Sim, existem. Embora não sejam muitos.

Eu escrevi o seguinte script que analisará todos os espelhos da lista de espelhos do Launchpad e verificará se eles contêm o caminho /dists/$DIST/$REPO/binary-$ARCH/ onde

  • $DIST é a sua distribuição do Ubuntu, por exemplo, precise , saucy , trusty , ...
  • $REPO é o repositório que você está procurando, por exemplo, main , restricted , universe ou multiverse .
  • $ARCH é a arquitetura que você está procurando, por exemplo, armhf .

Por exemplo, vamos supor que você tenha o Ubuntu 13.10 (Saucy). Em seguida, convém procurar os espelhos pelo caminho /dists/saucy/main/binary-armhf/ para descobrir os espelhos que oferecem o repositório main para a arquitetura armhf . Se um espelho contiver este caminho, significa que ele deve ter os pacotes binários para a arquitetura armhf para o repositório main para o Saucy Salamander, e o script produzirá FOUND: junto com o URL do espelho.

Por favor, note: a presença deste caminho em um espelho não é realmente uma garantia, mas apenas uma indicação de que ele contém os pacotes requeridos; no entanto, se um espelho contiver esse caminho, mas não os pacotes, pelo menos podemos dizer que há algo suspeito nesse espelho.

Observe também que o script exige curl . Instale-o se você não o tiver ( sudo apt-get install curl ).

Assim, usando esse script, você pode descobrir rapidamente quais espelhos da lista Espelho do Launchpad oferecem o que você precisa. Observe que o script pode ser executado por algum tempo, pois ele entra em contato com todos os servidores da lista. Esses servidores são distribuídos em todo o mundo e alguns deles podem estar lentos ou inacessíveis (de tal forma que curl pode parar até que a tentativa de conexão atinja o tempo limite). Pode ser facilmente melhorado para analisar apenas alguns espelhos (por exemplo, apenas no seu país), mas é um bom ponto de partida.

#!/bin/bash

# URL of the Launchpad mirror list
MIRROR_LIST=https://launchpad.net/ubuntu/+archivemirrors

# Set to the architecture you're looking for (e.g., amd64, i386, arm64, armhf, armel, powerpc, ...).
# See https://wiki.ubuntu.com/UbuntuDevelopment/PackageArchive#Architectures
ARCH=
# Set to the Ubuntu distribution you need (e.g., precise, saucy, trusty, ...)
# See https://wiki.ubuntu.com/DevelopmentCodeNames
DIST=
# Set to the repository you're looking for (main, restricted, universe, multiverse)
# See https://help.ubuntu.com/community/Repositories/Ubuntu
REPO=

# First, we retrieve the Launchpad mirror list, and massage it to obtain a newline-separated list of HTTP mirrors
for url in $(curl -s $MIRROR_LIST | grep -Po 'http://.*(?=">http</a>)'); do
  # If you like some output while the script is running (feel free to comment out the following line)
  echo "Processing $url..."
  # retrieve the header for the URL $url/dists/$DIST/$REPO/binary-$ARCH/; check if status code is of the form 2.. or 3..
  curl -s --head $url/dists/$DIST/$REPO/binary-$ARCH/ | head -n 1 | grep -q "HTTP/1.[01] [23].."
  # if successful, output the URL
  [ $? -eq "0" ] && echo "FOUND: $url"
done

Salvei o script como find_mirrors , tornei-o executável ( chmod 755 find_mirrors ) e o executei da seguinte forma:

$ ./find_mirrors armhf saucy main | grep FOUND
FOUND: http://ftp.tu-chemnitz.de/pub/linux/ubuntu-ports/

Demorou cerca de 10 a 15 minutos para mim. Fiquei surpreso ao encontrar apenas um espelho para a arquitetura armhf de Saucy na lista de espelhos do Launchpad, ou seja, a que está em TU Chemnitz (isso é baseado na Alemanha; ainda pode ser mais rápido para você do que ports.ubuntu.com o que parece ser baseado na Grã-Bretanha.) Assim, parece que a resposta à sua pergunta é mais como "Sim, existe um um espelho alternativo para você ..."; -)

A boa notícia é que eu verifiquei manualmente esse espelho e é de fato um espelho completo de ports.ubuntu.com , com todos os pacotes para todos os lançamentos vivos do Ubuntu. Então, tente!

Note também que você pode ter mais sorte com outro lançamento do que com o Saucy.

Alternativa (não recomendada)

Eu menciono isso com o propósito de ser completo, mas eu não aconselho isso. Em vez de procurar na lista de espelhos do Launchpad , você também pode simplesmente procurar espelhos no Google.

Uma maneira de fazer isso seria simplesmente pesquisar no google a string */dists/saucy/main/binary-armhf/* (adequar a distribuição, repositório e arquitetura às suas necessidades como antes). Isso vai encontrar muitos espelhos alternativos, mas a maioria não é registrada oficialmente no Launchpad. Portanto, não há verificações de qualidade pela equipe de espelhamento do Ubuntu; eles podem ser lentos, não serem atualizados regularmente ou conter apenas um subconjunto dos pacotes requeridos por um sistema Ubuntu completo, ou até mesmo alguns pacotes modificados. Quando você pensa sobre isso, se alguém quisesse tornar seu espelho publicamente disponível, provavelmente o teria registrado no Launchpad, e então o script acima teria encontrado. Então, o google for espelhos é por sua conta e risco. Se você me perguntar, não faça isso.

    
por Malte Skoruppa 24.03.2014 / 15:17