ARM用のports.ubuntu.comの代替リポジトリはありますか?


14

私はサムスンクロームブック(ARMチップを搭載)で使用しています。ports.ubuntu.comは私にとってはかなり遅いミラーです。ARMパッケージを運ぶ他のミラーはありますか?

https://wiki.ubuntu.com/UbuntuDevelopment/PackageArchive#Portsは、まったくないか、少なくとも非常に少ないことを示唆しているようです-何かありますか?

回答:


23

はい、あります。多くはありませんが。

Launchpadのミラーリストからすべてのミラーを解析し、次のパス/dists/$DIST/$REPO/binary-$ARCH/が含まれているかどうかを確認する次のスクリプトを作成しました。

  • $DISTあなたのUbuntuディストリビューションは、例えば、ありますprecisesaucytrusty、...
  • $REPOあなたが探しているリポジトリ、すなわち、あるmainrestricteduniverseまたはmultiverse
  • $ARCH探しているアーキテクチャです(例:)armhf

例のために、Ubuntu 13.10(Saucy)を持っていると仮定します。次に、アーキテクチャのリポジトリを/dists/saucy/main/binary-armhf/提供するミラーを検出するために、パスのミラーを検索することができmainますarmhf。ミラーにこのパスが含まれている場合、Saucy Salamander のリポジトリのアーキテクチャのバイナリパッケージが必要であり、スクリプトはミラーのURLとともに出力されます。armhfmainFOUND:

注:ミラー上のこのパスの存在は実際には保証ではなく、必要なパッケージが含まれていることを示すだけです。ただし、ミラーにそのパスは含まれているがパッケージは含まれていない場合、少なくともそのミラーには何か怪しいものがあると言えます。

また、スクリプトにはが必要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分かかりました。armhfLaunchpadのミラーリストにSaucy のアーキテクチャ用のミラーが1つしか見つからないことに驚きました。つまり、TU Chemnitzのミラーです(これはドイツに拠点を置いています。ports.ubuntu.comはまだ拠点があるようです)ですから、あなたの質問に対する答えは、「はい、あなたに代わる鏡が1つあります...」のように見えます;-)

幸いなことに、このミラーを手動で確認しました。これは、実際にすべてのUbuntuリリースのすべてのパッケージを含むports.ubuntu.comの完全なミラーです。だから、やってみてください!

また、Saucyよりも別のリリースで幸運があるかもしれないことに注意してください。

代替(非推奨)

完全を期すためにこれに言及していますが、これはお勧めしません。Launchpadのミラーリストを調べる代わりに、もちろん、単にgoogleでミラーを検索することもできます。

これを行う1つの方法は、単に文字列をグーグルで検索することです*/dists/saucy/main/binary-armhf/*(以前のように、ニーズに合わせてディストリビューション、リポジトリ、およびアーキテクチャを適合させます)。これにより、多くの代替ミラーが見つかりますが、ほとんどはLaunchpadに正式に登録されていません。したがって、Ubuntuミラーチームによる品質チェックはありません。遅いか、定期的に更新されていないか、完全なUbuntuシステムに必要なパッケージのサブセットのみ、または変更されたパッケージでさえ含まれている場合があります。考えてみると、誰かがミラーを公開したい場合、おそらくLaunchpadに登録して、上記のスクリプトがそれを見つけたでしょう。だからあなた自身の責任でミラーのためにグーグル。あなたが私に尋ねるなら、それをしないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.