对于ARM,ports.ubuntu.com是否有其他存储库?


Answers:


23

是的,有。虽然不多。

我编写了以下脚本,该脚本将解析启动板镜像列表中的所有镜像,并检查它们是否包含路径/dists/$DIST/$REPO/binary-$ARCH/,其中

  • $DIST是你的Ubuntu发行版,例如precisesaucytrusty,...
  • $REPO是你要找的,即仓库mainrestricteduniversemultiverse
  • $ARCH是您要寻找的架构,例如armhf

为了举例,让我假设您有Ubuntu 13.10(Saucy)。然后,您可能想在镜像中搜索路径/dists/saucy/main/binary-armhf/,以便发现mainarmhf架构提供存储库的镜像。如果镜像包含此路径,则意味着它应该具有Saucy Salamander存储库armhf体系结构的二进制软件包main,并且脚本将FOUND:与镜像的URL一起输出。

请注意:此路径在镜像上的存在实际上并不能保证,仅表示它包含必需的软件包。但是,如果镜像确实包含该路径但不包含软件包,则至少我们可以说该镜像存在某些问题。

另请注意,脚本需要curl。如果没有它,请安装它(sudo apt-get install curl)。

因此,使用此脚本,您可以快速从启动板镜像列表中找出哪些镜像可以满足您的需求。请注意,该脚本可能会运行一段时间,因为它与该列表上的每台服务器联系。这些服务器分布在全球各地,其中一些服务器可能很慢或无法访问(以至于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架构的镜像,即Chemnitz TU的一个镜像(该镜像位于德国;对于您来说,它可能仍然比似乎基于ports.ubuntu.com更快的镜像)所以似乎您的问题的答案更像是“是的,有一个替代镜子为您...” ;-)

好消息是,我确实手动检查了此镜像,并且它确实是ports.ubuntu.com的完整镜像,其中包含所有活动的Ubuntu版本的所有软件包。因此,请尝试!

另请注意,与Saucy相比,您可能对其他发行版更满意。

替代(不推荐)

我出于完整性的目的提及此问题,但我不建议这样做。除了查看Launchpad镜像列表之外,您当然也可以简单地通过Google搜索镜像。

一种方法是简单地用谷歌搜索字符串*/dists/saucy/main/binary-armhf/*(像以前一样根据您的需要来分配分布,存储库和架构)。这将找到许多备用镜像,但大多数未在Launchpad上正式注册。因此,Ubuntu镜像团队不会进行质量检查。它们可能很慢,没有定期更新,或者仅包含完整的Ubuntu系统所需的软件包的子集,甚至是某些经过修改的软件包。当您考虑它时,如果有人要公开公开其镜像,则他们可能已经在Launchpad上注册了该镜像,然后上述脚本便找到了它。因此,谷歌搜索镜像需要您自担风险。如果您问我,请不要这样做。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.