web-dev-qa-db-ja.com

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

Samsung chromebook(ARMチップ)で使用しています。 ports.ubuntu.comは私にとってはかなり遅いミラーです。 ARMパッケージを保持する他のミラーはありますか?

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

14
dja

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

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

  • $DISTはUbuntuディストリビューションです。例:precisesaucytrusty、...
  • $REPOは探しているリポジトリです。つまり、mainrestricteduniverse、またはmultiverseです。
  • $Archは、探しているアーキテクチャです(例:armhf)。

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

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

また、スクリプトには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分かかりました。ランチパッドミラーリストでSaucyのarmhfアーキテクチャ用のミラーが1つしか見つからなかったことに驚きました。つまり、 TU Chemnitz にあります(これはドイツに基づいています。あなたは ports.ubuntu.com よりもイギリスに拠点を置いているようです。)それで、あなたの質問に対する答えは、「はい、ありますoneあなたのための代替ミラー... ";-)

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

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

代替案(非推奨)

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

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

22
Malte Skoruppa