Saltar al contenido

¿Existen repositorios alternativos a ports.ubuntu.com para ARM?

Te sugerimos que revises esta respuesta en un entorno controlado antes de pasarlo a producción, un saludo.

Solución:

Sí hay. Aunque no muchos.

Escribí el siguiente script que analizará todos los espejos de la lista de espejos de Launchpad y verificará si contienen la ruta /dists/$DIST/$REPO/binary-$ARCH/ donde

  • $DIST es su distribución de Ubuntu, por ejemplo, precise, saucy, trusty
  • $REPO es el repositorio que estás buscando, es decir, main, restricted, universe o multiverse.
  • $ARCH es la arquitectura que está buscando, por ejemplo, armhf.

A modo de ejemplo, déjame suponer que tienes Ubuntu 13.10 (Saucy). Entonces es posible que desee buscar en los espejos el camino. /dists/saucy/main/binary-armhf/ para descubrir espejos que ofrezcan la main repositorio para el armhf arquitectura. Si un espejo contiene este camino, significa que debería tener los paquetes binarios para el armhf arquitectura para la main repositorio para Saucy Salamander, y el script generará FOUND: junto con la URL del espejo.

Tenga en cuenta: la presencia de esta ruta en un espejo en realidad no es una garantía, sino solo una indicación de que contiene los paquetes necesarios; sin embargo, si un espejo contiene esa ruta pero no los paquetes, al menos podemos decir que hay algo sospechoso con ese espejo.

También tenga en cuenta que el script requiere curl. Instálalo si no lo tienes (sudo apt-get install curl).

Por lo tanto, al utilizar este script, puede averiguar rápidamente qué réplicas de la lista de réplicas de Launchpad ofrecen lo que necesita. Tenga en cuenta que la secuencia de comandos puede ejecutarse durante bastante tiempo, ya que contacta con todos y cada uno de los servidores de esa lista. Estos servidores están distribuidos por todo el mundo y algunos de ellos pueden ser lentos o inaccesibles (por ejemplo, curl puede detenerse hasta que se agote el tiempo de espera del intento de conexión). Se puede mejorar fácilmente para escanear solo ciertos espejos (por ejemplo, solo en su país), pero es un buen punto de partida.

#!/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)'); 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

Guardé el guión como find_mirrorslo hizo ejecutable (chmod 755 find_mirrors), y lo ejecutó de la siguiente manera:

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

Me tomó alrededor de 10-15 minutos. Me sorprendió encontrar sólo un espejo para el armhf arquitectura para Saucy en la lista de espejos de Launchpad, a saber, la de TU Chemnitz (esto tiene su sede en Alemania; aún puede ser más rápido para usted que ports.ubuntu.com, que parece tener su sede en Gran Bretaña). respuesta a su pregunta es más como “Sí, hay uno espejo alternativo para ti…” 😉

La buena noticia es que verifiqué manualmente este espejo y, de hecho, es un espejo completo de ports.ubuntu.com, con todos los paquetes para todas las versiones activas de Ubuntu. Entonces, ¡pruébalo!

Tenga en cuenta también que puede tener más suerte con otro lanzamiento que con Saucy.

Alternativa (no recomendada)

Menciono esto con el propósito de completarlo, pero no lo aconsejo. En lugar de buscar en la lista de espejos de Launchpad, por supuesto, también puede simplemente buscar espejos en Google.

Una forma de hacer esto sería simplemente buscar en Google el string */dists/saucy/main/binary-armhf/* (Adapte la distribución, el repositorio y la arquitectura a sus necesidades como antes). Esto encontrará muchos espejos alternativos, pero la mayoría no están registrados oficialmente en Launchpad. Por lo tanto, no hay controles de calidad por parte del equipo espejo de Ubuntu; pueden ser lentos, no actualizarse regularmente o contener solo un subconjunto de los paquetes requeridos por un sistema Ubuntu completo, o incluso algunos paquetes modificados. Cuando lo piensa, si alguien quisiera hacer que su espejo estuviera disponible públicamente, probablemente lo habría registrado en Launchpad, y luego el script anterior lo habría encontrado. Así que busque espejos en Google bajo su propio riesgo. Si me preguntas, no lo hagas.

Si conservas alguna desconfianza o forma de progresar nuestro sección puedes ejecutar una anotación y con placer lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *