Metalink es un formato de archivo de metadatos extensible que describe uno o más archivos de computadora disponibles para descargar . Especifica archivos apropiados para el idioma y el sistema operativo del usuario ; facilita la verificación y recuperación de archivos en caso de corrupción de datos ; y enumera fuentes de descarga alternativas ( URI de espejo ).
Los metadatos se codifican en campos de encabezado HTTP y/o en un archivo XML con extensión .meta4 o .metalink . Las ubicaciones de descarga duplicadas brindan confiabilidad en caso de que un método falle. Algunos clientes también logran velocidades de descarga más rápidas al permitir que se descarguen diferentes fragmentos/segmentos de cada archivo desde múltiples recursos al mismo tiempo (descarga segmentada).
Metalink permite listar múltiples hashes de archivos parciales y completos junto con firmas PGP . Sin embargo, la mayoría de los clientes solo admiten la verificación MD5 , SHA-1 y SHA-256 . Además de las ubicaciones de espejo FTP y HTTP y rsync , también permite listar los métodos P2P BitTorrent , ed2k , magnet link o cualquier otro que use una URI .
Metalink 3.0 se lanzó públicamente en 2005. Fue diseñado para ayudar a descargar imágenes ISO de Linux y otros archivos grandes el día del lanzamiento, cuando los servidores estarían sobrecargados (cada servidor tendría que probarse manualmente) y para reparar descargas grandes reemplazando solo las partes con errores en lugar de volver a descargarlas por completo. Inicialmente fue adoptado por los administradores de descargas y fue utilizado por proyectos de código abierto como OpenOffice.org y distribuciones de Linux . Se desarrolló una comunidad a su alrededor, más programas de descarga lo apoyaron (incluidos los propietarios) y vio una adopción comercial. En 2008, la comunidad llevó su trabajo al Grupo de trabajo de ingeniería de Internet que resultó en Metalink 4.0 en 2010, descrito en un RFC de Standards Track . [1] Metalink 3.0 (con la extensión .metalink ) y Metalink 4.0 (con la extensión .meta4 ) son incompatibles porque tienen un formato ligeramente diferente. En 2011, otro RFC de Standards Track describió Metalink en campos de encabezado HTTP . [2]
Mandriva Linux ha integrado Metalink en la gestión de paquetes con urpmi y aria2. Fedora ha integrado Metalink en la gestión de paquetes con yum . openSUSE ha integrado Metalink en la gestión de paquetes con ZYpp y aria2.
Wubi , el instalador de Ubuntu basado en Windows , utiliza Metadl ( LGPL ) para descargar imágenes ISO de Ubuntu y aprovecha las características de Metalink de mayor disponibilidad y confiabilidad. Si hay errores en la descarga, se reparan, en lugar de reiniciar la descarga grande.
Appupdater ( GPL ) para Windows "es similar a apt-get o yum en Linux. Automatiza el proceso de instalación y mantenimiento de versiones actualizadas de los programas". [ cita requerida ]
Actualmente, OpenOffice.org utiliza Metalinks para distribuir su paquete ofimático gratuito. cURL ofrece Metalinks para sus descargas. UniProt Consortium también ofrece un Metalink para su gran base de datos de proteínas. Dofus , un MMORPG Flash , utiliza Metalinks para las descargas, al igual que SageMath , el software matemático de código abierto.
Según el sitio principal metalinker.org, la plataforma de colaboración y alojamiento de software Origo genera Metalinks para todas las versiones alojadas. [7]
Las siguientes distribuciones de Linux utilizan Metalink para la distribución de imágenes ISO : [ cita requerida ] Adios, Bayanihan Linux, BeleniX , Berry Linux , BLAG Linux y GNU , Bluewhite64 Linux, Damn Small Linux , Fedora , GoboLinux , Granular Linux , KateOS , Linux Mint , openSUSE , Pardus Linux , PCLinuxOS , PuppyLinux , Sabayon Linux , StartCom Enterprise Linux, SUSE Linux , Ubuntu .
Las siguientes distribuciones basadas en FreeBSD utilizan Metalink para la distribución de imágenes ISO : DesktopBSD , MidnightBSD y TrueOS .
Una guía sobre qué clientes admiten las funciones de Metalink:
Ningún cliente admite rsync en este momento.
Metalink tiene formato XML, por lo que se puede crear de forma manual o con una biblioteca XML, lo que resulta útil para la automatización. Estas herramientas son específicas para Metalink.
Los archivos Metalink 4.0 tienen la extensión .meta4 y son archivos de texto XML . Se proporcionan con el tipo de medio de Internet application/metalink4+xml .
<?xml version="1.0" encoding="UTF-8"?> <metalink xmlns= "urn:ietf:params:xml:ns:metalink" > <published> 2009-05-15T12:23:23Z </published> <file name= "example.ext" > <size> 14471447 </size> <identity> Ejemplo </identity> <version> 1.0 </version> <language> en </language> <description> Una descripción del archivo de ejemplo para descargar. </description> <hash type= "sha-256" > 3d6fece8033d146d8611eab4f032df738c8c1283620fd02a1f2bfec6e27d590d </hash> <url location= "de" priority= " 1" > ftp://ftp.example.com/example.ext </url> <url location= "fr" priority= "1" > http://example.com/example.ext </url> <metaurl mediatype= "torrent" priority= "2" > http://example.com/example.ext.torrent </metaurl> </file> </metalink>
Metalink en los campos de encabezado HTTP hace uso de campos de encabezado HTTP estándar existentes, como ETags , campos de encabezado de enlace (para espejos y P2P) y resúmenes de instancias (para hashes).
Etiqueta electrónica: "thvDyvhfIqlvFe+A9MYgxAfm1q5="Enlace: <http://www2.example.com/example.ext>; rel=duplicadoEnlace: <ftp://ftp.example.com/example.ext>; rel=duplicadoEnlace: <http://example.com/example.ext.torrent>; rel=describedby; type="application/x-bittorrent"Enlace: <http://example.com/example.ext.meta4>; rel=describedby; type="application/metalink4+xml"Enlace: <http://example.com/example.ext.asc>; rel=describedby; type="application/pgp-signature"Compendio: SHA-256=MWVkMWQxYTRiMzk5MDQ0MzI3NGU5NDEyZTk5OWY1ZGFmNzgyZTJlODYzYjRjYzFhOTlmNTQwYzI2M2QwM2U2MQ==
Los archivos Metalink 3.0 tienen la extensión .metalink y son archivos de texto XML .
<?xml version="1.0" encoding="UTF-8"?> <metalink version= "3.0" xmlns= "http://www.metalinker.org/" > <archivos> < nombre de archivo = "ejemplo.ext" > <verificación> < tipo de hash= "md5" > ejemplo-hash-md5 </hash> < tipo de hash= "sha1" > ejemplo-hash-sha1 </hash> < tipo de firma= "pgp" /> </verificación> <recursos> <tipo de url = "ftp" ubicación= "us" preferencia= "90" > ftp://ftp.example.com/example.ext </url> < tipo de url= "ftp" ubicación= "uk" preferencia= "90" > ftp://ftp.example.net/example.ext </url> < tipo de url= "http" ubicación= "us" preferencia= "90" > http://ejemplo.com/ejemplo.ext </url> <url tipo= "http" ubicación= "de" preferencia= "90" > http://ejemplo.net/ejemplo.ext </url> <url tipo= "bittorrent" preferencia= "100" > http://ejemplo.org/ejemplo.ext.torrent </url> <url tipo= "rsync" /> <url tipo= "magnet" /> <url tipo= "ed2k" /> </recursos> </archivo> </archivos> </metalink>