Czy istnieją alternatywne repozytoria dla ports.ubuntu.com dla ARM?

Odpowiedzi:

24

Tak, są. Chociaż nie wielu.

Napisałem następujący skrypt, który przeanalizuje wszystkie kopie lustrzane z listy kopii Launchpad i sprawdzi, czy zawierają ścieżkę, w /dists/$DIST/$REPO/binary-$ARCH/której

  • $DISTjest twoja dystrybucja Ubuntu, na przykład precise, saucy, trusty, ...
  • $REPOto repozytorium szukasz, to znaczy main, restricted, universelub multiverse.
  • $ARCHto architektura, której szukasz, np armhf.

Dla przykładu załóżmy, że masz Ubuntu 13.10 (Saucy). Następnie możesz przeszukać lustra w poszukiwaniu ścieżki /dists/saucy/main/binary-armhf/, aby znaleźć lustra, które oferują mainrepozytorium dla armhfarchitektury. Jeśli kopia lustrzana zawiera tę ścieżkę, oznacza to, że powinna mieć pakiety binarne dla armhfarchitektury mainrepozytorium dla Saucy Salamander, a skrypt zostanie wygenerowany FOUND:wraz z adresem URL kopii lustrzanej.

Uwaga: obecność tej ścieżki w lustrze nie jest tak naprawdę gwarancją, ale jedynie wskazówką, że zawiera wymagane pakiety; jednak jeśli lustro zawiera tę ścieżkę, ale nie zawiera pakietów, przynajmniej możemy powiedzieć, że z tym lustrem jest coś podejrzanego.

Zauważ też, że skrypt wymaga curl. Zainstaluj, jeśli go nie masz ( sudo apt-get install curl).

Dzięki temu skryptowi możesz szybko dowiedzieć się, które kopie lustrzane z listy kopii Launchpad oferują to, czego potrzebujesz. Pamiętaj, że skrypt może działać przez dłuższy czas, ponieważ kontaktuje się z każdym serwerem na tej liście. Serwery te są rozmieszczone na całym świecie, a niektóre z nich mogą być wolne lub nieosiągalne (takie, które curlmogą się zawiesić do czasu przekroczenia limitu czasu próby połączenia). Można łatwo poprawić skanowanie tylko niektórych kopii lustrzanych (np. Tylko w twoim kraju), ale jest to dobry punkt wyjścia.

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

Zapisałem skrypt jako find_mirrors, uczyniłem go wykonywalnym ( chmod 755 find_mirrors) i wykonałem go w następujący sposób:

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

Zajęło mi to około 10-15 minut. Zaskoczyło mnie, że znalazłem tylko jedno lustro dla armhfarchitektury Saucy na liście kopii Launchpad, a mianowicie to w TU Chemnitz (to ma siedzibę w Niemczech; może być dla Ciebie szybsze niż ports.ubuntu.com, który wydaje się być oparty w Wielkiej Brytanii.) Wydaje się, że odpowiedź na twoje pytanie brzmi bardziej: „Tak, jest dla ciebie jedno alternatywne lustro…” ;-)

Dobrą wiadomością jest to, że ręcznie sprawdziłem to dublowanie i rzeczywiście jest to kompletne dublowanie ports.ubuntu.com , ze wszystkimi pakietami dla wszystkich żywych wersji Ubuntu. Więc spróbuj!

Zauważ też, że możesz mieć więcej szczęścia z innym wydaniem niż Saucy.

Alternatywne (niezalecane)

Wspominam o tym w celu kompletności, ale nie radzę tego. Zamiast patrzeć na listę kopii lustrzanych Launchpad , możesz oczywiście po prostu znaleźć go w Google.

Jednym ze sposobów na zrobienie tego byłoby po prostu wyszukanie ciągu */dists/saucy/main/binary-armhf/*(wyszukiwanie dystrybucji, repozytorium i architektura zgodnie z własnymi potrzebami, tak jak poprzednio). Znajdziesz wiele alternatywnych kopii lustrzanych, ale większość z nich nie jest oficjalnie zarejestrowana na Launchpadzie. Stąd nie ma kontroli jakości przez zespół dublujący Ubuntu; mogą być powolne, nie regularnie aktualizowane lub zawierać tylko część pakietów wymaganych przez pełny system Ubuntu, a nawet niektóre zmodyfikowane pakiety. Kiedy pomyślisz o tym, jeśli ktoś chciałby publicznie udostępnić swoje lustro, prawdopodobnie zarejestrowałby je na Launchpadzie, a wtedy powyższy skrypt by je znalazł. Więc google dla mirrorów na własne ryzyko. Jeśli mnie zapytasz, nie rób tego.

Malte Skoruppa
źródło