El distribución es una herramienta que viaja a través de Internet para encontrar enlaces y metadatos ISO de distribución, lo que le facilita el monitoreo de nuevos lanzamientos, quemar medios de instalación o construir su propio archivo ISO Bank.
Usando un binario preconstruido:
go install github.com/ovh/distronaut@latestEdificio de la fuente
make Use el comando fetch para recuperar un JSON de las fuentes configuradas:
distronaut fetch -c config/sources.yml -f ' debian 'La salida es similar a la siguiente:
[
{
"source" : " Debian " ,
"family" : " Linux " ,
"distribution" : " Debian (formerly Debian GNU/Linux) " ,
"website" : " http://www.debian.org/ " ,
"documentation" : " http://www.debian.org/doc/ " ,
"status" : " Active " ,
"logo" : " https://distrowatch.com/images/yvzhuwbpy/debian.png " ,
"logo64" : " data:image/png;base64,... " ,
"versions" : [
{
"url" : " https://cdimage.debian.org/cdimage/archive/12.6.0/amd64/iso-cd/debian-12.6.0-amd64-netinst.iso " ,
"hash" : " sha256:ade3a4acc465f59ca2496344aab72455945f3277a52afc5a2cae88cdc370fa12 " ,
"hashfile" : " https://cdimage.debian.org/cdimage/archive/12.6.0/amd64/iso-cd/SHA256SUMS " ,
"version" : " 12.6.0 " ,
"arch" : " amd64 " ,
"meta" : {
"release" : " 2023-06-10 "
}
}
]
}
]Los metadatos adicionales se eliminan de Distrowatch.com.
Este paquete también se puede importar dentro de otra base de código Golang:
package main
import (
"encoding/json"
"fmt"
"github.com/ovh/distronaut/pkg/distro"
)
func main () {
src , _ := distro . FetchSources ( "config/sources.yml" , "debian" )
j , _ := json . MarshalIndent ( src , "" , " " )
fmt . Println ( string ( j ))
}Abra su archivo de configuración y agregue una nueva entrada, que contiene:
name es un nombre amigable para su nueva fuente (también se puede usar para el filtrado)url es el patrón de URL de origen:patterns es un mapa que contiene::* son patrones regex que coinciden con el parámetro de ruta definidok<:name> sintaxis.hash.* Contiene todas las configuraciones relacionadas con el hash.hash.file es un patrón regex que coincide con el archivo que contiene hashes.hash.pattern es un patrón regex que captura el hash de un ISO dado (que se puede referenciar con k<iso> ).hash.algo es el nombre del algoritmo de hash.meta.* Contiene todas las configuraciones relacionadas con los metadatos.meta.source debe configurarse para distrowatch (solo la fuente de metadatos compatible por ahora).meta.id es el mango de distribución de distribución.meta.version es un patrón regex que coincide con la versión como se hace referencia en DistrowatchFuente de ejemplo:
- name : Debian
url : https://cdimage.debian.org/debian-cd/:version/:arch/iso-cd/:iso
patterns :
:version : ^(d+.d+(?:.d+)?)/$
:arch : ^(amd64|arm64)/$
:iso : ^debian-k<version>-k<arch>-netinst.iso$
.hash.file : SHA256SUMS
.hash.algo : sha256
.hash.pattern : (?m)^([0-9a-f]{64})s+k<iso>
.meta.source : distrowatch
.meta.id : debian
.meta.version : (d+)Lea primero nuestras pautas de contribución (contribuyendo.md).
Ejecutar pruebas usando:
make testUn servidor burlado se generará temporalmente en el puerto 3000 para evitar realizar solicitudes de red reales.
Copyright 2021 OVH SAS
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.