¿Cómo crear un repositorio local usando apt-mirror y mirrorkit?


9

Tener un repositorio local puede ser muy útil. Es posible usarrsync para crear un espejo de repositorio, pero esto hace que se descarguen todas las versiones, incluso las más antiguas, e incluiría archivos para arquitecturas que podrían no ser necesarias.

apt-mirrorle permite a uno elegir selectivamente partes del repositorio. mirrorkitproporciona un front-end para apt-mirror.

¿Cuál es la mejor manera de crear un espejo de repositorio local para partes seleccionadas de los archivos de Ubuntu?

Por ejemplo, uno podría incluir:

  • Principal, Restringido, Universo, Multiverso, Todo Ubuntu y Lubuntu, pero excluye otros derivados, como Kubuntu y Xubuntu.

  • Solo AMD64 e i386, pero excluye otras arquitecturas.

  • Solo Trusty Tahr, pero no Precise Penguin o Utopic Unicorn.

Es posible que desee configurar el proceso para que se descargue desde un espejo local, en lugar de los archivos principales.

¿Cómo puedo crear un repositorio local usando apt-mirrory mirrorkitpara una arquitectura seleccionada, versión o variante de Ubuntu?


Excluir Kubuntu? ¿Quiere decir excluir los ISO de Kubuntu o excluir cualquier paquete que esté siendo usado por Kubuntu?
muru

Excluya los ISO de Kubuntu y Xubuntu, por ejemplo. Quizás haya un montón de ellos (Precise Kubuntu ARM, Precise Kubuntu i386, Quantal Kubuntu ARM, Quantal Kubuntu i386 ...) y la descarga espejo inicial podría completarse más rápidamente sin esos ISO. Pero si solo son unos pocos Gigabytes más, tal vez no importe tanto.
user75798

1
Los ISO se alojan por separado de los paquetes. Por lo tanto, puede usar apt-mirror como lo haría normalmente para reflejar los repositorios de paquetes, y usar alguna otra herramienta para los ISO. La pregunta se convierte en encontrar filtros de exclusión apropiados para esa herramienta (por ejemplo, rsync).
muru

"puedes usar apt-mirror como lo harías normalmente" Lo siento, no sé cómo hacerlo. Esto es exactamente lo que me gustaría que me explicaran.
user75798

Respuestas:


9

El repositorio de CD y el repositorio de software son dos componentes distintos (incluso tienen páginas separadas de Launchpad: cdmirrors y archivemirrors ). Por lo tanto, reflejarlos son dos tareas distintas. Además, si bien los diversos tipos tienen diferentes carpetas en el repositorio de CD, comparten un repositorio de software. Entonces puede reflejar selectivamente las imágenes por sabor, pero no el software. Para el repositorio de software, puede duplicar selectivamente en función de:

  • liberar ( trusty, precise, etc.)
  • arquitectura ( amd64, i386, etc.)
  • tipo de paquete (binario [ deb] vs fuente [ deb-src])
  • canales ( trusty, trusty-updates, trusty-backports, etc.)
  • secciones ( main, multiverse, etc.)

Para duplicar el repositorio de software, use apt-mirror.

apt-mirrorse configura usando /etc/apt/mirror.list. Tiene un formato muy similar a sources.list. El archivo de configuración instalado por el paquete tiene algunas opciones comentadas que enumeran sus valores predeterminados. Si lo desea, puede descomentarlos y cambiarlos.

Para duplicar un repositorio, debe agregar una línea mirror.listcomo le gustaría para sources.list:

deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

El valor predeterminado es reflejar solo la arquitectura del host, por lo que si está en un Ubuntu de 64 bits, solo amd64se reflejará. Necesita agregar otra línea del formulario:

deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

Y para paquetes fuente:

deb-src http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

Si está buscando un espejo razonablemente completo, estas líneas serían las mínimas (también recomendaría el -updatescanal):

deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe

Finalmente, debe agregar una cleanlínea para que los paquetes que ya no estén disponibles en el repositorio se filtren para su eliminación:

clean http://us.archive.ubuntu.com/ubuntu

Digamos que sus variables son así (las predeterminadas):

set base_path    /var/spool/apt-mirror
set mirror_path  $base_path/mirror
set skel_path    $base_path/skel
set var_path     $base_path/var
set cleanscript $var_path/clean.sh

Entonces:

  • El repositorio se reflejará en $mirror_path/parent-hostname/directory(so /var/spool/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu)
  • El clean.sh(que será un conjunto de rmcomandos para eliminar paquetes y directorios obsoletos) será /var/spool/apt-mirror/var/clean.sh.
  • Los registros irán a /var/spool/apt-mirror/var.

El apt-mirrorpaquete instala un trabajo cron ( /etc/cron.d/apt-mirror), que debe editar para habilitar (descomentando la línea que contiene /usr/bin/apt-mirror). También debe agregar un trabajo cron para ejecutar clean.sh(lo ejecuto semanalmente).

Por supuesto, debe reemplazarlo http://us.archive.ubuntu.com./ubuntucon el espejo que prefiera.


1
¿Es realmente deb-amd64o deb arch=amd64? Solo puedo encontrar este último en la página de manual
Anwar

1
@Anwar el primero. Este último es para sources.list, que tiene un formato similar pero no idéntico. Consulte manpages.ubuntu.com/manpages/trusty/en/man1/apt-mirror.1.html , donde deb-powerpcestá en el ejemplo.
muru

Oh! No tenía experiencia con apt-mirror. Pensé que era para sources.list. Gracias
Anwar

2

Recomiendo apt-cacher para aquellos con espacio limitado o aquellos que tienen precios exorbitantes de internet en sus países.

supuestamente, apt-mirror requiere al menos 15 GB por cada sabor (32/64 bits) de la distribución que desee. apt-cacher solo usa los paquetes que has instalado.

Lea Crear un repositorio local de Ubuntu usando Apt-Mirror y Apt-Cacher para obtener más detalles / instrucciones, por favor.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.