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

Respostas:

23

Sim, existem. Embora não sejam muitos.

Escrevi o script a seguir, que analisará todos os espelhos da lista de espelhos do Launchpad e verifique se eles contêm o caminho /dists/$DIST/$REPO/binary-$ARCH/em que

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

Por uma questão de exemplo, deixe-me supor que você tenha o Ubuntu 13.10 (Saucy). Então, você pode procurar nos espelhos pelo caminho /dists/saucy/main/binary-armhf/, a fim de descobrir os espelhos que oferecem o mainrepositório para a armhfarquitetura. Se um espelho contiver esse caminho, significa que ele deve ter os pacotes binários para a armhfarquitetura do mainrepositório do Saucy Salamander, e o script será exibido FOUND:junto com a URL do espelho.

Observe: a presença desse caminho em um espelho não é realmente uma garantia, mas apenas uma indicação de que ele contém os pacotes necessários; 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 requer curl. Instale-o se você não o tiver ( sudo apt-get install curl).

Portanto, usando esse script, você pode descobrir rapidamente quais espelhos da lista de espelhos da Barra de Ativação oferecem o que você precisa. Observe que o script pode ser executado por algum tempo, pois entra em contato com todos os servidores dessa lista. Esses servidores estão distribuídos ao redor do mundo e alguns deles podem estar lentos ou inacessíveis (de modo que curlpossam parar até a tentativa de conexão atingir o tempo limite). Pode ser melhorado facilmente digitalizar 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=$1
# Set to the Ubuntu distribution you need (e.g., precise, saucy, trusty, ...)
# See https://wiki.ubuntu.com/DevelopmentCodeNames
DIST=$2
# Set to the repository you're looking for (main, restricted, universe, multiverse)
# See https://help.ubuntu.com/community/Repositories/Ubuntu
REPO=$3

# 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, o tornei executável ( chmod 755 find_mirrors) e o executei da seguinte maneira:

$ ./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 armhfarquitetura do Saucy na lista de espelhos do Launchpad, a saber, na TU Chemnitz (isso é baseado na Alemanha; ainda pode ser mais rápido para você do que o ports.ubuntu.com, que parece ser baseado na Grã-Bretanha.) Portanto, parece que a resposta para sua pergunta é mais como "Sim, existe um espelho alternativo para você ..." ;-)

A boa notícia é que eu verifiquei manualmente esse espelho e é realmente um espelho completo do ports.ubuntu.com , com todos os pacotes para todas as versões vivas do Ubuntu. Então, tente!

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

Alternativa (não recomendado)

Menciono isso com o objetivo de ser completo, mas não o aconselho. Em vez de procurar na lista de espelhos do Launchpad , é claro que você também pode simplesmente pesquisar no google por espelhos.

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

Malte Skoruppa
fonte