我在三星 chromebook(带有 ARM 芯片)上使用。ports.ubuntu.com 对我来说是一个相当慢的镜像。是否有其他带有 ARM 包的镜像?
https://wiki.ubuntu.com/UbuntuDevelopment/PackageArchive#Ports似乎表明没有,或者至少很少 - 有吗?
Mal*_*ppa 29
是的,有。虽然不多。
我编写了以下脚本,它将解析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架构提供存储库的镜像。如果镜像包含此路径,则意味着它应该具有Saucy Salamander 存储库armhf架构的二进制包main,并且脚本将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
mirrorList=()
# 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
mirrorList+=( "$url" )
done
for url in "${mirrorList[@]}"; 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..
if curl --connect-timeout 1 -m 1 -s --head "$url/dists/$DIST/$REPO/binary-$ARCH/" | head -n 1 | grep -q "HTTP/1.[01] [23]..";
then
echo "FOUND: $url"
fi
) &
done
wait
echo "All done!"
Run Code Online (Sandbox Code Playgroud)
我将脚本另存为find_mirrors,使其可执行 ( chmod 755 find_mirrors),然后按如下方式执行:
$ ./find_mirrors armhf saucy main | grep FOUND
FOUND: http://ftp.tu-chemnitz.de/pub/linux/ubuntu-ports/
Run Code Online (Sandbox Code Playgroud)
我花了大约 10-15 分钟。我很惊讶地发现armhfLaunchpad 镜像列表中只有一个适用于 Saucy 架构的镜像,即TU Chemnitz 的镜像(它位于德国;对您来说,它可能仍然比似乎基于的ports.ubuntu.com更快在英国)。所以它似乎在回答你的问题更像是“是的,有一个适合你的替代镜...” ;-)
好消息是我确实手动检查了这个镜像,它确实是ports.ubuntu.com的完整镜像,包含所有 Ubuntu 版本的所有软件包。所以,一定要试试!
另请注意,与 Saucy 相比,使用另一个版本可能更幸运。
替代(不推荐)
我提到这一点是为了完整性,但我不建议这样做。除了查看Launchpad 镜像列表之外,您当然也可以简单地在 google 上搜索镜像。
一种方法是简单地搜索字符串*/dists/saucy/main/binary-armhf/*(像以前一样适合您的需求的分发、存储库和架构)。这将找到许多替代镜像,但大多数都未在 Launchpad 上正式注册。因此,Ubuntu 镜像团队没有进行质量检查;它们可能很慢,没有定期更新,或者只包含完整 Ubuntu 系统所需的包的子集,甚至一些修改过的包。仔细想想,如果有人想让他们的镜像公开可用,他们可能会在 Launchpad 上注册它,然后上面的脚本就会找到它。所以谷歌镜像的风险自负。如果你问我,不要这样做。
| 归档时间: |
|
| 查看次数: |
22703 次 |
| 最近记录: |