Metalinks
Материал из openSUSE.
Содержание |
Что такое Metalink
Metalink — открытый формат файлов на основе XML, предназначенный для описания ссылок на файлы для загрузки по различным протоколам (HTTP, FTP, BitTorrent и др.)
Таким образом программы для закачки файлов, поддерживающие metalink могут вести закачку файла одновременно с нескольких серверов, посредством сегментирования файла.
Metalink так же позволяет включать одну или несколько проверок файлов (хеши, pgp-ключи).
Менеджеры закачек с поддержкой Metalink
- aria2c (доступна в OSS репозитарии, а так же http://download.opensuse.org/repositories/network:/utilities/)
- DownThemAll!, Расширение Firefox, поддерживающее закачку посредством metalink.
- Retriever - менеджер закачек на java.
- KGet, Orbit Downloader, а так же множество других.
OpenSUSE и Metalink
Проект OpenSUSE позволяет закачку образов дистрибутивов, а так же отдельных пакетов посредством Metalink. Metalink файлы формируются динамически основным зеркалом download.opensuse.org
Пример закачки релиза OpenSUSE 11.1 посредством metalink
На странице http://software.opensuse.org/ ссылка на metalink файл помечена изображением
.
Скачаем DVD версию OpenSUSE 11.1 для x86 систем:
$ aria2c -c http://download.opensuse.org/distribution/11.1/iso/openSUSE-11.1-DVD-i586.iso.metalink
Ключ -c позволяет докачку файла, если его часть мы уже скачали. Без этого ключа закачка начнется заново. aria2c сразу создаст файл нужной длины, во избежания фрагментации. Поэтому наблюдать прогресс закачки по размеру файла не получится - ориентироваться стоит только на показания aria2c.
| | Хотя Metalink позволяет проверки корректности скачанного файла, предоставляемые в момент написания статьи metalink файлы такой информации не содержат. Поэтому проверять корректность скачанного образа придется вручную. |
Пакеты и Metalink
На основном зеркале download.opensuse.org каждому пакету соответствует metalink файл, что позволяет использовать metalink в пакетном менеджере zypper. Это является экспериментальной возможностью zypper. Для этого должны быть выполнены следующие требования:
- Установлен пакет aria2
- Переменная окружения ZYPP_ARIA2C установлена равной 1.
На самом деле сейчас проверяется только наличие переменной окружения ZYPP_ARIA2C. Bug 450245.
Пример использования:
# ZYPP_ARIA2C=1 zypper in some_package

