web-dev-qa-db-fra.com

Existe-t-il des référentiels alternatifs à ports.ubuntu.com pour ARM?

J'utilise un chromebook Samsung (avec une puce ARM). ports.ubuntu.com est un miroir assez lent pour moi. Existe-t-il d'autres miroirs contenant les packages ARM?

https://wiki.ubuntu.com/UbuntuDevelopment/PackageArchive#Ports semble suggérer qu'il n'y en a pas ou du moins très peu - en existe-t-il?

14
dja

Oui, il y en a. Bien que pas beaucoup.

J'ai écrit le script suivant qui analysera tous les miroirs de la liste de miroirs Launchpad et vérifiera s'ils contiennent le chemin /dists/$DIST/$REPO/binary-$Arch/

  • $DIST est votre distribution Ubuntu, par exemple, precisename__, saucyname__, trustyname__, ...
  • $REPO est le référentiel que vous recherchez, à savoir mainname__, restrictedname__, universeou multiversename__.
  • $Arch est l'architecture que vous recherchez, par exemple armhfname__.

À titre d'exemple, supposons que vous avez Ubuntu 13.10 (Saucy). Ensuite, vous voudrez peut-être rechercher le chemin /dists/saucy/main/binary-armhf/ dans les miroirs afin de découvrir les miroirs offrant le référentiel mainpour l'architecture armhfname__. Si un miroir contient ce chemin, cela signifie qu'il devrait avoir les packages binaires pour l'architecture armhfpour le référentiel mainde Saucy Salamander, et le script générera le code FOUND: avec le miroir. URL.

Remarque: la présence de ce chemin sur un miroir n'est pas réellement une garantie, mais seulement une indication indiquant qu'il contient les packages requis. Cependant, si un miroir contient ce chemin mais pas les paquets, on peut au moins dire qu'il y a quelque chose de louche avec ce miroir.

Notez également que le script nécessite curlname__. Installez-le si vous ne l'avez pas (Sudo apt-get install curl).

Ainsi, en utilisant ce script, vous pouvez rapidement déterminer quels miroirs de la liste des miroirs du Launchpad offrent ce dont vous avez besoin. Notez que le script peut s'exécuter pendant un certain temps puisqu'il contacte chaque serveur de cette liste. Ces serveurs sont répartis dans le monde entier et certains d'entre eux peuvent être lents ou inaccessibles (par exemple, curlpeut être bloqué jusqu'à l'expiration de la tentative de connexion). On peut facilement améliorer la numérisation de certains miroirs uniquement (par exemple, dans votre pays uniquement), mais c’est un bon point de départ.

#!/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

J'ai enregistré le script sous le nom find_mirrors, je l'ai rendu exécutable (chmod 755 find_mirrors) et je l'ai exécuté comme suit:

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

Cela a pris environ 10-15 minutes pour moi. J'ai été surpris de ne trouver qu'un seul miroir pour l'architecture armhfde Saucy dans la liste des miroirs du Launchpad, à savoir celui situé sous TU Chemnitz (basé en Allemagne; il est peut-être encore plus rapide pour vous que - ports.ubuntu.com qui semble être basé en Grande-Bretagne.) Il semblerait donc que la réponse à votre question ressemble davantage à "Oui, il y a un miroir alternatif pour vous ... ";-)

La bonne nouvelle est que j'ai vérifié manuellement ce miroir et qu'il s'agit bien d'un miroir complet de ports.ubuntu.com , avec tous les paquets pour toutes les versions d'Ubuntu en vie. Alors, essayez-le!

Notez également que vous pouvez avoir plus de chance avec une autre version que Saucy.

Alternative (non recommandé)

Je mentionne cela dans un but de complétude, mais je ne le conseille pas. Au lieu de regarder sur le liste des miroirs du Launchpad , vous pouvez bien sûr aussi simplement rechercher des miroirs sur Google.

Une façon de le faire serait simplement de chercher sur Google la chaîne */dists/saucy/main/binary-armhf/* (qui convient à la distribution, au référentiel et à l’architecture, comme auparavant). Cela trouvera de nombreux miroirs alternatifs, mais la plupart ne sont pas officiellement enregistrés sur Launchpad. Par conséquent, l'équipe de miroirs Ubuntu n'effectue aucun contrôle de la qualité; ils peuvent être lents, ne pas être mis à jour régulièrement ou ne contenir qu'un sous-ensemble des paquets requis par un système complet Ubuntu, voire certains paquets modifiés. À bien y penser, si quelqu'un souhaitait rendre son miroir accessible au public, il l'aurait probablement enregistré sur Launchpad, puis le script ci-dessus l'aurait trouvé. Donc, google pour les miroirs à vos risques et périls. Si tu me le demandes, ne le fais pas.

22
Malte Skoruppa