Metalinks

Перейти к: навигация, поиск
Icon-merge.png Эта статья или секция предлагается к объединению со статьёй или секцией SDB:Metalink !
Вы можете помочь в редактировании данной статьи, но, пожалуйста, сначала обратитесь к странице обсуждения, чтобы завершить слияние как можно скорее.

Что такое Metalink

Metalink — открытый формат файлов на основе XML, предназначенный для описания ссылок на файлы для загрузки по различным протоколам (HTTP, FTP, BitTorrent и др.)

Таким образом программы для закачки файлов, поддерживающие metalink могут вести закачку файла одновременно с нескольких серверов, посредством сегментирования файла.

Metalink так же позволяет включать одну или несколько проверок файлов (хеши, pgp-ключи).

Менеджеры закачек с поддержкой Metalink

openSUSE и Metalink

Проект OpenSUSE позволяет закачку образов дистрибутивов, а так же отдельных пакетов посредством Metalink. Metalink файлы формируются динамически основным зеркалом download.opensuse.org

Пример закачки релиза openSUSE 15.1 посредством metalink

На странице http://software.opensuse.org/ ссылка на metalink файл помечена изображением Logo metalink size4.gif. Скачаем DVD версию openSUSE 15.1 для x86 систем:

$ aria2c -c http://download.opensuse.org/distribution/15.1/iso/openSUSE-15.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