Apakah ada repositori alternatif ke ports.ubuntu.com untuk ARM?


Jawaban:


23

Ya ada. Padahal tidak banyak.

Saya menulis skrip berikut yang akan mem-parsing semua mirror dari daftar mirror Launchpad , dan memeriksa apakah mereka mengandung path di /dists/$DIST/$REPO/binary-$ARCH/mana

  • $DISTadalah Anda distribusi Ubuntu, misalnya, precise, saucy, trusty, ...
  • $REPOadalah repositori Anda cari, yaitu, main, restricted, universeatau multiverse.
  • $ARCHadalah arsitektur yang Anda cari, mis armhf. , .

Sebagai contoh, izinkan saya berasumsi Anda memiliki Ubuntu 13.10 (Saucy). Kemudian Anda mungkin ingin mencari mirror untuk path /dists/saucy/main/binary-armhf/sehingga menemukan mirror yang menawarkan mainrepositori untuk armhfarsitektur. Jika mirror berisi lintasan ini, itu berarti ia harus memiliki paket biner untuk armhfarsitektur untuk mainrepositori untuk Saucy Salamander, dan skrip akan ditampilkan FOUND:bersama dengan URL mirror.

Harap dicatat: keberadaan jalur ini di cermin sebenarnya bukan jaminan, tetapi hanya indikasi bahwa itu berisi paket yang diperlukan; namun jika sebuah mirror mengandung path itu tetapi bukan paket-paketnya, setidaknya kita dapat mengatakan bahwa ada sesuatu yang mencurigakan dengan mirror itu.

Perhatikan juga bahwa skrip membutuhkan curl. Instal jika Anda tidak memilikinya ( sudo apt-get install curl).

Dengan demikian, menggunakan skrip ini, Anda dapat dengan cepat mengetahui mirror mana dari daftar mirror Launchpad yang menawarkan apa yang Anda butuhkan. Perhatikan bahwa skrip dapat berjalan cukup lama karena skrip itu menghubungi setiap server pada daftar itu. Server-server ini didistribusikan di seluruh dunia dan beberapa di antaranya mungkin lambat atau tidak dapat dijangkau (sedemikian rupa sehingga curldapat terhenti hingga upaya koneksi habis). Mungkin mudah ditingkatkan untuk memindai hanya cermin tertentu (misalnya, hanya di negara Anda), tetapi ini merupakan titik awal yang baik.

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

Saya menyimpan skrip sebagai find_mirrors, menjadikannya executable ( chmod 755 find_mirrors), dan menjalankannya sebagai berikut:

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

Butuh sekitar 10-15 menit untuk saya. Saya terkejut menemukan hanya satu cermin untuk armhfarsitektur untuk Saucy di daftar mirror Launchpad, yaitu yang ada di TU Chemnitz (ini berbasis di Jerman; mungkin masih lebih cepat untuk Anda daripada ports.ubuntu.com yang tampaknya berbasis di Inggris.) Jadi sepertinya jawaban untuk pertanyaan Anda lebih seperti "Ya, ada satu cermin alternatif untuk Anda ..." ;-)

Berita baiknya adalah saya melakukan pemeriksaan mirror ini secara manual dan ini adalah mirror lengkap ports.ubuntu.com , dengan semua paket untuk semua rilis Ubuntu yang aktif . Jadi, cobalah!

Perhatikan juga bahwa Anda mungkin lebih beruntung dengan rilis lain daripada Saucy.

Alternatif (tidak disarankan)

Saya menyebutkan ini untuk tujuan kelengkapan, tetapi saya tidak menyarankan ini. Alih-alih mencari di daftar mirror Launchpad , tentu saja Anda juga bisa dengan mudah menggunakan google untuk mirror.

Salah satu cara untuk melakukan ini adalah dengan hanya google untuk string */dists/saucy/main/binary-armhf/*(distribusi sesuai, repositori dan arsitektur untuk kebutuhan Anda seperti sebelumnya). Ini akan menemukan banyak mirror alternatif, tetapi sebagian besar tidak terdaftar secara resmi di Launchpad. Karenanya tidak ada pemeriksaan kualitas oleh tim mirror Ubuntu; mereka mungkin lambat, tidak diperbarui secara teratur, atau hanya berisi sebagian dari paket yang diperlukan oleh sistem Ubuntu penuh, atau bahkan beberapa paket yang dimodifikasi. Ketika Anda memikirkannya, jika seseorang ingin membuat cermin mereka tersedia untuk umum, mereka mungkin akan mendaftarkannya di Launchpad, dan kemudian skrip di atas akan menemukannya. Jadi google for mirror dengan risiko Anda sendiri. Jika Anda bertanya kepada saya, jangan lakukan itu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.