web-dev-qa-db-fra.com

Comment créer un référentiel local en utilisant apt-mirror et mirrorkit?

Avoir un référentiel local peut être très utile. Il est possible d’utiliser rsync pour créer un miroir de référentiel, mais il en résulte toutes les versions téléchargées, même les plus anciennes, et inclurait des fichiers pour les architectures pourrait ne pas être nécessaire.

apt-mirror permet de choisir sélectivement des parties du référentiel. mirrorkit fournit un frontal à apt-mirror.

Quel est le meilleur moyen de créer un miroir de référentiel local pour des parties sélectionnées des archives Ubuntu?

Par exemple, on pourrait souhaiter inclure:

  • Main, Restricted, Univers, Multiverse, All Ubuntu et Lubuntu, à l’exclusion des autres dérivés, tels que Kubuntu et Xubuntu.

  • Seulement AMD64 et i386, à l’exclusion des autres architectures.

  • Seulement Trusty Tahr, mais pas Precise Penguin ou Utopic Unicorn.

On peut souhaiter configurer le processus pour qu'il soit téléchargé à partir d'un miroir local, plutôt que des archives principales.

Comment créer un référentiel local à l'aide de apt-mirror et mirrorkit pour une variante d'architecture, de version ou Ubuntu sélectionnée?

8
user75798

Le référentiel de CD et le référentiel de logiciels sont deux composants distincts (ils ont même des pages de Launchpad distinctes: cdmirrors et archivemirrors ). Par conséquent, les refléter sont deux tâches distinctes. En outre, bien que les divers types aient des dossiers différents sur le référentiel de CD, ils partagent un référentiel de logiciels. Vous pouvez donc reproduire sélectivement les images par saveur, mais pas le logiciel. Pour le référentiel de logiciels, vous pouvez effectuer une mise en miroir sélective en fonction de:

  • version (trusty, precise, etc.)
  • architecture (AMD64, i386, etc.)
  • type de paquet (binaire [deb] vs source [deb-src])
  • canaux (trusty, trusty-updates, trusty-backports, etc.)
  • sections (main, multiverse, etc.)

Pour mettre en miroir le référentiel de logiciels, utilisez apt-mirror .

apt-mirror est configuré avec /etc/apt/mirror.list . Son format est très similaire à sources.list . Le fichier de configuration installé par le paquet contient quelques options commentées qui listent leurs valeurs par défaut. Si vous le souhaitez, vous pouvez les commenter et les modifier.

Pour mettre en miroir un référentiel, vous devez ajouter une ligne à mirror.list comme vous le feriez pour sources.list:

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

La valeur par défaut consiste à ne refléter que l'architecture de l'hôte. Ainsi, si vous utilisez Ubuntu 64 bits, seul AMD64 sera mis en miroir. Vous devez ajouter une autre ligne du formulaire:

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

Et pour les paquets source:

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

Si vous recherchez un miroir raisonnablement complet, ces lignes seraient le minimum (je recommanderais également le canal -updates):

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

Enfin, vous devez ajouter une ligne clean afin que les packages qui ne sont plus disponibles dans le référentiel soient filtrés pour être supprimés:

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

Disons que vos variables sont donc (les valeurs par défaut):

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

Ensuite:

  • Le référentiel sera mis en miroir avec $mirror_path/parent-hostname/directory (donc /var/spool/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu)
  • Le clean.sh (qui sera un ensemble de commandes rm pour supprimer les packages et les répertoires obsolètes) sera /var/spool/apt-mirror/var/clean.sh.
  • Les journaux iront à /var/spool/apt-mirror/var.

Le package apt-mirror installe un travail cron (/etc/cron.d/apt-mirror) que vous devez modifier pour l'activer (en supprimant la mise en commentaire de la ligne contenant /usr/bin/apt-mirror). Vous devez également ajouter un travail cron pour exécuter clean.sh (je le lance chaque semaine).

Bien sûr, vous devriez remplacer http://us.archive.ubuntu.com./ubuntu par le miroir de votre choix.

9
muru

Je recommande apt-cacher aux personnes disposant de peu d'espace ou ayant des prix internet exhorbitants dans leur pays.

a priori, apt-mirror nécessite au moins 15 Go pour chaque saveur (32/64 bits) de la distribution souhaitée. apt-cacher utilise uniquement les paquets que vous avez installés.

Lire Créer un référentiel Ubuntu local à l'aide d'Apt-Mirror et d'Apt-Cacher pour plus de détails/d'instructions, s'il vous plaît.

2
nyxee