Чи є альтернативні сховища до ports.ubuntu.com для ARM?


14

Я використовую хромобук Samsung (з чіпом ARM). ports.ubuntu.com для мене досить повільне дзеркало. Чи є інші дзеркала, що несуть пакети ARM?

https://wiki.ubuntu.com/UbuntuDevelopment/PackageArchive#Ports, здається, передбачає, що їх немає, або принаймні дуже мало - чи є такі?

Відповіді:


24

Так, є. Хоч і не багато.

Я написав наступний скрипт, який розбере всі дзеркала зі списку дзеркал Launchpad і перевірить, чи містять вони шлях, /dists/$DIST/$REPO/binary-$ARCH/де

  • $DISTце ваше розподіл Ubuntu, наприклад, precise, saucy, trusty, ...
  • $REPOце сховище , що ви шукаєте, то є main, restricted, universeабо multiverse.
  • $ARCHце архітектура , що ви шукаєте, наприклад, armhf.

На приклад, дозвольте припустити, що у вас є Ubuntu 13.10 (Saucy). Тоді ви можете пошукати в дзеркалах шлях /dists/saucy/main/binary-armhf/, щоб виявити дзеркала, які пропонують mainсховище для armhfархітектури. Якщо дзеркало містить цей шлях, це означає, що воно повинно мати бінарні пакети armhfархітектури для mainсховища Saucy Salamander, і сценарій виводитиме FOUND:разом із URL-адресою дзеркала.

Зверніть увагу: наявність цього шляху на дзеркалі насправді не є гарантією, а лише свідченням того, що воно містить необхідні пакети; однак якщо дзеркало містить цей шлях, але не пакунки, принаймні, ми можемо сказати, що з цим дзеркалом є щось рибне.

Також зауважте, що сценарій вимагає curl. Встановіть його, якщо у вас його немає ( sudo apt-get install curl).

Таким чином, використовуючи цей скрипт, ви можете швидко дізнатися, які дзеркала зі списку дзеркал Launchpad пропонують те, що вам потрібно. Зауважте, що сценарій може працювати досить довго, оскільки він контактує з кожним сервером у цьому списку. Ці сервери розповсюджуються по всьому світу, і деякі з них можуть бути повільними або недосяжними (такі, що curlможуть зупинятися, поки не вичерпається спроба з'єднання). Можна легко вдосконалити сканування лише певних дзеркал (наприклад, лише у вашій країні), але це хороша відправна точка.

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

Я зберег скрипт як find_mirrors, зробив його виконуваним ( chmod 755 find_mirrors) і виконав його наступним чином:

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

На мене пішло близько 10-15 хвилин. Я був здивований, коли знайшов armhfу списку дзеркал Launchpad лише одне дзеркало для архітектури Saucy, а саме те в TU Chemnitz (це базується в Німеччині; для вас це все ще може бути швидше, ніж ports.ubuntu.com, який, здається, базується у Великій Британії.) Тож, здається, відповідь на ваше запитання більше нагадує "Так, для вас є одне альтернативне дзеркало ..." ;-)

Хороша новина полягає в тому, що я перевірив це дзеркало вручну, і це справді повне дзеркало ports.ubuntu.com , з усіма пакетами для всіх живих релізів Ubuntu. Отже, спробуйте!

Зауважте також, що вам може бути більше удачі з іншим випуском, ніж Saucy.

Альтернатива (не рекомендується)

Я згадую це з метою повноти, але цього не раджу. Замість того, щоб дивитись на список дзеркал Launchpad , ви, звичайно, також можете просто гугл для дзеркал.

Один із способів зробити це - просто google для рядка */dists/saucy/main/binary-armhf/*(підходить розподіл, сховище та архітектура до ваших потреб, як і раніше). Тут знайдеться багато альтернативних дзеркал, але більшість офіційно не зареєстровані на Launchpad. Отже, не проводиться перевірка якості з боку дзеркальної команди Ubuntu; вони можуть бути повільними, не регулярно оновлюватися, або містять лише підмножину пакетів, необхідних повноцінною системою Ubuntu, або навіть деякі модифіковані пакети. Коли ви задумаєтесь про це, якби хтось захотів зробити своє дзеркало загальнодоступним, він, ймовірно, зареєстрував би його на Launchpad, і тоді вищезгаданий сценарій знайшов би його. Тому Google для дзеркал на власний ризик. Якщо ви запитаєте мене, не робіть цього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.