Gibt es alternative Repositorys zu ports.ubuntu.com für ARM?

Antworten:

23

Ja, das gibt es. Obwohl nicht viele.

Ich schrieb das folgende Skript , das alle Spiegel aus dem Parsen wird Launchpad Spiegelliste und prüfen , ob sie den Pfad enthalten , /dists/$DIST/$REPO/binary-$ARCH/wo

  • $DISTIhre Ubuntu - Distribution, zum Beispiel precise, saucy, trusty, ...
  • $REPOist das Repository gesuchte Sie, das heißt main, restricted, universeoder multiverse.
  • $ARCHist die Architektur, die Sie suchen, zB armhf.

Lassen Sie mich als Beispiel annehmen, dass Sie Ubuntu 13.10 (Saucy) haben. Dann können Sie die Spiegel nach dem Pfad durchsuchen /dists/saucy/main/binary-armhf/, um Spiegel zu finden, die das mainRepository für die armhfArchitektur bieten . Wenn ein Spiegel diesen Pfad enthält, bedeutet dies , dass es sollte die Binärpakete für die hat armhfArchitektur für das mainEndlager für Saucy Salamander, und die Skript Ausgabe FOUND:zusammen mit dem Spiegel der URL.

Bitte beachten Sie: Das Vorhandensein dieses Pfades auf einem Spiegel ist keine Garantie, sondern nur ein Hinweis darauf, dass er die erforderlichen Pakete enthält. Wenn jedoch ein Spiegel diesen Pfad enthält, aber nicht die Pakete, können wir zumindest sagen, dass dieser Spiegel etwas faul ist.

Beachten Sie auch, dass das Skript erfordert curl. Installieren Sie es, wenn Sie es nicht haben ( sudo apt-get install curl).

Mithilfe dieses Skripts können Sie schnell herausfinden, welche Spiegel in der Launchpad-Spiegelliste das bieten, was Sie benötigen. Beachten Sie, dass das Skript möglicherweise einige Zeit ausgeführt wird, da es jeden Server in dieser Liste kontaktiert. Diese Server sind auf der ganzen Welt verteilt und einige von ihnen sind möglicherweise langsam oder nicht erreichbar (so dass sie curlmöglicherweise stehen bleiben, bis der Verbindungsversuch abläuft). Es kann leicht verbessert werden, nur bestimmte Spiegel zu scannen (z. B. nur in Ihrem Land), aber es ist ein guter Ausgangspunkt.

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

Ich habe das Skript als gespeichert find_mirrors, es ausführbar gemacht ( chmod 755 find_mirrors) und wie folgt ausgeführt:

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

Es dauerte ungefähr 10-15 Minuten für mich. Ich war überrascht, nur einen Spiegel für die armhfArchitektur von Saucy in der Launchpad-Spiegelliste zu finden, nämlich den an der TU Chemnitz (dieser ist in Deutschland ansässig; er ist für Sie möglicherweise noch schneller als ports.ubuntu.com, der anscheinend basiert in Großbritannien.) Die Antwort auf Ihre Frage lautet also eher "Ja, es gibt einen alternativen Spiegel für Sie ..." ;-)

Die gute Nachricht ist, dass ich diesen Spiegel manuell überprüft habe und es sich in der Tat um einen vollständigen Spiegel von ports.ubuntu.com handelt , mit allen Paketen für alle aktiven Ubuntu-Versionen. Also probieren Sie es aus!

Beachten Sie auch, dass Sie mit einer anderen Veröffentlichung möglicherweise mehr Glück haben als mit Saucy.

Alternative (nicht empfohlen)

Ich erwähne dies aus Gründen der Vollständigkeit, rate aber nicht dazu. Anstatt in der Launchpad-Mirror-Liste nachzuschauen , können Sie natürlich auch einfach nach Mirrors googeln.

Eine Möglichkeit, dies zu tun, besteht darin, einfach nach der Zeichenfolge zu suchen */dists/saucy/main/binary-armhf/*(passen Sie die Verteilung, das Repository und die Architektur wie bisher Ihren Anforderungen an). Hier finden Sie viele alternative Spiegel, aber die meisten sind nicht offiziell auf Launchpad registriert. Daher gibt es keine Qualitätsprüfungen durch das Ubuntu-Mirror-Team. Sie sind möglicherweise langsam, werden nicht regelmäßig aktualisiert oder enthalten nur einen Teil der Pakete, die von einem vollständigen Ubuntu-System benötigt werden, oder sogar einige geänderte Pakete. Wenn Sie darüber nachdenken, hätte jemand, der seinen Spiegel öffentlich zugänglich machen wollte, ihn wahrscheinlich auf Launchpad registriert, und dann hätte das obige Skript ihn gefunden. Google for mirrors also auf eigene gefahr. Wenn Sie mich fragen, tun Sie es nicht.

Malte Skoruppa
quelle